Production-ready HRMS Lite application for managing employees and daily attendance with a clean admin interface.
- Live Application URL:
https://frontend-green-kappa-83.vercel.app - Backend API URL:
https://backend-six-psi-29.vercel.app - GitHub Repository URL:
https://github.com/affan004/hrms-lite
This project provides:
- Employee management
- Add employee (
employee_id, full name, email, department) - List all employees
- Delete employee
- Add employee (
- Attendance management
- Mark attendance by date and status (
Present/Absent) - List attendance records
- Filter attendance by employee and date
- Mark attendance by date and status (
- Dashboard summary
- Total employees
- Total attendance entries
- Today's present and absent counts
- Present-days count per employee
- Frontend: React + TypeScript + Vite
- Backend: FastAPI + SQLAlchemy
- Database:
- Local: SQLite
- Production: PostgreSQL (Neon via Vercel Integration)
- Deployment targets:
- Frontend: Vercel
- Backend: Vercel (FastAPI) + Neon Postgres
.
|-- backend
| |-- app
| | |-- database.py
| | |-- main.py
| | |-- models.py
| | |-- schemas.py
| | `-- routers
| | |-- attendance.py
| | |-- dashboard.py
| | `-- employees.py
| |-- requirements.txt
| |-- Procfile
| `-- .env.example
|-- frontend
| |-- src
| | |-- components
| | |-- api.ts
| | |-- App.tsx
| | |-- styles.css
| | `-- types.ts
| |-- package.json
| `-- .env.example
`-- README.md
GET /api/healthPOST /api/employeesGET /api/employeesDELETE /api/employees/{employee_id}POST /api/attendanceGET /api/attendance?employee_id={id}&date={YYYY-MM-DD}GET /api/attendance/employee/{employee_id}GET /api/dashboard/summary
FastAPI provides interactive API docs automatically.
Local (when backend runs on port 8000):
- Health check:
http://127.0.0.1:8000/api/health - Swagger UI:
http://127.0.0.1:8000/docs
Deployed backend:
- Health check:
https://backend-six-psi-29.vercel.app/api/health - Swagger UI:
https://backend-six-psi-29.vercel.app/docs
- Required field validation
- Email format validation
- Duplicate employee ID/email prevention
- Duplicate attendance prevention per employee/date
- Graceful API errors with meaningful messages
- Proper HTTP status codes (
201,204,404,409,422,500)
cd backend
python -m venv .venv
# Windows PowerShell
.venv\Scripts\Activate.ps1
# macOS/Linux
# source .venv/bin/activate
pip install -r requirements.txt
# Windows PowerShell
Copy-Item .env.example .env
# macOS/Linux
# cp .env.example .env
uvicorn app.main:app --reloadBackend default URL: http://localhost:8000
cd frontend
npm install
# Windows PowerShell
Copy-Item .env.example .env
# macOS/Linux
# cp .env.example .env
npm run devFrontend default URL: http://localhost:5173
- Deploy
backenddirectory to Vercel. - Add Neon integration and provision a Postgres resource.
- Connect resource to backend project so
DATABASE_URLis injected automatically. - Set
CORS_ORIGINSto frontend deployed URL. - Redeploy backend.
- Import repo, root directory
frontend. - Add env variable
VITE_API_BASE_URLpointing to deployed backend URL. - Deploy and verify all routes/flows.
- Single admin user; authentication is intentionally out of scope.
- Leave, payroll, and advanced HR modules are intentionally excluded.
- DB migrations are not included for speed; schema is auto-created on app startup.
- Frontend deployed and publicly accessible
- Backend deployed and publicly accessible
- Frontend connected to live backend
- All required flows working end-to-end
- README submission links updated
- Repository public or access-enabled