Skip to content

πŸš€ Easy to extend, Progressive and Scalable API boilerplate to power your startup.

Notifications You must be signed in to change notification settings

AndromedaTechnology/firestarter-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Firestarter API - Progressive Startup API Boilerplate

Firestarter API

Progressive Startup API Boilerplate
https://firestarter-api.andromeda.technology

Easy to extend, Progressive and Scalable API boilerplate to power your startup.

1. Technology

2. Usage

  1. Clone the repo,
  2. Duplicate .env.example files in [./,/docker/] to .env; modify as needed,
  3. Have Docker installed, run the containers and your app (check the instructions below),
  4. Add modules (routes, controllers, services, tests) to /src (duplicate Message module, adjust to your needs),
  5. List newly added modules (features) here (Readme.md) and in your POSTMAN collection.

3. Features

  1. Message Module,
  2. [Add your modules/features here]

All API routes are prefixed by API_PREFIX (defined in.env) (default: /api).

4. Setup

Docker

Docker provides isolated MongoDB for your project.

cd ./docker

# Duplicate example env file, modify as needed
cp .env.example .env

docker-compose up -d

Application

# Return from `docker` to root dir
# cd ..

# Duplicate example env file, modify if needed
cp .env.example .env

# Install packages
npm i

# Run
npm run dev

5. Tests

Using Jest Testing Framework.

Jest uses SuperTest and MongoDBMemoryServer.

npm run test

6. Postman

Postman Documentation

  • (Link your Postman Documentation here)

Pre-set environment variables:

  • host
  • admin_password

Dynamic environment variables, automatically set in tests:

  • access_token

7. Admin Routes

Routes can be protected with jwtCheck middleware, requiring admin rights.

Requests going to these routes require Authorization: Bearer {access_token} header.

List of protected, i.e. Admin Routes

  1. Message[Create,Update,Delete],
  2. [Add your protected routes here]

Getting access_token for the Admin user

  • Request endpoint: POST /auth/token,
  • Pass your password in the request body: { password: ADMIN_PASSWORD },
  • Response will return created token.

Note: Postman collection will automatically set access_token environment variable, so you can immediately call admin routes, without copy-pasting it or setting the env variable manually.

Getting the ADMIN_PASSWORD

  • Your ADMIN_PASSWORD is defined in .env file.
  • It defaults to secret.

8. Deployment

If you use MongoDB Atlas: Uncomment and fill DB_URI in .env.

9. Social

Andromeda

10. Rest

Hero image source: FireStarter, gilad, DevianArt.

11. Related

πŸ„ Habitus

  • State-of-the-art tracker for emotions, habits and thoughts,
  • Healthiest version of you,
  • Gamified,
  • Anonymous and open source.

12. Contribute

Check Self-Aware Software Artisan before contributing.


Crafted with ❀️
by contributors around the 🌍 World and 🌌 Andromeda.

Releases

No releases published

Packages

No packages published