Logo Lanfrica

Raedin24/azubi-capstone

Domaine:

digital infrastructure

Type de record:

softwareproject
Créateur:
Rae
Hôte:
Event Registration & Ticketing System, created as the final capstone project for Azubi Africa's Cloud Computing training program. # Event Registration & Ticketing System A serverless event registration and ticketing system built on AWS. **Live site → d2m8y969cy7786.cloudfront.n… | Environment | Site | API | |---|---|---| | prod | d2m8y969cy7786.cloudfront.n… | `fdq0y1zki2.execute-api.us-e…` | | dev | d1i0ffiqumue4p.cloudfront.n… | `2ko2cdfmv4.execute-api.us-e…` | ## Architecture CloudFront → S3 (static frontend) for the UI; API Gateway → Lambda (Python 3.12) → DynamoDB for the API. CloudWatch for logs, metrics and alarms, SNS for notifications, AWS Budgets for cost control. All of it defined in one SAM template and deployed by GitHub Actions. ## API | Method | Path | Purpose | |--------|----------------------------|-----------------------| | GET | /health | Health check | | POST | /register | Register for an event | | GET | /events | List all events | | GET | /registrations/{email} | View a user's regs | | DELETE | /registration/{id} | Cancel a registration | ## Deploy `samconfig.toml` is committed with a placeholder `AlarmEmail`. Supply a real address once, in a gitignored copy: ```bash cp samconfig.toml samconfig.local.toml # then edit AlarmEmail in both blocks sam build sam deploy --config-file samconfig.local.toml --config-env dev ``` In CI the address comes from the `ALARM_EMAIL` repo secret instead. See RUNBOOK §3 and §12 for the full picture. ## Local test ```bash python -m pytest tests/ -q # unit tests, mocked with Moto. No AWS resources touched. ``` Smoke tests run against the deployed API with curl — see RUNBOOK §5. There is also a `sam local` path in RUNBOOK §6, but it needs Docker and has not been used on this project. ## Security posture The endpoints are intentionally public, matching the project's public-API scope. Protections in place …