Skip to content

its-ammu/task-management-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Task Management App

A modern, full-stack task management application built with React and Node.js.

🚀 Features

  • User Authentication: Secure login and registration system
  • Task Management: Create, edit, delete, and organize tasks
  • Real-time Updates: Live synchronization across multiple devices
  • Responsive Design: Works seamlessly on desktop and mobile
  • Task Categories: Organize tasks with custom categories and tags
  • Due Date Management: Set and track task deadlines
  • Search & Filter: Find tasks quickly with advanced filtering
  • Progress Tracking: Visual progress indicators and statistics

🛠️ Tech Stack

Frontend

  • React 18 - Modern UI library
  • TypeScript - Type-safe development
  • Tailwind CSS - Utility-first styling
  • React Query - Data fetching and caching
  • React Router - Client-side routing
  • Zustand - State management

Backend

  • Node.js - Runtime environment
  • Express.js - Web framework
  • MongoDB - Database
  • Mongoose - ODM for MongoDB
  • JWT - Authentication
  • Socket.io - Real-time communication

📁 Project Structure

task-management-app/
├── client/                 # React frontend
│   ├── src/
│   │   ├── components/     # Reusable UI components
│   │   ├── pages/         # Page components
│   │   ├── hooks/         # Custom React hooks
│   │   ├── services/      # API service functions
│   │   ├── store/         # State management
│   │   └── utils/         # Utility functions
│   ├── public/            # Static assets
│   └── package.json
├── server/                # Node.js backend
│   ├── src/
│   │   ├── controllers/   # Route controllers
│   │   ├── models/        # Database models
│   │   ├── routes/        # API routes
│   │   ├── middleware/    # Custom middleware
│   │   └── utils/         # Utility functions
│   └── package.json
├── shared/                # Shared types and utilities
└── README.md

🚀 Getting Started

Prerequisites

  • Node.js (v18 or higher)
  • MongoDB (local or cloud instance)
  • npm or yarn

Installation

  1. Clone the repository

    git clone <repository-url>
    cd task-management-app
  2. Install dependencies

    # Install server dependencies
    cd server
    npm install
    
    # Install client dependencies
    cd ../client
    npm install
  3. Environment Setup

    # Create .env file in server directory
    cd ../server
    cp .env.example .env
    # Edit .env with your configuration
  4. Start the application

    # Start the server (from server directory)
    npm run dev
    
    # Start the client (from client directory)
    npm start

🔧 Development

Available Scripts

Server:

  • npm run dev - Start development server with hot reload
  • npm run build - Build for production
  • npm start - Start production server
  • npm test - Run tests

Client:

  • npm start - Start development server
  • npm run build - Build for production
  • npm test - Run tests
  • npm run lint - Run ESLint

📝 API Endpoints

Authentication

  • POST /api/auth/register - User registration
  • POST /api/auth/login - User login
  • POST /api/auth/logout - User logout
  • GET /api/auth/me - Get current user

Tasks

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

Categories

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

🎨 UI Components

The application includes a comprehensive set of reusable components:

  • TaskCard - Individual task display
  • TaskForm - Create/edit task form
  • CategoryFilter - Filter tasks by category
  • SearchBar - Search functionality
  • ProgressChart - Visual progress tracking
  • UserProfile - User account management

🧪 Testing

The project includes comprehensive testing:

  • Unit Tests - Component and utility function testing
  • Integration Tests - API endpoint testing
  • E2E Tests - Full user workflow testing
# Run all tests
npm test

# Run tests with coverage
npm run test:coverage

🚀 Deployment

Frontend (Vercel/Netlify)

  1. Build the client: npm run build
  2. Deploy the build folder to your hosting platform

Backend (Railway/Heroku)

  1. Set environment variables
  2. Deploy using your preferred platform

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/new-feature
  3. Commit changes: git commit -am 'Add new feature'
  4. Push to branch: git push origin feature/new-feature
  5. Submit a pull request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🎯 Future Enhancements

  • Team collaboration features
  • File attachments for tasks
  • Advanced analytics dashboard
  • Mobile app (React Native)
  • Integration with external tools (Slack, Google Calendar)
  • AI-powered task suggestions
  • Time tracking functionality

Perfect for showcasing:

  • Full-stack development skills
  • Modern React patterns and hooks
  • RESTful API design
  • Database modeling and relationships
  • Authentication and authorization
  • Real-time features
  • Responsive design
  • Testing strategies

About

A modern, full-stack task management application built with React and Node.js.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors