https://github.com/chrscmpl/hivemind-backend-api
Backend REST API for the HiveMind web application, developed as part of a student project for the Web Technologies course at the University of Naples Federico II
https://github.com/chrscmpl/hivemind-backend-api
backend nest node rest typescript
Last synced: about 2 months ago
JSON representation
Backend REST API for the HiveMind web application, developed as part of a student project for the Web Technologies course at the University of Naples Federico II
- Host: GitHub
- URL: https://github.com/chrscmpl/hivemind-backend-api
- Owner: chrscmpl
- License: mit
- Created: 2024-11-12T13:44:13.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-20T11:09:20.000Z (over 1 year ago)
- Last Synced: 2025-03-20T12:24:05.093Z (over 1 year ago)
- Topics: backend, nest, node, rest, typescript
- Language: TypeScript
- Homepage:
- Size: 483 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
HiveMind Backend
This repository contains the source code for the HiveMind REST API, developed as part of a student project for the Web Technologies course in the Computer Science degree program at the University of Naples Federico II.
It is designed with the objectives of respecting REST principles as much as possible, enforcing validation in an elegant way, and documenting in detail following the OpenApi specification.
## Build instructions
To run the project, hosting it on `http://localhost/`, first you will need to rename the file `.env.example` to `.env`, then run one of the following commands:
```bash
# development
$ npm run start
# watch mode
$ npm run start:dev
# production mode
$ npm run start:prod
```
After running it, swagger documentation for the project can be viewed at `http://localhost/api-docs`
## Technologies
- The **[TypeScript](https://www.typescriptlang.org/)** programming language and the **[NestJS](https://nestjs.com/)** framework, built on top of **[Express](https://expressjs.com)** for **[NodeJS](https://nodejs.org/en)** were used for the development of the application.
- **[TypeORM](https://typeorm.io/)** is the ORM used to store, query, manipulate data in a database.
- The **[Swagger](https://swagger.io/)** was used to provide documentation for the REST API.
- The packages **[class-validator](https://github.com/typestack/class-validator)** and **[class-transformer](https://github.com/typestack/class-transformer)** were used to define constraints and enforcing validation in an elegant, readable and extendable way, with the use of decorators.
- Other important packages used for the project include **[passport-jwt](https://www.passportjs.org/packages/passport-jwt/)**, **[bcrypt](https://www.npmjs.com/package/bcrypt)**, **[sanitize-html](https://www.npmjs.com/package/sanitize-html)**, **[lodash](https://lodash.com/)**