Skip to content

LessonsQueue/QueueManagerApi

Repository files navigation

Description

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

Our developers

This project is being made by:

Installation

  • 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

Running the app

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

Tests

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:

$ docker-compose up
  • Apply all migrations to your testing Database:
$ npm run test:migrate
  • And run all integration tests:
$ npm run test:integration

Building

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)

Migrations

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

Continuous Integration

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

Dockerization

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