Helldiver's Hangar is an API designed for Helldivers 2 enthusiasts to share and manage their loadouts. Built with TypeScript, leveraging NestJS for backend structure, and TypeORM for ORM with a PostgreSQL database, this project aims for seamless integration and performance.
To get started with Helldiver's Hangar, follow these steps:
-
Clone the repository:
git clone https://github.com/seba11998/Helldivers-Hangar.git cd Helldivers-Hangar -
Install dependencies:
npm install
Before you can run the application, you need to configure your environment:
-
Copy the
.env.examplefile to.env:cp .env.example .env
-
Create a database in PostgreSQL named
helldivershangaror the name you set in the.envfile. -
Ensure your PostgreSQL database is running and accessible with these credentials.
Start the application with:
npm run startThe API will be available at http://localhost:3000.
After the first run, use the populate-db.sql file to populate the database with the necessary data.
Here are the available API endpoints:
POST /loadouts- Create a new loadoutGET /loadouts- Retrieve all loadoutsGET /loadouts/:uniqueId- Retrieve a specific loadout by unique IDPUT /loadouts/:id- Update a loadout by IDDELETE /loadouts/:id- Delete a loadout by ID
GET /firing-modes- Retrieve all firing modesGET /firing-modes/:id- Retrieve a specific firing mode by IDPOST /firing-modes- Create a new firing modePUT /firing-modes/:id- Update a firing mode by IDDELETE /firing-modes/:id- Delete a firing mode by ID
POST /throwables/image/:id- Upload an image for a throwablePOST /throwables- Create a new throwableGET /throwables- Retrieve all throwablesGET /throwables/:id- Retrieve a specific throwable by IDPUT /throwables/:id- Update a throwable by IDDELETE /throwables/:id- Delete a throwable by ID
POST /traits- Create a new traitGET /traits- Retrieve all traitsGET /traits/:id- Retrieve a specific trait by IDPUT /traits/:id- Update a trait by IDDELETE /traits/:id- Delete a trait by ID
GET /passives- Retrieve all passivesGET /passives/:id- Retrieve a specific passive by IDPOST /passives- Create a new passivePUT /passives/:id- Update a passive by IDDELETE /passives/:id- Delete a passive by ID
POST /primary-weapon/image/:id- Upload an image for a primary weaponPOST /primary-weapon- Create a new primary weaponGET /primary-weapon- Retrieve all primary weaponsGET /primary-weapon/:id- Retrieve a specific primary weapon by IDPUT /primary-weapon/:id- Update a primary weapon by ID
POST /secondary-weapon/image/:id- Upload an image for a secondary weaponPOST /secondary-weapon- Create a new secondary weaponGET /secondary-weapon- Retrieve all secondary weaponsGET /secondary-weapon/:id- Retrieve a specific secondary weapon by IDPUT /secondary-weapon/:id- Update a secondary weapon by ID
POST /helmet/image/:id- Upload an image for a helmetPOST /helmet- Create a new helmetGET /helmet- Retrieve all helmetsGET /helmet/:id- Retrieve a specific helmet by IDPUT /helmet/:id- Update a helmet by ID
POST /armor/image/:id- Upload an image for an armorPOST /armor- Create a new armorGET /armor- Retrieve all armorsGET /armor/:id- Retrieve a specific armor by IDPUT /armor/:id- Update an armor by ID
POST /cape/image/:id- Upload an image for a capePOST /cape- Create a new capeGET /cape- Retrieve all capesGET /cape/:id- Retrieve a specific cape by IDPUT /cape/:id- Update a cape by ID
POST /auth/signup- Sign up a new userPOST /auth/login- Log in a user
This project is licensed under the MIT License.