A full-stack task management application built with React.js and Node.js/Express, featuring user authentication, task lists, and dynamic task management.
Deployed Application: https://taskapp-blue.vercel.app/
Demo Video: Loom Link
- React.js - UI library
- React Router DOM - Client-side routing
- Tailwind CSS - Utility-first CSS framework
- Vite - Build tool and development server
- Node.js - Runtime environment
- Express.js - Web framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- JWT - Authentication tokens
- bcrypt - Password hashing
- CORS - Cross-origin resource sharing
- Picsum Photos API - Random profile images
- Endpoint:
https://picsum.photos/id/<random-0-999>/info
- Endpoint:
-
User Authentication
- User registration and login
- JWT-based authentication
- Protected routes
- Secure password hashing
-
Task Management
- Create multiple task lists
- Add, edit, and delete tasks
- Mark tasks as complete/incomplete
- Real-time task updates
-
User Interface
- Responsive design (mobile and desktop)
- Random profile icons from Picsum API
- Interactive modals and forms
- Clean, modern UI with Tailwind CSS
- Login Page - User authentication
- Signup Page - User registration
- Dashboard - Main task board interface
reactjs-sample-0225/
βββ backend/
β βββ config/
β β βββ db.js # Database connection
β βββ controllers/
β β βββ user.controller.js # User authentication logic
β βββ middleware/
β β βββ auth.middleware.js # JWT authentication middleware
β βββ models/
β β βββ user.model.js # User schema
β β βββ task.model.js # Task schema
β β βββ tasklist.model.js # Task list schema
β βββ routes/
β β βββ user.routes.js # User routes
β β βββ task.routes.js # Task routes
β βββ index.js # Server entry point
βββ frontend/
β βββ src/
β β βββ components/
β β β βββ ProfileIcon.jsx # Random profile image component
β β β βββ TaskBoard.jsx # Task list component
β β β βββ TaskModal.jsx # Task edit/delete modal
β β βββ pages/
β β β βββ LoginPage.jsx # Login interface
β β β βββ SignupPage.jsx # Registration interface
β β β βββ Dashboard.jsx # Main dashboard
β β βββ App.jsx # Main app component
β βββ .env # Environment variables
βββ README.md
- Node.js (v14 or higher)
- MongoDB (local or cloud instance)
- Git
- Clone the repository:
git clone https://github.com/yourusername/reactjs-sample-0225.git
cd reactjs-sample-0225/backend
- Install dependencies:
npm install
- Create
.env
file in backend directory:
PORT=5000
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
- Start the backend server:
npm start
- Navigate to frontend directory:
cd ../frontend
- Install dependencies:
npm install
- Create
.env
file in frontend directory:
VITE_API_URL=http://localhost:5000
- Start the development server:
npm run dev
POST /api/users/register
- User registrationPOST /api/users/login
- User loginGET /api/users/profile
- Get user profile (protected)
GET /api/tasks/lists
- Get all task lists for userPOST /api/tasks/lists
- Create new task listGET /api/tasks/list/:listId
- Get tasks for specific listPOST /api/tasks
- Create new taskPUT /api/tasks/:taskId
- Update taskDELETE /api/tasks/:taskId
- Delete task
- Integrates with Picsum Photos API
- Generates random profile images using IDs 0-999
- Includes fallback handling for failed requests
- Implements loading states and error handling
- Mobile-first approach with Tailwind CSS
- Responsive grid layouts for task boards
- Adaptive navigation and modals
- Touch-friendly interface elements
- JWT-based authentication
- Protected routes with middleware
- Automatic token validation
- Secure logout functionality
- Create new app on hosting platform
- Set environment variables:
MONGODB_URI
JWT_SECRET
PORT
- Deploy from GitHub repository
- Connect GitHub repository
- Set build command:
npm run build
- Set output directory:
dist
- Add environment variable:
VITE_API_URL
- Jest and Enzyme test cases for components
- API endpoint testing
- User flow integration tests
- Potential integration with web3.js or ethers.js
- Blockchain-based task verification
- Decentralized user authentication
- Users can create multiple task lists
- Tasks belong to specific lists and users
- Profile images are randomly generated for demonstration
- Basic CRUD operations are sufficient for MVP
- Profile images may occasionally fail to load due to API limitations
- No real-time collaboration features implemented
- Limited error handling for network failures
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is created for educational and demonstration purposes.
Project Timeline: Completed within 3 days as per requirements Submission Date: February 2025