Skip to content

xdanielsb/survey-app

Repository files navigation

Survey

Cloud‑native survey engine with end‑to‑end observability.

Backend CI Frontend CI Analytics CI Backoffice CI Frontend Coverage Backend Coverage Analytics Coverage Backoffice Coverage License Release

Key Features

  • Seamless CI / CD | Independent pipelines for UI & API, auto‑promote from staging to prod
  • Security | Keycloak, Google Sign-in JWT gateway, api routes protected, secure cookies
  • Keycloak | Multi-realm configuration (production, staging, development)
  • Security scanning | OWASP Dependency Check and npm audit via GitHub Actions
  • RateLimiter | Bucket4J
  • Data Layer PostgreSQL, Flyway to versioned schema migrations
  • Periodic backups & Database Recovery with PatronX
  • List backups make list-backups via PatronX
  • Remote asset store | Upload backups to S3 using PatronX
  • Instrumentation| Sentry frontend, backend, analytics, sentry (error tracking)
  • Payment| Stripe (credit purchase flow)
  • Invoice PDF | Invoice generation for payments
  • Emails | Sendgrid (when buy a survey)
  • Theme | Dark/White theme
  • Observability: Logstash + Elasticsearch + Kibana + Grafana
  • Monitoring | Prometheus + Grafana (Latency, Error Rate, Traffic, Saturation)
  • Unit/Integration Test | Vitest + JaCoCo + Codecov + TestContainers
  • Stress tests with k6 (nightly via GitHub Actions)
  • MCP | analytics service with MCP connected to an LLM (feature available for premium users).
  • Delivery GitHub Actions · Docker · Caddy reverse‑proxy

Docs

Project Structure

.github/workflows
├── dependabot.yml
└── workflows
    ├── cd
        ├── ...
    ├── ci
        ├── ...
    ├── nightly-stress.yml
    ├── release-changelog.yml
    └── security.yml
└── services
    ├── analytics (fastapi python3.12)
    ├── backend (spring boot 3 java 17)
    ├── backoffice (angular v20)
    └── frontend (vuejs v3)
infra/
  ├──  kubernetes/
  ├──  keycloak/
       ├──   docker-compose.yml
       ├──  Caddyfile
  ├──  monitoring/
       ├──  docker-compose.yml
       ├──   elk/
       ├──  grafana/
       ├──  Caddyfile
  ├── compose/
       ├──  docker-compose.yml
       ├──  docker-compose.dev.yml
       ├── Caddyfile
  ├── scripts/
  ├── docs/
      ├── data-recovery.md
      ├── secure-docker.md
      ├── deploy-keycloak.md
      ├── monitoring-config.md
  ├── performance/
      ├──  stress_tests/

Dev development

Run make help to view all available targets.

 # db + api + ui + elk

 $ make dev-up           # start all services
 # docker compose -f infra/compose/docker-compose.dev.yml --env-file infra/compose/.env up --build --force-recreate -d

 # stop services
 $ make dev-down

 # tail container logs
 $ make dev-logs

 # /services/backend
 $ ./mvnw --debug spring-boot:run

 # /services/frontend
 $ npm run dev

More details: backend/README.md More details: frontend/README.md More details: analytics/README.md More details: backoffice/README.md

License

BSD 3-Clause