Some checks failed
Build and Deploy / build-and-deploy (push) Has been cancelled
Extract events/calendar functionality into standalone microservice: - app.py and events_api.py from apps/events/ - Calendar blueprints (calendars, calendar, calendar_entries, calendar_entry, day, slots, slot, ticket_types, ticket_type) - Templates for all calendar/event views including admin - Dockerfile (APP_MODULE=app:app, IMAGE=events) - entrypoint.sh (no Alembic - migrations managed by blog app) - Gitea CI workflow for build and deploy Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
49 lines
1.5 KiB
Markdown
49 lines
1.5 KiB
Markdown
# Events App
|
|
|
|
Calendar and event booking service for the Rose Ash cooperative platform.
|
|
|
|
## Overview
|
|
|
|
The events app provides calendar-based event booking with flexible slot management.
|
|
It runs as a standalone Quart microservice, part of the multi-app coop architecture.
|
|
|
|
## Structure
|
|
|
|
```
|
|
app.py # Application factory and entry point
|
|
events_api.py # Internal JSON API (server-to-server, CSRF-exempt)
|
|
bp/ # Blueprints
|
|
calendars/ # Calendar listing
|
|
calendar/ # Single calendar view and admin
|
|
calendar_entries/ # Calendar entries listing
|
|
calendar_entry/ # Single entry view and admin
|
|
day/ # Day view and admin
|
|
slots/ # Slot listing
|
|
slot/ # Single slot management
|
|
ticket_types/ # Ticket type listing
|
|
ticket_type/ # Single ticket type management
|
|
templates/ # Jinja2 templates
|
|
_types/ # Feature-specific templates
|
|
```
|
|
|
|
## Running
|
|
|
|
```bash
|
|
# Set required environment variables (see .env.example)
|
|
export APP_MODULE=app:app
|
|
hypercorn app:app --bind 0.0.0.0:8000
|
|
```
|
|
|
|
## Docker
|
|
|
|
```bash
|
|
docker build -t events .
|
|
docker run -p 8000:8000 --env-file .env events
|
|
```
|
|
|
|
## Notes
|
|
|
|
- This app does **not** run Alembic migrations. Database schema is managed by the blog app.
|
|
- Internal API endpoints under `/internal/events/` are used by the cart app for cross-service communication.
|
|
- Depends on shared packages (`shared/`, `models/`, `config/`) from the main coop monorepo.
|