Every workday, perfectly aligned. 🚀
A modern HRMS built with Next.js, Express.js, and PostgreSQL for the Odoo Hackathon.
- Authentication - Secure sign up/sign in with JWT
- Role-based Access - Admin (HR) vs Employee permissions
- Employee Management - Full profile management with personal and job details
- Attendance Tracking - Daily check-in/check-out with status tracking
- Leave Management - Apply, approve, and track leave requests
- Payroll Visibility - View salary breakdown and history
- Frontend: Next.js 15, React, Vanilla CSS (no Tailwind)
- Backend: Node.js, Express.js
- Database: PostgreSQL with Prisma ORM
- Authentication: JWT
- Node.js 18+
- PostgreSQL database
- Create a PostgreSQL database named
dayflow - Update the
DATABASE_URLinbackend/.env:
DATABASE_URL="postgresql://postgres:password@localhost:5432/dayflow?schema=public"
cd backend
npm install
npx prisma db push
npm run devBackend will run on http://localhost:5000
cd frontend
npm install
npm run devFrontend will run on http://localhost:3000
DATABASE_URL="postgresql://postgres:password@localhost:5432/dayflow?schema=public"
JWT_SECRET="your-secret-key"
JWT_EXPIRES_IN="7d"
PORT=5000
FRONTEND_URL="http://localhost:3000"
NEXT_PUBLIC_API_URL=http://localhost:5000/api
POST /api/auth/register- Register new userPOST /api/auth/login- LoginGET /api/auth/me- Get current user
GET /api/employees- Get all employees (Admin)GET /api/employees/:id- Get employeePUT /api/employees/:id- Update employeeDELETE /api/employees/:id- Delete employee (Admin)
POST /api/attendance/check-in- Check inPOST /api/attendance/check-out- Check outGET /api/attendance/today- Get today's attendanceGET /api/attendance/my- Get my attendance historyGET /api/attendance/all- Get all attendance (Admin)
POST /api/leave/apply- Apply for leaveGET /api/leave/my- Get my leave requestsGET /api/leave/all- Get all leave requests (Admin)PUT /api/leave/:id/approve- Approve leave (Admin)PUT /api/leave/:id/reject- Reject leave (Admin)
GET /api/payroll/my- Get my payrollGET /api/payroll/all- Get all payroll (Admin)POST /api/payroll- Create payroll (Admin)
Built for Odoo Hackathon 2026