Happ SaaS Client

CI Deploy Dev

Angular 21 SSR приложение для платформы Happ — многоканальный AI-ассистент для бизнеса.

Link
Production https://my.happ.tools
Documentation https://client.saas.docs.happ.tools
All docs https://docs.happ.tools

Tech Stack

Category Technology
Framework Angular 21 + SSR (Express 5)
Build Vite + @analogjs/vite-plugin-angular
UI Angular Material M3 / ng-select / Swiper / ECharts
State @ngneat/elf / RxJS / Angular Signals
API REST (HttpClient) / GraphQL (codegen) / Socket.IO
i18n Transloco (9 languages)
Auth JWT + Google OAuth
Testing Vitest 4 + @analogjs/vitest-angular
Code Quality ESLint / Prettier / Stylelint / TypeScript 5.9 strict
Docs Compodoc / Storybook 10

Third-Party Services

Service Purpose Link
Doppler Secrets & environment management https://dashboard.doppler.com
Sentry Error tracking & session replay https://sentry.io
Google Analytics 4 Web analytics https://analytics.google.com
Google Tag Manager Tag management https://tagmanager.google.com
Microsoft Clarity Behavior analytics & heatmaps https://clarity.microsoft.com
Prometheus Metrics collection https://grafana.happ.tools
Grafana Dashboards & visualization https://grafana.happ.tools
Loki Log aggregation https://grafana.happ.tools
Cloudflare Pages Documentation hosting https://client.saas.docs.happ.tools
GHCR Container registry https://ghcr.io/happ-ai/saas-client
GitHub Actions CI/CD https://github.com/Happ-AI/saas-client/actions

Quick Start

Example :
npm install
npm run generate:env -- local   # Generate environment from Doppler
npm start                       # Dev server → http://localhost:4200

Commands

Example :
# Development
npm start                       # Dev server (port 4200)
npm run serve:ssr               # SSR server (port 4000)

# Build
npm run build:prod              # Production SSR build
npm run build:prod:sentry       # Build + upload sourcemaps to Sentry

# Code Quality
npm run typecheck               # TypeScript check
npm run lint:fix                # ESLint fix
npm run slint:fix               # Stylelint fix (SCSS)
npm run format                  # Prettier

# Testing
npm test                        # Run all tests (vitest run)
npx vitest                      # Watch mode

# Code Generation
npm run codegen                 # GraphQL codegen
npm run fetchTypes              # Fetch types from backend API

# Documentation
npm run storybook               # Storybook → http://localhost:6006
npm run docs:generate           # Compodoc → http://localhost:8080

Environments

Environment Deploy Domain
local Manual http://localhost:4200
dev Auto (push to dev) dev.my.happ.tools
prod Manual (GitHub Actions) https://my.happ.tools

Environment files auto-generated from Doppler — not stored in git.

Example :
npm run generate:env -- local       # Single env
npm run generate:env -- dev prod    # Multiple envs
SKIP_ENV=true npm start             # Skip generation

CI/CD

Workflow Trigger Steps
ci.yml PR to dev/main typecheck → lint → test → build
deploy-dev.yml Push to dev test → Docker build → deploy to dev
deploy-prod.yml Manual test → Docker build → deploy to prod
docs.yml Push to main/dev (docs/) Build & deploy to Cloudflare Pages
release.yml Push to main Auto-tag from release/* branches

Docker images: ghcr.io/happ-ai/saas-client:dev / ghcr.io/happ-ai/saas-client:latest

Git Flow

Example :
feature/* ──┐
fix/*     ──┼──> dev ──> release/* ──> main (auto-tag)
hotfix/*  ──┘

Branch format: prefix/description (feat, feature, fix, hotfix, refactor, chore, docs, test, ci, release)

Monitoring

Tool Endpoint Purpose
Health check GET /health Liveness probe
Prometheus GET /metrics SSR metrics (requests, render duration, errors)
Grafana https://grafana.happ.tools Dashboards
Sentry https://sentry.io Errors & performance

See MONITORING.md for details.

Documentation

Resource Link
Project docs https://client.saas.docs.happ.tools
All Happ docs https://docs.happ.tools
Monitoring MONITORING.md
Code Rules CODE_RULES.md

License

Private project.

results matching ""

    No results matching ""