80 lines
2.1 KiB
Markdown
Executable File
80 lines
2.1 KiB
Markdown
Executable File
# Aperonight - Party Booking Platform
|
|
|
|

|
|
|
|
## 🌃 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
|
|
<!--- **Redis** for caching/background jobs-->
|
|
- **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
|
|
<!--- **Twilio** for SMS ticket delivery-->
|
|
<!--- **AWS S3** for media storage-->
|
|
|
|
## 📊 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
|
|
}
|
|
```
|