webeetle / cherry

Simple scaffolding for Node REST microservice

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cherry πŸ’

This project was born to be a scaffold for a new Node REST microservice. It is a simple project that uses the following technologies / tools / architectures:

  • Hexagonal Architecture Ready πŸ›
  • Typescript πŸ”’
  • Fastify ⏩
  • OpenAPI docs ready πŸ“–
  • JsonRPC server/client ready πŸ“¦
  • SQLite3 with Knex πŸ”§
  • Tap for tests πŸ§ͺ

How to install

  • Clone this repository
  • Run npm install for install all dependencies
  • Run npm run db:init for create the database
  • Run npm run start:dev for start the server in development mode
  • Have fun πŸŽ‰

Commands available

  • Run npm run start:dev to start the server in development mode
  • Run npm run start to start the project in production mode
  • Run npm run test to run the tests
  • Run npm run build:${env} to build the project
  • Run npm run db:init to reset or create the database
  • Run npm run db:migrate:latest to run the latest migrations
  • Run npm run db:migrate:reset to rollback all the migrations

env:

  • development
  • staging
  • production

Using Fastify

Fastify is a web framework highly focused on providing the best developer experience with the least overhead and a powerful plugin architecture. It is inspired by Hapi and Express and as far as we know, it is one of the fastest web frameworks in town. Check out the Fastify documentation.

Using Knex

Knex is a SQL query builder that can be used to build queries for different databases. It is used in this project to build queries for SQLite3, but it can be used for other SQL databases as well. To learn more about Knex, check out the Knex documentation.

Migration

To folders migrations and seeds are used to create the database and populate it with data. See the Knex documentation for more information.

Using Tap

Tap is a test framework for Node.js. It is used in this project to run the tests. To learn more about Tap, check out the Tap documentation.

Docker

Build docker image

env:

  • development
  • staging
  • production

`docker build --build-arg env=${env} -t cherry:latest -f Docker/Dockerfile .'

About

Simple scaffolding for Node REST microservice


Languages

Language:TypeScript 92.5%Language:JavaScript 4.1%Language:Dockerfile 2.6%Language:Shell 0.8%