This project is a task management system designed to facilitate task tracking and organization. It provides users with the ability to create, view, update, and delete tasks, with role-based access control ensuring that users only have access to their own tasks. The system also includes features for user profile management, including profile updates and avatar uploads.
- User Roles: The system supports two roles: base-user and admin. Base users can manage their own tasks and profiles, while admins have additional privileges, such as viewing all user profiles and tasks, as well as promoting base users to admin status and revoking admin privileges.
- Framework: NestJS
- Database: MySQL
- In-memory Storage: Redis
- ORM: TypeORM
- Documentation: Swagger
To install the project automatically, navigate to the project folder in your terminal and run the following command:
./install.sh
For manual installation, follow these steps:
-
Create
.env
file:cp .env.sample .env
-
Start the Docker containers by running the following command in the project folder:
docker compose up -d
-
Install project dependencies using pnpm:
pnpm i
-
Start the server:
pnpm start
Navigate to the project folder in your terminal and run the following command:
./uninstall.sh
For manual un-installation, follow these steps:
-
Stop and remove the Docker containers:
docker compose down
-
Remove Docker volumes associated with the project:
Note: By default, volume names are: 'nadin-soft_mysql-data' and 'nadin-soft_redis-data'.
docker volume rm nadin-soft_mysql-data nadin-soft_redis-data