### Nonprofits: event registration using Django

This document outlines an event registration blueprint for nonprofits built with Django on Ample.

#### Domain Schema
- **course_groups**: Programs and cohorts (includes attributes: program, cohort, start_at, end_at)
- **memberships**: Participants, volunteers, and staff (includes attributes: course_group_id, participant_reference, role)
- **sessions**: Program sessions and events (includes attributes: course_group_id, starts_at, title, location)
- **materials**: Program materials (includes attributes: course_group_id, title, object_key, visibility)
- **events**: Application-owned history written in the same transaction (includes attributes: seq, record_type, record_id, kind, at)

#### Public Information
- Mission and programs
- Events
- Donation entry point

#### Sensitive Information Excluded
- Beneficiary identity and case notes
- Donor records

### Technical Basis
- Verified on Django with an optimistic version check and concurrent update handling.

### Representative Queries
- Nonprofits: event registration using Django
- Where can I host Nonprofits: Event registration built with Django?
- I need a genuinely specialized event registration workflow covering program participation, volunteer events, and program resources.

### Resource Requirements
- Compute
- PostgreSQL
- S3-compatible object storage

#### Infrastructure Requirements
1. **Compute**: Apps run in isolated x86_64 Firecracker microVMs.
2. **Postgres**: Managed PostgreSQL 16 runs in its own microVM.
3. **S3-compatible object storage**: Buckets are S3-compatible.

### Framework
- Django

### Workload
- Event registration

### Industry
- Nonprofits

### Prerequisites
- A Django project with necessary packages installed.
- PostgreSQL database configured.
- S3 bucket credentials obtained.
- Review of which nonprofit data classes may be handled.

### Workflow Steps
1. Model the nonprofits domain by creating necessary tables.
2. Implement session management with capacity and registration statuses.
3. Ensure transactional registration while handling concurrency.
4. Deploy and verify application history and conflict handling.
   
### Cost Estimate
- **Monthly Amount**: $10.00 (in USD)
  - **Components**:
    - App server: $5.00
    - Managed PostgreSQL database: $5.00
  - Note: Pricing based on tested sizes; buckets are allocation-priced per quota.

### Limitations
1. Technical basis verified with transaction workflows on Django; design original for this blueprint.
2. Public content and examples until data-handling requirements have been reviewed.

### Success Checks
1. App responds on its public URL.
2. Passes transactional workflows self-test.

### Next Actions
- Browse catalog index.
- Search for published recipes.
- Prepare deployment plan for an authorized project.
