This is the LessonsQueue project's API repository. The project is being developed to facilitate the process of passing laboratory work by university students. This API provides students with the ability to efficiently manage their lab assignment queue. The application provides the ability to create the queue, add students to the queue, move and remove them from it, as well as mark the completion of tasks, etc...
Our tech stack: Nest.js and Prisma (with PostgreSQL as DBMS)
Design Document: For more understanding of this project you can visit our Design Document
This project is being made by:
-
First and foremost, you need to make sure that you have installed Node.js
-
After that, you have to clone this repository and enter the working folder:
$ git clone https://github.com/LessonsQueue/QueueManagerApi.git
$ cd QueueManagerApi
- Then you have to install the dependencies for this project:
$ npm install
In order to run this project you have to write one of these commands:
- In development mode:
# development
$ npm run start
- In watch mode:
# watch mode
$ npm run start:dev
- In production mode:
# production mode
$ npm run start:prod
The tests are located in the same folder as the services
and are marked as .spec.ts
. If you want to run our tests locally, you should:
- Start PostgreSQL Database for testing using docker compose:
$ docker-compose up
- Apply all migrations to your testing Database:
$ npm run test:migrate
- And run all integration tests:
$ npm run test:integration
If you want to build our project you have to write this command:
$ npm run build
Or you can use our Dockerfile to build the project (how to build the image of our app, visit the Dockerization
sections of README)
If you want to use our logic you have to use your prepared Database (with PostgreSQL as DBMS) and add it to your .env
.
You can see the example of your .env
file here .env.example.
Afterwards, you should apply all migrations to your Database:
$ npx prisma migrate dev
We have also added CI using GitHub Actions
(located in .github
folder) for checking the build and running integration tests.
Here you can find our All Workflows
If you want to build our image, you should write these commands:
$ sudo docker build -t nest:latest .
After that:
$ sudo docker run -p 3000:3000 --env-file .env nest:latest
You can also get the latest version of our image from DockerHub repository:
$ docker pull rerorerio8/queue-manager:latest