• Next.js / React.js
• Auth.js
• Vercel Serverless
• Drizzle ORM + Neon Serverless PostgreSQL
Estimate Generator is webapp to help contractors and small business's create and manage work estimates and change orders. Contractors can create work estimates for their customers and benefit from Estimate Generator's automated email systems that sends emails to customers every time a contractor creates and estimate, edits an estimate, or creates a change order. Customers of contractors can use the account automatically created for them to view estimates or request a change order and can login to their accout by using the "magic link" in the emails.
Estimate Generator is build with Next.js version 14 app router and a Neon serverless Postgres database. The front end is leverageing React's new sever component model as well as using Next.js SSR and caching features. The backend is build with Next.js route handlers and uses REST architecture. I choose to build the backend with Next.js route handlers in the form of a REST api instead of server actions because I wanted to be able to use the same backend for a React-Native client coming soon as well as leverage existing REST architecture standards and use postman to do extensive api testing. I am using a Neon serverless postgres database with Drizzle ORM for data schema, migrations, and querys. The project uses NextAuth.js/Auth.js version 5 to implment a role-based authentication and authorization system with credentials login for users with a contractor role and magic link login for users with a customer role.