A fully responsive, SEO-optimized online examination system built using Next.js, Tailwind CSS, JWT Authentication, and modern best practices.
This project is developed as part of the Front-End Machine Test (Level 1) – Next.js for Noviindus Technologies.
Add your deployed link here
https://nexlearn-test-gules.vercel.app/
Recreate the provided Figma design with a pixel-perfect, responsive, and performance-optimized Next.js application following industry-standard best practices.
- Figma design recreated with high accuracy
- Consistent spacing, typography, color scheme
- Mobile-first approach
- Works across all screen sizes seamlessly
- Meta tags, OpenGraph, Twitter cards
- Semantic HTML
- Optimized performance using Next.js features
- JWT-based login
- Access + Refresh token handling
- Auto token refresh using Axios interceptor
- Global state using Redux Toolkit (or your chosen library)
- Auth state persisted
- Code-splitting & Dynamic imports
- Optimized images
- Layout & render optimization with React hooks
- ARIA labels
- Keyboard navigable
- Proper semantic tags
| Area | Technology |
|---|---|
| Framework | Next.js (Latest) |
| UI Styling | Tailwind CSS |
| State Management | Redux Toolkit |
| Authentication | JWT + Refresh Token |
| Language | TypeScript |
| API | Provided API Documentation |
| Icons | Custom |
├── app/
│ ├── layout.tsx
│ ├── page.tsx
│ ├── auth/
│ │ ├── layout.tsx
│ │ ├── login/
│ │ │ └── page.tsx
│ │ └── verify-otp/
│ │ └── page.tsx
│ ├── exam/
│ │ └── questions/
│ │ └── page.tsx
│ └── results/
│ └── page.tsx
├── components/
│ ├── exam/
│ │ ├── QuestionCard.tsx
│ │ └── Timer.tsx
│ └── ui/
│ ├── Header.tsx
│ └── LoadingSpinner.tsx
├── lib/
│ ├── slices/
│ │ ├── authSlice.ts
│ │ └── examSlice.ts
│ ├── api.ts
│ ├── store.ts
│ └── utils.ts
├── types/
│ └── index.ts
├── hooks/
│ └── useAuthCheck.ts
└── middleware.ts
- User logs in → receives access token + refresh token
- Access token stored in memory / cookies
- Axios interceptor auto-refreshes expired token
- Protected routes based on auth state
- Logout clears all session data
git clone <repository-url>
cd nexlearn
yarn install
yan dev
yarn buildDocumentation Link (given in test): https://docs.google.com/document/d/1gIuJ-tYdfJMBZY_yeXZNg7Wmx6mHki0P6XMGyB2ndCA/edit
https://www.figma.com/design/YJoY0WfcNLHAYFZkIF3E9w/Next-Test?node-id=0-1&m=dev
Replace with your real time Total Development Time: 24 hours