fullbazel icon indicating copy to clipboard operation
fullbazel copied to clipboard

🌿 Fullstack Example Monorepo with Bazel


Fullstack Bazel

Fullstack example monorepo for building web apps with Bazel

Usage

Recommended Operating System: Ubuntu 20.04 LTS

Setup

  • make setup (Install required software and sets up project)

Angular Client

  • make angular (Start Angular development server, http://localhost:8080)
  • make angular-ssr (Start Angular Production server, http://localhost:8080)

Next.js Client

  • make next (Start Next.js development server, http://localhost:3000)
  • make next-prod (Start Next.js production server, http://localhost:3000)

Development

  • make server (Start development backend services)
  • make test (Unit tests with Bazel)
  • make lint (Check linting)
  • make test-integration (Integration tests with Jasmine and Testcontainers)
  • make check-dependencies (Check npm dependencies)

Deployment

  • make init-infrastructure (Initialize infrastructure)
  • make plan-infrastructure (Plan infrastructure)
  • make update-infrastructure (Update infrastructure)
  • make destroy-infrastructure (Destroy infrastructure)
  • make deploy (Deploy to Kubernetes cluster)

Codebase

Services

  • angular-client Angular, web application
  • nextjs-client Next.js, web application
  • nodejs-server Node.js, http server

Libraries

  • angular-tools Bazel, tooling for Angular
  • config Typescript, runtime configuration management and build time config generation
  • enums Typescript, shared enumerations
  • kubernetes Yaml, Kubernetes configurations
  • schema Typescript, shared Typescript interfaces
  • testing Typescript, testing utilities
  • types Typescript, shared types
  • ui-elements Typescript, Angular, shared user interface components
  • websocket-store Typescript, Angular, NgRx module for web sockets

Miscellaneous

  • development, tooling, configurations and scripts for development
  • infrastructure, Terraform configurations to deploy application in the cloud