This repository has been archived on 2026-02-24. You can view files and clone it. You cannot open issues or pull requests or push a commit.
giles 3c0fa45f8c
Some checks failed
Build and Deploy / build-and-deploy (push) Has been cancelled
feat: initialize events app with calendars, slots, tickets, and internal API
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>
2026-02-09 23:16:32 +00:00

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

# Set required environment variables (see .env.example)
export APP_MODULE=app:app
hypercorn app:app --bind 0.0.0.0:8000

Docker

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.
Description
No description provided
Readme 578 KiB
Languages
HTML 51%
Python 48.4%
Shell 0.3%
Dockerfile 0.3%