Modern, full-stack TaskFlow for teams & individuals
Role-based dashboards, real-time progress, file uploads, analytics, and more.
- 🖼️ Preview
- ✨ Features
- 🗂️ Project Structure
- 🔧 Backend Details
- 🎨 Frontend Details
- ⚡ Quick Start
- 🛠️ API Endpoints (Backend)
- 👥 Authors
- Authentication & Roles: Secure JWT login, Admin & Member roles
- Admin Dashboard: Manage users, create/assign tasks, export reports
- User Dashboard: View & update assigned tasks, see personal stats
- Task Management: Priorities, statuses (Pending, In Progress, Completed, Overdue), checklists
- File Uploads: Cloudinary integration for images & attachments
- Data Visualization: Charts for task distribution & priorities
- Modern UI: Ant Design, dark/light mode, avatars, progress bars
- Export: Download tasks/users as Excel
- Admin User Management: Admins can update or delete user profiles
- User Profile Page: All users can view and edit their profile
TaskFlow/
├── backend/ # Node.js/Express REST API
│ ├── config/ # Database & cloudinary config
│ ├── controllers/ # Route logic for auth, tasks, users, reports
│ ├── middlewears/ # Auth & file upload middleware
│ ├── models/ # Mongoose schemas (User, Task)
│ ├── routes/ # API route definitions
│ └── index.js # App entry point
│
├── frontend/ # React + Vite client
│ ├── public/ # Static assets
│ ├── src/
│ │ ├── Admin/ # Admin dashboard pages
│ │ ├── User/ # User dashboard pages
│ │ ├── auth/ # Login/Signup
│ │ ├── components/# Reusable UI components
│ │ ├── context/ # React context providers
│ │ ├── hooks/ # Custom React hooks
│ │ ├── utils/ # API paths, axios config, helpers
│ │ └── routes/ # Route protection
│ ├── index.html # App HTML template
│ └── main.jsx # App entry point
└── README.md # Project documentation
index.js: Sets up Express, connects to MongoDB, configures CORS, JSON parsing, static uploads, and API routes.- config/:
db.js: Connects to MongoDB using Mongoosecloudinary.js: Configures Cloudinary for file uploads
- controllers/:
authControllers.js: Handles registration, login, profile, password hashing, JWTuserControllers.js: Admin user management, user details, task counts, admin user update/deletetaskControllers.js: Task CRUD, assignment, filtering, sorting, progress, checklistreportControllers.js: Exports tasks/users to Excel
- middlewears/:
authMiddlewears.js: JWT protection, admin-only accessuploadMiddlewears.js: Multer memory storage, file type/size filter, Cloudinary upload
- models/:
User.js: User schema (name, email, password, profile image, role, timestamps)Task.js: Task schema (title, description, priority, status, due date, assigned users, attachments, checklist, progress, timestamps)
- routes/:
authRoutes.js: Register, login, profile, image uploaduserRoutes.js: Admin user management, user details, admin user update/deletetaskRoutes.js: Task CRUD, assignment, dashboard datareportRoutes.js: Export tasks/users to Excel
- App.jsx: Main router, role-based route protection, redirects, 404 handling
- Admin/:
Dashboard.jsx: Admin dashboard (stats, charts, recent tasks)CreateTask.jsx: Create or update tasksManageTask.jsx: List, search, filter, download tasksManageUsers.jsx: List/search users, view user details, admin can update/delete usersUserManagement.jsx: Advanced user management for adminsProfilePage.jsx: User profile view/edit pageUserProfileEditForm.jsx: Form for editing user profile (admin & user)
- User/:
UserDashboard.jsx: User dashboard (stats, charts, recent tasks)MyTasks.jsx: List assigned tasksTaskDetails.jsx: Task details, progress, checklist
- auth/:
Login.jsx,Signup.jsx: Auth forms, validation, profile image upload
- components/:
DashboardLayout.jsx: Sidebar, theming, navigationAdminSummary.jsx,TaskCharts.jsx,RecentTasksSection.jsx: Dashboard widgetsGenericTaskList.jsx: Task list with search, filter, sort, progressTaskForm.jsx: Create/update task formUserDetailView.jsx: User details, assigned tasks, admin update/delete actionsUserSelectionModal.jsx: Assign users to tasksLoading.jsx,Forbidden.jsx,NotFoundPage.jsx: UX helpers
- context/:
ThemeContext.js,ThemeProvider.jsx: Dark/light modeUserContext.js,userProvider.jsx: User state, auth context
- hooks/:
useTasks.jsx: Fetch, filter, and manage tasks
- utils/:
apiPaths.js: API endpoint pathsaxiosConfig.js: Axios instance with authdata.jsx: Sidebar menu data, constants (now includes profile/user management links)
git clone https://github.com/goutam-dev/TaskFlow.git
cd TaskFlow
cd backend && npm install
cd ../frontend && npm install