/Tutor-Management-System

Tool for tracking exam requirements of students at universities (in Germany)

Primary LanguageTypeScript

Tutor Management System

Unit Tests Code Quality Build and push Docker image

The Tutor Management System (short TMS) aims to be a tool used at universities (in Germany). It can be used to track the requirements which a student has to fulfill to be allowed to attend the exam. It can (among other things) track the points gained by the students in their homeworks, how often a student attended the tutorial and how often a student presented a solution.

Getting Started

You can find more information about how to set up your development environment in the development environment guide.

Deployment

For more information on how to deploy this tool please read the installation guide in the project documentation.

If you want to update your existing deployment to a new version please refer to the update guide.

Built With

Here are the most important libraries listed which are used in any part of the project.

  • TypeScript - Programming language.
  • React - Frontend framework.
  • Material-UI - Frontend component library.
  • NestJS - Backend framework used.
  • Formik - Used to clean up the React mess in forms.
  • axios - Used to make the REST calls against the backend.
  • mongoose - Used to connect to the MongoDB.
  • typegoose - Makes working with mongoose documents & typescript easier.

The following tools are used in the maintaining & deploying processes.

  • pnpm - Used package manager.
  • ESLint - Used to ensure code quality.
  • Prettier - Used to ensure a unified code style.
  • GitHub Actions - Used for CI.
  • Node - Runs the production server aswell as the development servers.
  • ts-node - Used to run .ts scripts directly on NodeJS without compiling them.
  • Docker - Used to build the docker images.

Contributing

Please read CONTRIBUTING.md for details on how to contribute to this project.

Versioning

This project uses SemVer for versioning. For the versions available, see the tags on this repository.