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