This is a Next.js project bootstrapped with create-next-app.
This is a showcase project for a Software Engineer hiring process. The idea is to build an Employee Management app, demonstrating your skills and delivery quality as a Developer.
Install dependencies
pnpm install # or npm, yarn, etcSetup environment
For this project, we're using a PostGres and a Blob storage instance, both under Vercel.
An example file under .example.env shows the needed variables.
Start the application
To start the local server, run:
pnpm devOpen http://localhost:3000 with your browser to see the result.
On this project we're using:
- Next.js - the production ready framework for React.
- Drizzle ORM - a headless TypeScript ORM with a head, with PostGres.
- Tailwind CSS - Rapidly build modern websites without ever leaving your HTML.
- ShadCN/UI - Beautifully designed components that you can copy and paste into your apps.
Notice: We opted for a simpler modeling on the Department entity (just an ENUM), since this application had no use cases requiring a proper table model.
.
├── app
│ ├── api # REST API routes
│ └── employee # Pages and components
│
├── components # UI components
│ ├── employee
│ ├── interaction
│ ├── layout
│ └── ui
│
├── contexts # Data sharing contexts
│ ├── department
│ └── employee
│
├── hooks # Utility hooks
│
├── lib # Data access and modeling
│ ├── actions
│ ├── db
│ ├── openapi
│ └── ...
│
└── ...
- Using Parallel Routes / Interception to load modals and other partial elements via routes
- Data access handled through Server Actions
- Integrated typing / schema generation
- Realtime updates with cache revalidation
- Context for easy data sharing between components - still fed by Server Actions data
- React Hook Forms leveraging the rich data scheming
- OpenAPI docs for REST API
And whatnot.
On the spirit of a timed evaluation, a few enhancements on componentization, file naming, styling and others were deprioritized.
Enjoy! Cheers,