Skip to content

Flurry is a comprehensive task management platform that allows users to organize projects, create tasks, and track progress with zero distractions. Users can create tasks with detailed descriptions, attach mini-tasks, share projects with team members, and visualize their progress.

Notifications You must be signed in to change notification settings

alamin147/task-management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

79 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“Œ Flurry: Task Management Platform

A modern task management platform built with the MERN stack, offering a seamless project management experience with features like task tracking, mini-tasks, task sharing, and dynamic status management.


πŸ“– Description

Flurry is a comprehensive task management platform that allows users to organize projects, create tasks, and track progress with zero distractions. Users can create tasks with detailed descriptions, attach mini-tasks, share projects with team members, and visualize their progress. The platform features a clean and intuitive interface, drag-and-drop functionality, and robust user authentication for secure collaborative work.

This project demonstrates a comprehensive implementation of a project management service with a focus on user experience, collaboration, and task organization.


🌐 Live URL

Flurry Frontend Flurry Backend


πŸš€ Features

  • βœ… User authentication (register/login)
  • πŸ”’ Secure password encryption using bcrypt
  • πŸ“ Full CRUD functionality for tasks and projects
  • πŸ“‹ Mini-tasks for breaking down larger tasks
  • πŸ‘₯ Task sharing and collaboration
  • πŸ”„ Drag and drop task management
    • Intuitive reordering of subtasks using the six-dot drag handle
    • Real-time visual feedback during drag operations
    • Automatic synchronization with backend after reordering
    • Smooth animations for enhanced user experience
  • πŸ“Š Dynamic status tracking for tasks
  • πŸ–ΌοΈ Profile management with avatar upload
  • 🚩 Customizable task prioritization
  • πŸ“… Task deadlines
  • πŸ“± Responsive design for all devices
  • 🎨 Image Upload for Mini-tasks
    • Upload and attach images to mini-tasks
    • Image preview functionality with fullscreen view
    • Cloudinary integration for optimized image storage
  • πŸ“Š Advanced Charts and Analytics
    • Interactive charts using Chart.js and Recharts
    • Doughnut charts for user role distribution
    • Bar charts for task completion analytics
    • Custom tooltips with enhanced styling
  • πŸ‘‘ Admin Dashboard
    • Comprehensive user management system
    • User role management (promote/demote users)
    • User account suspension/activation
    • User analytics with completion rates
    • Task statistics and performance metrics
    • Advanced user search and filtering
  • πŸ”„ Task Duplication
    • One-click task duplication with all subtasks and mini-tasks
    • Preserves task structure and relationships
  • πŸ“ˆ Enhanced Task Status Management
    • Multiple status options (Completed, Pending, In Progress)
    • Visual status indicators with color coding
    • Dynamic status filtering and sorting
  • 🎭 Profile Enhancement
    • Extended profile editing with bio field
    • Profile photo upload with preview
    • Improved profile management interface

πŸ§‘β€πŸ’» Tech Stack

Frontend:

  • React
  • TypeScript
  • Vite
  • Tailwind CSS
  • Redux Toolkit
  • Framer Motion
  • Ant Design
  • DND Kit (for drag and drop functionality)
  • Chart.js (for analytics charts)
  • Recharts (for advanced data visualization)

Backend:

  • Node.js
  • Express.js
  • MongoDB
  • Mongoose

Other:

  • JWT (authentication)
  • Bcrypt (password hashing)
  • Cloudinary (file uploads and image management)
  • React Hook Form
  • React Hot Toast (notifications/alert)
  • SweetAlert2 (enhanced confirmations)

πŸ‘₯ User Capabilities

  • πŸ‘€ Users can:

    • Create and manage projects
    • Add, edit, delete tasks
    • Create mini-tasks within tasks
    • Upload images to mini-tasks with preview functionality
    • Share projects with other users
    • Reorder the tasks using drag and drop
    • Duplicate tasks with all associated data
    • Customize task status (Completed, Pending, In Progress) and priority
    • Filter tasks by priority and status
    • Manage their profile with photo upload and bio
    • View task analytics and completion rates
  • πŸ‘‘ Admin users can:

    • Access comprehensive admin dashboard
    • View system-wide analytics with interactive charts
    • Manage all users (promote/demote roles)
    • Suspend or activate user accounts
    • View detailed user statistics and task completion rates
    • Monitor platform performance and user activity

