Skip to content

CosmoS1X/task-manager

Repository files navigation

Task Manager

Node.js CI Snyk Security Maintainability Code Coverage License: MIT

Overview

Task Manager is a full-stack application for efficient task management with a modern UI and robust backend. It enables teams to organize, track, and prioritize work effectively.

🔗 Live Demo

Key Features

Task Management

  • Create, edit, and delete tasks with rich metadata
  • Advanced filtering by status, labels, assignee, and creator
  • Custom statuses and labels configuration

User Experience

  • User authentication and authorization
  • Responsive design for all devices

Technical Highlights

  • RESTful API with TypeScript
  • Secure authentication
  • PostgreSQL database with TypeORM
  • Database migrations
  • Comprehensive test coverage

Technology Stack

Frontend

  • React with TypeScript
  • Redux Toolkit for state management
  • RTK Query for data fetching and caching
  • React Router for navigation
  • Bootstrap with custom styling
  • React Hook Form for forms
  • Zod for form validation
  • i18next for internationalization

Backend

  • TypeScript with Node.js
  • NestJS for RESTful API
  • TypeORM for database interactions
  • PostgreSQL as database
  • Zod for environment variable validation
  • dotenv for environment variable management

Infrastructure

  • Jest for unit and integration tests
  • ESLint for code quality
  • GitHub Actions for CI/CD
  • Docker for containerization
  • Render for deployment

Getting Started

Prerequisites

  • Node.js 24+
  • PostgreSQL 14+ (for production)
  • npm 11+

Installation

  1. Clone the repository:

    git clone git@github.com:CosmoS1X/task-manager.git
    cd task-manager
  2. Install dependencies:

    npm install
  3. Setup environment variables:

    cp .env.example .env
  4. Configure the .env file with your database credentials and other settings.

  5. Run migrations:

    npm run migrate

Running the App

Command Description
npm run dev Start development server (client + server)
npm run client Frontend only (port 3000)
npm run server Backend only (port 5000)
npm run build Build the application for production
npm start Start the production server

Testing

The test suite uses SQLite for fast execution:

# Run all tests
npm test

# Run specific test suite
npm test <path-to-test-file>

# Test coverage
npm run test:coverage

Deployment

The application can be deployed to any Node.js hosting platform. For Render.com:

  1. Create a new Web Service
  2. Connect your GitHub repository
  3. Set environment variables
  4. Deploy!

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the project
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

About

A task management application built with TypeScript, React, and NestJS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors