A demo web application featuring a Feedback Collector and Feedback Management System, with a learning game focused on chemical origins of life.
/
├── backend/ # Backend API server
├── frontend/ # Frontend web app
├── .github/
│ └── workflows/ # CI/CD pipelines
└── docker-compose.yml # Local development environment
- Docker and Docker Compose
- Node.js (for frontend development outside Docker)
- Python 3.x or Node.js (for backend, depending on stack)
-
Copy environment variables:
cp .env.example .env # Fill in secrets from 1Password (Papercone vault) -
Start all services:
docker-compose up
-
Access:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
The Hono API exposes:
GET /health— liveness (always200JSON{ "status": "ok" }when the process is up).GET /ready— readiness (200when Postgres answersSELECT 1, else503).
The backend Dockerfile includes a HEALTHCHECK that hits /health inside the container. For Kubernetes-style readiness, point your probe at /ready on the same port (8000 by default).
- Frontend: Cloudflare Pages
- Backend: Cloudflare Workers (or proxied via Cloudflare)
- File Storage: Impossible Cloud S3 (for feedback attachments)
All secrets are stored in 1Password (Papercone vault) and injected via:
- Local dev:
.envfile (never committed) - CI/CD: GitHub Secrets
- Production: Environment variables in deployment targets
Never hard-code credentials. See .env.example for required variables.