πŸ“· Screenshots / Demo

The application includes multiple key sections:


πŸ› οΈ Installation & Usage (Local)

# Clone the repository
git clone https://github.com/alamin147/task-management.git

# Navigate to the backend
cd task-management/backend
npm install

# Create .env file in the server directory with required environment variables
# Then start the server
npm start

# Navigate to the frontend
cd ../client
npm install
npm run dev

Open http://localhost:5173 in your browser.


πŸ—‚οΈ Project Structure

task-management/
β”œβ”€β”€ client/               # React frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/   # UI components
β”‚   β”‚   β”œβ”€β”€ pages/        # Page components
β”‚   β”‚   β”œβ”€β”€ redux/        # Redux store and slices
β”‚   β”‚   β”œβ”€β”€ routes/       # Application routes
β”‚   β”‚   └── types/        # TypeScript interfaces
β”‚   └── ...
β”œβ”€β”€ backend/              # Express backend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ controllers/  # Request handlers
β”‚   β”‚   β”œβ”€β”€ models/       # Database schemas
β”‚   β”‚   β”œβ”€β”€ routes/       # API routes
β”‚   β”‚   β”œβ”€β”€ middleware/   # Custom middlewares
β”‚   β”‚   └── helpers/      # Utility functions
β”‚   └── uploads/          # Media file storage
β”œβ”€β”€ README.md
└── ...

πŸ” Environment Variables

Create a .env file in the backend directory and add the following:

PORT=
MONGO_URI=
JWT_SECRET=
CLIENT_URI=
CLOUDINARY_FOLDER=
CLOUD_NAME=
CLOUD_API_KEY=
CLOUD_API_SECRET=
CLOUDINARY_URL=

Create a .env file in the client directory and add the following:



VITE_CLIENT_PROD_URL =
VITE_CLIENT_LOCAL_URL = http://localhost:5173
VITE_SERVER_PROD_URL =
VITE_SERVER_LOCAL_URL = http://localhost:5000



πŸ“Š API Documentation

Authentication Routes

POST /api/user/register         - Register a new user
POST /api/user/login           - Login user and get token

User Routes

GET /api/user/profile          - Get user profile
PUT /api/user/profile          - Update user profile
POST /api/user/avatar          - Upload user avatar

Task Routes

GET /api/tasks                 - Get all tasks
GET /api/tasks/:id             - Get a single task
POST /api/tasks                - Create a new task
PUT /api/tasks/:id             - Update a task
DELETE /api/tasks/:id          - Delete a task

Mini-Task Routes

GET /api/mini-tasks/:taskId    - Get mini-tasks for a task
POST /api/minitask/create      - Create a new mini-task
POST /api/minitask/update      - Update a mini-task (supports image upload)
DELETE /api/minitask/delete/minitask - Delete a mini-task

Card/Project Routes

GET /api/cards                 - Get all cards/projects
POST /api/cards                - Create a new card/project
PUT /api/cards/:id             - Update a card/project
DELETE /api/cards/:id          - Delete a card/project
PATCH /api/card/sub-card/reorder - Reorder subtasks (drag and drop)
POST /api/card/sub-card        - Create a new subtask
PATCH /api/card/sub-card/update - Update a subtask
DELETE /api/card/sub-card/delete - Delete a subtask

Share Routes

POST /api/task/share/:taskId   - Share a task with other users
DELETE /api/task/delete/share/:taskId - Remove shared access
GET /api/task/tasks/share      - Get shared tasks

Admin Routes

GET /api/auth/admin/users/details    - Get all users with detailed stats
GET /api/auth/admin/analytics        - Get system analytics
PATCH /api/auth/admin/users/:id/role - Update user role
PATCH /api/auth/admin/users/:id/status - Toggle user status
DELETE /api/auth/admin/users/:id     - Delete user

Task Enhancement Routes

POST /api/task/duplicate/:taskId     - Duplicate a task with all data

πŸ‘¨β€πŸ’» Created By

Al Amin

About

Flurry is a comprehensive task management platform that allows users to organize projects, create tasks, and track progress with zero distractions. Users can create tasks with detailed descriptions, attach mini-tasks, share projects with team members, and visualize their progress.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published