# Swansea Airport Stakeholders' Alliance Membership Management System ## Project Overview This project aims to develop a comprehensive membership management system for the Swansea Airport Stakeholders' Alliance. The system will handle member registration, payment processing, membership tracking, and administrative functions for a medium-sized alliance. ## Core Features ### Public Member Features - **Self-Service Registration**: Members can sign up online and select their membership tier - **Payment Processing**: Integration with Square payment system for secure online payments, and a dummy payment system for initial testing - **Membership Portal**: Secure login to view membership status, payment history, and upcoming meetings - **Renewal Reminders**: Automated email notifications for membership renewal deadlines - **Event Management**: View upcoming events and RSVP to participate - **Volunteering**: View assigned volunteer roles, schedule availability for roles, and access certificates/training records ### Administrative Features - **Member Database Management**: Query and modify member records - **Manual Payment Entry**: Record cash payments to activate memberships - **Membership Tier Management**: Configure different membership levels and associated fees - **Meeting Management**: Post notices and updates about upcoming alliance meetings - **Reporting**: Generate reports on membership statistics and payment status - **Files**: A repositry for files which members can access based on their tier - such as meeting minutes and manuals. Admins can upload files to this area. - **Event Management**: Create, edit, and manage events, track RSVPs and attendance - **Volunteering**: Assign configurable volunteer roles to members (e.g., Fire, Radio, General), manage volunteer schedules, and record certificates/training. Note: A member may not necessarily be a volunteer, but all volunteers are members. ## Technical Stack - **Backend**: Python with FastAPI/Uvicorn for high-performance async web framework - **Database**: MySQL for reliable data storage and complex queries - **Authentication**: JWT-based authentication system - **Payment Integration**: Square API for payment processing - **Email Service**: SMTP2GO API for automated reminders and notifications - **Frontend**: Modern web interface (to be determined - potentially React/Vue.js) ## Membership Tiers The system should support configurable membership tiers, including: - Basic membership (Personal) £5 / year - Group membership (Aircraft Owners) £25 / year - Corporate membership (£100 / year) - Other custom tiers as needed Each tier will have associated annual fees and benefits. ## Payment System - Primary payment method: Square integration for online payments - Support for manual payment entry (cash/check payments) - Annual fee collection with automatic renewal reminders - Payment history tracking ## Security Requirements - Secure user authentication and authorization - Data encryption for sensitive information - Role-based access control (members vs administrators) - GDPR compliance for data protection ## Email Integration - Welcome emails for new members - Payment confirmation emails - Renewal reminder emails (configurable timing) - Meeting notification emails - Administrative notification emails ## Database Schema (High-Level) ### Core Tables - `users`: Member information and authentication - `memberships`: Membership records with tier and status - `payments`: Payment transactions - `tiers`: Membership tier definitions - `events`: Event information and details - `event_rsvps`: Event registration and attendance tracking - `volunteer_roles`: Configurable volunteer role definitions (e.g., Fire, Radio, General) - `volunteer_assignments`: Member-to-role assignments - `volunteer_schedules`: Volunteer shift scheduling and availability - `certificates`: Training certificates and qualifications - `notifications`: Email notification logs ## Development Phases 1. **Phase 1**: Core API development (authentication, user management) 2. **Phase 2**: Payment integration and membership management 3. **Phase 3**: Admin interface development 4. **Phase 4**: Member portal, email system, event management, and volunteering features 5. **Phase 5**: Testing, deployment, and documentation ## Deployment Considerations - Containerized deployment using Docker - Scalable architecture for medium-sized alliance - Backup and recovery procedures - Monitoring and logging ## Future Enhancements - Mobile app development - Advanced reporting and analytics - Integration with other alliance systems - Multi-language support - **Asynchronous Batch Processing**: Implement automated renewal reminder system using scheduled batch jobs - Create containerized renewal reminder script that runs daily - Query memberships expiring within configurable timeframe (e.g., 30 days) - Send personalized renewal reminder emails using existing email templates - Add batch job scheduling with cron or similar scheduler - Include logging and monitoring for batch job execution - Extend pattern for other automated tasks (payment reminders, membership expiration processing) ## Project Requirements ### Functional Requirements - User registration and authentication - Membership tier selection and management - Payment processing and tracking - Email notification system - Administrative dashboard - Member self-service portal - Event management and RSVP system - Volunteer role assignment, scheduling, and certificate/training management ### Non-Functional Requirements - High availability and performance - Data security and privacy - Scalable architecture - User-friendly interface - Comprehensive documentation ## Team Considerations - Backend developers (Python/FastAPI) - Frontend developers (if separate frontend) - Database administrators - DevOps engineers - QA testers - Business analysts for requirements refinement ## Risk Assessment - Payment system integration complexity - Email deliverability issues - Data migration from existing systems - User adoption and training - Regulatory compliance requirements ## Success Metrics - Successful member registration rate - Payment processing success rate - User engagement with portal - Administrative efficiency improvements - System uptime and performance