Project Title: Multi-user To-do List App
Overview:
The Multi-user To-do List App is a full-stack web application that allows multiple users to
register, log in, and manage their personal task lists. Each user can create, edit, mark, and
delete tasks in a secure, personalized environment. The platform introduces developers to
user authentication, CRUD operations, routing, state management, form handling, and UI
styling using the MERN stack.
Core Features:
User registration and login with JWT authentication
Protected routes based on user session
CRUD operations for user-specific to-do tasks
Form handling with client- and server-side validation
State management using React Context API
Task status toggling (complete/incomplete)
Search and filter tasks (by status/date)
Responsive UI with Tailwind CSS + ShadCN
Toast notifications and proper error handling
Git-based version control
Entities & Data Models:
User: name, email, password (hashed), createdAt
Task: userId, title, description, dueDate, status (pending/completed), createdAt,
updatedAt
Pages / Views (React):
Home / Landing Page
Login / Register Page
Dashboard (User-specific task list)
Create/Edit Task Page
Filtered task views (by date/status)
404 / Error Page
Backend (Express + MongoDB):
API routes: /api/auth, /api/users, /api/tasks
Mongoose schemas with field validation
Middleware for JWT authentication and error handling
Environment configuration via .env
Frontend (React):
React Router for SPA navigation
Axios for HTTP requests
React Hook Form + Yup/Zod for form validation
Context API for managing authentication and task states
Tailwind CSS + ShadCN for responsive and modern UI
Toast notifications for real-time user feedback
Loading states for async operations
Bonus Features (Optional):
Dark mode toggle
Drag-and-drop task reordering
Task history or archive
Reminders for upcoming due dates
Admin user with ability to view user statistics
Technical Objectives (Learning Goals):
Interns will learn to:
Structure and build a full MERN stack project
Implement secure authentication using JWT
Create modular RESTful APIs
Manage application state with Context API
Build and validate forms on client and server
Style modern, responsive UIs with Tailwind and ShadCN
Handle errors and edge cases effectively
Collaborate using Git and GitHub
Deliverables:
GitHub repo with consistent commits and branches
README.md with setup instructions, screenshots, and tech stack
Optional deployment on Vercel (frontend) and Render (backend)
Final report or summary document (PDF/Google Doc)
🧪 Evaluation (Rubric Mapping):
JWT-based Authentication
Protected Routes for Logged-in Users
CRUD Operations for To-do Tasks
Client & Server-side Form Validation
Global State Management (Context API)
Responsive Design with Tailwind + ShadCN
Error Handling (Frontend + Backend)
Search, Filter, Toggle Task Status
Git Usage with Documentation