- React.js β Component-based UI library.
- JavaScript (ES6+) β Core programming language.
- React Router β Client-side navigation.
- Axios β HTTP client for API communication.
- Context API β Global state management.
- β Initialize a React project.
-
β Signup & Login Pages
- Form validation using
react-hook-form
or plain React state. - Password validation (min length, special characters).
- Store JWT token securely (
localStorage
/sessionStorage
). - Implement error handling for incorrect logins.
- Form validation using
-
β AuthContext API
- Create an authentication context.
- Store and manage user authentication state globally.
-
β Protected Routes
- Ensure unauthorized users cannot access the dashboard.
- Redirect unauthenticated users to the login page.
- β
Use Axios for API communication
- Implement API requests (
POST /signup
,POST /login
,GET /dashboard
). - Properly handle API responses & errors.
- Implement loading states and error messages.
- Implement API requests (
-
β Fetch & Display Protected User Data
- Make an authenticated request to fetch user-specific data.
- Display data in a user-friendly manner (table, cards, etc.).
-
β Logout Feature
- Clear JWT token and redirect to the login page.
- β
Use React Context API (or Redux) to:
- Store the authenticated userβs data.
- Provide global authentication state.
βοΈ Fully working React frontend with:
- Login & Signup pages (form validation).
AuthContext
to manage user authentication.- Protected Routes (users must log in to access the dashboard).
- Backend Integration via Axios.
- Proper Routing using React Router.
π₯ Dark Mode Support β Implement a theme switcher.
π₯ Animations β Use Framer Motion or CSS animations for smooth UI transitions.
- Node.js β Backend runtime.
- Express.js β Fast, minimalist backend framework.
- MongoDB β NoSQL database for storing user data.
- JWT (JSON Web Token) β Secure user authentication.
- β Initialize an Express.js backend
- β
Configure Express Middleware
express.json()
for parsing JSON.cors
for handling cross-origin requests.
-
β Implement Signup & Login API Endpoints
/signup
β Register a new user./login
β Authenticate and return JWT token.
-
β User Schema (MongoDB)
- Fields:
name
,email
,password
(hashed),createdAt
.
- Fields:
-
β JWT Authentication
- Generate a JWT token upon successful login.
- Middleware to protect private routes.
- β
Implement basic CRUD APIs (e.g., for tasks or products)
POST /tasks
β Create a new task.GET /tasks
β Fetch all tasks.PUT /tasks/:id
β Update a task.DELETE /tasks/:id
β Delete a task.
βοΈ Working Express API with:
- Authentication System (Signup/Login with JWT).
- MongoDB Schema (
User
,Tasks
). - CRUD API for Sample Resource.
- TypeScript Interfaces for API responses.
π₯ Load Balancing β Implement a reverse proxy (e.g., Nginx).
π₯ Rate Limiting β Prevent excessive API requests.
- Figma β UI/UX Design Tool.
- Color Theory β Effective color palettes.
- Typography β Readable font selection.
-
β Design Login & Dashboard Pages
- Clean, modern, and user-friendly UI.
- Proper spacing and responsiveness.
-
β Color Palette Selection
- Choose a visually appealing, accessible color scheme.
-
β Style Guide
- Define buttons, input fields, typography.
βοΈ Figma Link with the final design.
βοΈ Exported Color Codes & Fonts.
βοΈ PR with design-assets.md
file (Figma
link + assets).
π₯ Mobile-first UI Design β Fully responsive from the start.
- Jest β Unit testing for backend.
- Cypress β End-to-end (E2E) testing.
- Postman β API testing.
- β Write unit tests for authentication & CRUD APIs.
- β
Store test cases in
__tests__
folder.
- β Write E2E tests for login/signup flow.
- β Test protected routes.
- β Ensure at least 80% coverage.
βοΈ Jest test files for backend (__tests__
folder).
βοΈ Cypress test cases for frontend.
βοΈ PR with testing-setup
branch.
π₯ Automated Regression Testing β Run tests on PRs automatically.
1οΈβ£ Fork the repository & create a branch (<name>-<role>
).
2οΈβ£ Complete the assigned task & commit changes.
3οΈβ£ Create a Pull Request (PR).
4οΈβ£ Add proper documentation in the PR description.
5οΈβ£ UI / UX Designers also create a PR with the figma link in a file and the prototype link
β³ Deadline: 15/03/2025
π₯ Bonus Challenge (Optional) Each team member has extra challenges to go beyond expectations! π