Technologies: Node.js, Express.js, TypeScript, MongoDB, mongoose, jest, JWT, passport, bcrypt, nodemailer.
This is the backend that supports the websites of the system and manages the database.
Deployment & Swagger: https://semicolon-registration-backend.onrender.com/ (May take up to 2 mins to wake up the server)
For information about the whole system, look here.
Documentation of the API can be found in the Swagger.
The focus of this section is about the quality of the backend codebase and the maintainability of the system.
The backend enables all the features of the system, which are described here.
The focus of the backend is to provide a clean and maintainable codebase. This is achieved by:
- Full Test Coverage
- Tests are written for all the endpoints and services. Both unit and integration tests are written.
- The tests are written using Jest.
- The tests are run on every pull request to the repository.
- CI/CD
- The backend is deployed on every push to the repository.
- The test suite is run on every pull request to ensure that the code is working as expected.
- The deployment is done using Render.
- Code Quality
- The code is written in TypeScript, which provides type safety and better code quality.
- Code quality is guaranteed through code reviews on every pull request.
- Project Structure and Maintainability
- The project is structured in a way that makes it easy to navigate and understand.
- The project uses MVC architecture.
- The project can easily be extended and maintained.
- Multiple Environments
- The project can be run in development, testing, and production environments. This protects the production data during development.
- The project uses environment variables for configuration.
- API Documentation
- The API is documented using Swagger.
- The documentation is automatically generated from the codebase.
Clone the project
git clone https://github.com/Deadreyo/SemiColon-backend.git
Go to the project directory
cd SemiColon-backend
Install dependencies
npm install
Edit the example.env
file and rename it to .env
and add the required values.
Start the server. For Windows dev-windows
and for Linux dev-linux
npm run dev-windows