# Aperonight - Party Booking Platform ![Aperonight Screenshot](app/assets/images/screenshot-homepage.png) ## 🌃 Overview **Aperonight** is a two-sided marketplace connecting party-goers with nightlife promoters in Paris. The platform allows: - **Customers** to discover/book tickets for upcoming parties - **Promoters** to create/manage events and validate tickets at venue entrances ## 🎯 Key Features ### For Party-Goers ✔ Browse upcoming parties with filters (date, location, music genre) ✔ Book tickets with multiple bundle options (VIP, group passes, etc.) ✔ Secure payment processing (credit cards, Apple/Google Pay) ✔ Mobile-friendly e-tickets with QR codes ### For Promoters ✔ Event creation dashboard with ticket type customization ✔ Real-time ticket validation via mobile scanning ✔ Sales analytics and attendee tracking ✔ Automatic aggregation of events from partner platforms ## 🛠 Technical Stack ### Backend - **Ruby on Rails 7** (API mode) - **MariaDB** database - **ActiveJob** for background processing ### Frontend - **Hotwire (Turbo + Stimulus)** for reactive UI - **Tailwind CSS** for styling - **React Native** for promoter mobile app (ticket scanning) ### Key Integrations - **Stripe Connect** for payments & promoter payouts - **Shogun/Bizouk/Weezevent APIs** for event aggregation ## 📊 Database Schema (Simplified) ```mermaid erDiagram USER ||--o{ BOOKING : makes USER { integer id string email string encrypted_password } PROMOTER ||--o{ PARTY : creates PROMOTER { integer id string stripe_account_id } PARTY ||--o{ TICKET_TYPE : has PARTY { integer id datetime start_time } BOOKING ||--o{ TICKET : generates BOOKING { integer id decimal total_price } TICKET_TYPE ||--o{ TICKET : defines TICKET_TYPE { integer id string name } TICKET { integer id string qr_code } ```