ZenSoftware / zen

โ›ฉ Nest + Prisma + Apollo + Angular ๐Ÿฎ Full Stack GraphQL Starter Kit โ›ฉ
193 stars 36 forks source link
angular apollo graphql nest nestjs nx paljs prisma typescript

โ›ฉ Zen โ›ฉ

Nest + Prisma + Apollo + Angular ๐Ÿฎ Full Stack GraphQL Starter Kit

Zen is a starter kit to build web portals as a stateful single-page application. This kit has everything needed for building a customized user experience utilizing only TypeScript & GraphQL. The project has end-to-end typings and this is achieved by combining several code generation packages together.

Specifically, this is an Nx integrated monorepo, utilizing Angular for the frontend, Nest for the backend, and Prisma for the data persistence solution. Apollo is deeply integrated throughout the entire tech stack, enabling for a modern approach to communication between the client and the server via GraphQL.

The project implements a fully featured authentication & authorization system with a minimalistic implementation. This includes a login component, registration component, password change component and a fully featured password reset flow. All of this while only having 1 model within the schema.prisma file, the User model. Guards & directives are also integrated for both RBAC & ABAC authorization schemes and can be used in conjunction. Everything needed for a malleable and robust user management system has been wired up for you.

Key Features


๐Ÿฃ Setup Instructions - GitHub Repo

Requirements

We are utilizing pnpm as our package manager. Though, you can utilize npm if you prefer by running the equivalent npm commands.

# Project setup steps
git clone https://github.com/ZenSoftware/zen.git
cd zen

# Make a copy of the .env file
cp .env.example .env

# Install node modules
pnpm i

# Start the PostgreSQL server
docker-compose up -d

# Run the initial Prisma migration
pnpm prisma:migrate

# Start the Nest API
pnpm start:api

# Start the Angular app at localhost:4200
pnpm start

# Reload Apollo VSCode extension via command palette after the API has started
>Apollo: Reload schema

๐Ÿฅข GraphQL Features


๐Ÿฑ API Authentication, Performance & Scaling


๐Ÿต Modern Web Components and Responsive UIs


๐ŸŽ Optional Tech Integrations


๐Ÿก Developer Operations