Shanbe Backend

screenshot of Shanbe Backend
express
nestjs
prisma

An API Boilerplate built on top of NestJS.

Overview:

Shanbe Backend is a backend boilerplate built on top of NestJS. It provides a comprehensive set of features for building scalable and secure applications. The boilerplate supports microservice architecture and follows CQRS design principles. It also includes features like GraphQL support with Apollo federation, authentication and authorization capabilities, OAuth and SSO integrations, user email verification, multiple email addresses for each user, access control based on Casbin, and a mailing queue. Shanbe Backend has certain requirements and environment variables that need to be set up before running the API.

Features:

  • Microservice and CQRS Design: Built-in support for microservice architecture and follows the CQRS design pattern.
  • GraphQL, Apollo Federation: Allows easy integration of GraphQL APIs using Apollo Federation.
  • Authentication and Authorization: Provides authentication and authorization capabilities to secure the application.
  • OAuth and SSO (Google, GitHub, Facebook): Integrates with popular OAuth providers like Google, GitHub, and Facebook for seamless single sign-on (SSO) functionality.
  • User Email Verification (Signed Request Method): Implements a secure email verification process using signed requests.
  • Multiple Email Address for Each User: Supports multiple email addresses for each user, enhancing flexibility and customization.
  • Casbin based Access Control: Uses Casbin library for fine-grained access control and authorization management.
  • Mailing Queue: Implements a mailing queue for efficient and reliable email delivery.
  • Prisma: Uses Prisma as the database ORM (Object-Relational Mapping) tool to interact with the PostgreSQL database.

Summary:

Shanbe Backend is a powerful backend boilerplate built on top of NestJS. It provides a comprehensive set of features required to build scalable and secure applications. With support for microservice architecture, CQRS design, GraphQL, authentication and authorization, OAuth and SSO integrations, user email verification, access control, and a mailing queue, Shanbe Backend is a versatile solution for developing robust backend systems. The installation process involves setting up the required environment variables and running the API using the provided commands.

express
Express

Express.js is a simple Node.js framework for single, multi-page, and hybrid web applications.

nestjs
Nest

A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript/JavaScript.

prisma
Prisma

Prisma is a server-side library that helps developers read and write data to the database in an intuitive, efficient and safe way.

fullstack
Fullstack

A fullstack boilerplate provides a starter application that includes both frontend and backend. It should include database, auth, payments, user roles and other backend services to build a fully featured saas or webapps.

eslint
Eslint

ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.

graphql
Graphql

A website that uses GraphQL as a query language to manage data fetching and state management. This includes features such as a strongly typed schema, client-side caching, and declarative data fetching to streamline data management and optimize website performance.

Pug

Pug is a high-performance template engine for Node.js and browsers that enables developers to write HTML templates using a concise and intuitive syntax. It supports a range of features, including template inheritance, conditionals, loops, mixins, and more, and can be easily integrated into a variety of web frameworks and build tools.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.