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.
- Create, edit, and delete tasks with rich metadata
- Advanced filtering by status, labels, assignee, and creator
- Custom statuses and labels configuration
- User authentication and authorization
- Responsive design for all devices
- RESTful API with TypeScript
- Secure authentication
- PostgreSQL database with TypeORM
- Database migrations
- Comprehensive test coverage
- 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
- 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
- Jest for unit and integration tests
- ESLint for code quality
- GitHub Actions for CI/CD
- Docker for containerization
- Render for deployment
- Node.js 24+
- PostgreSQL 14+ (for production)
- npm 11+
-
Clone the repository:
git clone git@github.com:CosmoS1X/task-manager.git cd task-manager -
Install dependencies:
npm install
-
Setup environment variables:
cp .env.example .env
-
Configure the
.envfile with your database credentials and other settings. -
Run migrations:
npm run migrate
| 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 |
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:coverageThe application can be deployed to any Node.js hosting platform. For Render.com:
- Create a new Web Service
- Connect your GitHub repository
- Set environment variables
- Deploy!
Contributions are welcome! Please follow these steps:
- Fork the project
- Create your feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.