This is a toy project for a headless TMS built with NestJS and MongoDB, enabling teams to create, manage, and close tickets, track their status and prioritize tasks.
To get started with this project, you can choose to either run the project natively on your machine, or with Docker.
To run the project natively, you will need to have Node.js v22.12.0 or higher and npm v10.9.0 or higher installed on your machine.
npm install
to install the necessary dependencies.npm start
to start the server.To run the project with Docker, you will need to have Docker installed on your machine.
# The MongoDB connection string for the TMS database
MONGODB_URI="mongodb://mongodb/test"
# The port on which the TMS API will run
PORT="3000"
# The seed string to be used for the JwtStrategy
JWT_SECRET="42"
docker compose build
to build the containers.docker compose up
to start the containers.http://localhost:3000/
.Once the server is running, you can use the following endpoints to manage your projects/tickets:
POST /api/v1/register
: Gives the ability to registerPOST /api/v1/login
: Returns a jwt token for authenticationGET /api/v1/projects
: Returns a list of all projectsPOST /api/v1/projects
: Create a new projectGET /api/v1/projects/:id
: Returns a specific project by project ID.PATCH /api/v1/projects/:id
: Update a project by IDDELETE /api/v1/projects/:id
: Delete a project by IDGET /api/v1/tickets
: Returns a list of all ticketsPOST /api/v1/tickets
: Create a new ticketGET /api/v1/tickets/:id
: Returns a specific ticket by ticket ID.PATCH /api/v1/tickets/:id
: Update an existing ticket by IDDELETE /api/v1/tickets:id
: Delete a ticket by IDGET /heath
: Returns useful system information, such as server uptime and memory usage. This endpoint can be used to monitor the health of the application.Here are some potential improvements that could be made to this project:
Contributions to this project are welcome! If you have any suggestions, bug reports, or feature requests, please open an issue or submit a pull request.
This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.