This is a frontend project built with Next.js App Router and Tailwind CSS for an online technical assessment platform.
It supports two main user flows:
- Admin: manages questions, exams, candidates, and code reviews
- Candidate: receives an assessment link, reads instructions, takes the assessment, and submits solutions
The project uses a route-first and feature-based structure for safer teamwork and clearer ownership.
src/appcontains only Next.js routing files such aspage.tsx,layout.tsx,error.tsx, and route folders.src/featurescontains screen-specific and business-specific frontend code.src/componentscontains reusable shared UI used across multiple features.src/libcontains shared technical utilities such as API setup, constants, config, mocks, and validators.src/hooks,src/context,src/types,src/utils, andsrc/stylescontain global shared code.
landing: homepage and public marketing sectionsauth: admin authentication flowadmin-dashboard: admin dashboard overview cards and summary contentquestion-bank: question list, create/edit question flow, and test case sectionsexam-management: exam list, exam creation, and question selection flowcandidate-management: candidate assignment flow and generated assessment linkscode-review: submission listing, review states, and review tabsassessment-session: candidate information, instructions, timer, code editor, and submission states
- Keep route files small and import UI from
featuresorcomponents. - Put reusable UI in
components, not inside route files. - Use clear feature-based names when creating files.
- Avoid creating new top-level folders unless the team agrees first.
npm install
npm run devOpen http://localhost:3000.
- Each feature is developed in a separate branch.
- Pull requests are used for merging changes into
main. - Code is reviewed before integration.
- Tab detection for cheating prevention
- Timer-based assessments
- Secure exam environment