Skip to content

A full-stack task management application built with React and Node.js, featuring role-based access control for administrators and team members.

Notifications You must be signed in to change notification settings

jnakaigen/TaskTracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

97 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TaskTracker

A full-stack task management application built with React and Node.js, featuring role-based access control for administrators and team members.

πŸš€ Features

Core Functionality

  • User Authentication & Authorization - Secure login system with JWT tokens
  • Role-Based Access Control - Separate dashboards for admins and team members
  • Project Management - Create, update, and manage projects
  • Task Management - Assign, track, and update task status
  • Team Management - Organize users into teams
  • Real-time Updates - Dynamic dashboard with live data

Admin Features

  • Admin Dashboard - Comprehensive overview with analytics
  • Project Management - Full CRUD operations for projects
  • Task Assignment - Assign tasks to team members
  • Team Administration - Manage team structures and members
  • User Management - Oversee user accounts and permissions

Member Features

  • Member Dashboard - Personalized task overview
  • My Tasks - View and update assigned tasks
  • Task Status Updates - Mark tasks as completed or in progress

πŸ› οΈ Tech Stack

Frontend

  • React 19 - Modern React with hooks and functional components
  • Vite - Fast build tool and development server
  • Material-UI (MUI) - Beautiful and responsive UI components
  • React Router DOM - Client-side routing
  • Axios - HTTP client for API communication
  • Chart.js - Data visualization and analytics
  • Framer Motion - Smooth animations and transitions

Backend

  • Node.js - JavaScript runtime environment
  • Express.js - Web application framework
  • MongoDB - NoSQL database
  • Mongoose - MongoDB object modeling
  • JWT - JSON Web Tokens for authentication
  • bcryptjs - Password hashing
  • CORS - Cross-origin resource sharing

πŸ“ Project Structure

TaskTracker/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ controllers/     # Business logic
β”‚   β”‚   β”œβ”€β”€ projectController.js
β”‚   β”‚   β”œβ”€β”€ taskController.js
β”‚   β”‚   β”œβ”€β”€ teamController.js
β”‚   β”‚   └── userController.js
β”‚   β”œβ”€β”€ models/         # Database schemas
β”‚   β”‚   β”œβ”€β”€ projectModel.js
β”‚   β”‚   β”œβ”€β”€ taskModel.js
β”‚   β”‚   β”œβ”€β”€ teamModel.js
β”‚   β”‚   └── userModel.js
β”‚   β”œβ”€β”€ routes/         # API endpoints
β”‚   β”‚   β”œβ”€β”€ projects.js
β”‚   β”‚   β”œβ”€β”€ tasks.js
β”‚   β”‚   β”œβ”€β”€ teams.js
β”‚   β”‚   └── users.js
β”‚   β”œβ”€β”€ server.js       # Express server setup
β”‚   └── package.json
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ admin/   # Admin-specific components
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ AdmDash.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ AdmDashLayout.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Project.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Task.jsx
β”‚   β”‚   β”‚   β”‚   └── Team.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ member/  # Member-specific components
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ MemDash.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ MemDashLayout.jsx
β”‚   β”‚   β”‚   β”‚   └── MyTasks.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Front.jsx
β”‚   β”‚   β”‚   └── Login.jsx
β”‚   β”‚   β”œβ”€β”€ App.jsx
β”‚   β”‚   └── main.jsx
β”‚   β”œβ”€β”€ index.html
β”‚   └── package.json
└── README.md

πŸš€ Getting Started

Prerequisites

  • Node.js (v16 or higher)
  • MongoDB (local installation or MongoDB Atlas)
  • npm or yarn package manager

Installation

  1. Clone the repository

    git clone <repository-url>
    cd TaskTracker
  2. Backend Setup

    cd backend
    npm install
  3. Environment Configuration Create a .env file in the backend directory:

    MONGO_URI=your_mongodb_connection_string
    JWT_SECRET=your_jwt_secret_key
    PORT=4000
  4. Frontend Setup

    cd ../frontend
    npm install

Running the Application

  1. Start the Backend Server

    cd backend
    npm start
    # or with nodemon for development
    npx nodemon server.js
  2. Start the Frontend Development Server

    cd frontend
    npm run dev
  3. Access the Application

πŸ“š API Endpoints

Authentication

  • POST /api/users/login - User login
  • POST /api/users/register - User registration

Projects

  • GET /api/projects - Get all projects
  • POST /api/projects - Create new project
  • PUT /api/projects/:id - Update project
  • DELETE /api/projects/:id - Delete project

Tasks

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

Teams

  • GET /api/teams - Get all teams
  • POST /api/teams - Create new team
  • PUT /api/teams/:id - Update team
  • DELETE /api/teams/:id - Delete team

Users

  • GET /api/users - Get all users
  • PUT /api/users/:id - Update user
  • DELETE /api/users/:id - Delete user

πŸ”§ Development

Available Scripts

Backend:

  • npm start - Start the server
  • npm test - Run tests (placeholder)

Frontend:

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run lint - Run ESLint
  • npm run preview - Preview production build

Code Style

  • ESLint configuration for consistent code formatting
  • React hooks and functional components
  • Modular component architecture

🎨 UI/UX Features

  • Responsive Design - Works on desktop, tablet, and mobile
  • Material Design - Clean and modern interface
  • Dark/Light Theme - Customizable appearance
  • Smooth Animations - Enhanced user experience
  • Data Visualization - Charts and analytics for insights

πŸ”’ Security Features

  • JWT Authentication - Secure token-based authentication
  • Password Hashing - bcryptjs for password security
  • CORS Protection - Cross-origin request handling
  • Input Validation - Server-side data validation
  • Role-Based Access - Protected routes and features

πŸ“Š Database Schema

The application uses MongoDB with the following main collections:

  • Users - User accounts and authentication
  • Projects - Project information and metadata
  • Tasks - Task details, assignments, and status
  • Teams - Team structures and member associations

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the ISC License.

πŸ†˜ Support

For support and questions, please open an issue in the repository or contact the development team.


Built with ❀️ using React, Node.js, and MongoDB

About

A full-stack task management application built with React and Node.js, featuring role-based access control for administrators and team members.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •