A take-home assignment for evaluating fullstack engineers with a focus on relational database design, REST API development, and responsive UI implementation using ReactJS.
Design and implement a simple Leave Management System where employees can request leave and managers can approve/reject them.
These are required for Junior, Mid, and Senior candidates.
-
POST /loginwith mock or hardcoded login (employee vs. manager) -
POST /leave-request: Submit a new leave request -
GET /leave-request: View your own leave requests -
PATCH /leave-request/:id: Approve/reject (manager only) -
GET /leave-balance: Show available leave days - Design relational schema with:
-
userstable -
leave_requeststable -
leave_balancestable
-
- Login switch for user role (employee/manager)
- Dashboard:
- Display leave balance
- Table of previous leave requests
- Form to submit leave request
- Manager view to approve/reject requests
- Responsive layout using Bootstrap
These are optional, but will help you stand out.
- Basic frontend form validation (e.g. required fields, valid dates)
- Filter or sort leave requests table by status or date
- Use reusable React components (
FormGroup,TableRow, etc.) - Meaningful commit history and README
If youโre applying for a Mid-Level position, you are expected to complete some of the following.
- Add support for leave types (annual, sick, unpaid)
- Block overlapping leave requests
- Backend folder structure:
handlers/,services/,repos/ - Frontend folder structure:
components/,pages/,services/ - 1โ2 backend unit tests for key logic
- Include Dockerfile or
docker-compose.ymlto run fullstack
If youโre applying for a Senior role, you are expected to complete several of the following.
- Apply Clean Architecture or layered design to backend
- Middleware for Role-Based Access Control (RBAC)
- 4โ5 unit/integration tests (e.g. for approval, validation, access control)
- GitHub Actions (or CI pipeline) for test/lint/build
- Add
/docs/decisions.mdwith 3โ5 architecture or design decisions - Generate OpenAPI (Swagger) spec for API docs
- Use React Context API or simple state management for leave state
- Handle UI edge cases (e.g. error boundaries, toast feedback)
- Youโre not expected to finish everything.
- Prioritize clarity, structure, and engineering maturity over flashy features.
- Bonus items are a chance to go deeper based on your experience level.
Good luck!
fullstack-homework/
โโโ frontend/ # React + Bootstrap
โโโ backend/ # REST API
โโโ database/ # SQL schema / migrations
โโโ README.md # This file
โโโ docker-compose.yml # (Optional for fullstack setup)Working days: 7 days, bonus points come with the earlier submission
- Fork this repository or upload to your GitHub
- Include setup steps in a
README.mdinside each folder (frontend/,backend/) - Optionally deploy or record a demo video
- Submit the repo link for review
If you have any questions or need clarifications, feel free to reach out to the hiring team at tech@gearment.com.
Good luck and have fun!