Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com> This commit refactors the entire application to replace the 'parties' concept with 'events'. All controllers, models, views, and related files have been updated to reflect this change. The parties table has been replaced with an events table, and all related functionality has been updated accordingly.
80 lines
2.1 KiB
Markdown
Executable File
80 lines
2.1 KiB
Markdown
Executable File
# Aperonight - Event Booking Platform
|
|
|
|

|
|
|
|
## 🌃 Overview
|
|
|
|
**Aperonight** is a two-sided marketplace connecting event-goers with nightlife promoters in Paris. The platform allows:
|
|
|
|
- **Customers** to discover/book tickets for upcoming events
|
|
- **Promoters** to create/manage events and validate tickets at venue entrances
|
|
|
|
## 🎯 Key Features
|
|
|
|
### For Event-Goers
|
|
✔ Browse upcoming events 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{ EVENT : creates
|
|
PROMOTER {
|
|
integer id
|
|
string stripe_account_id
|
|
}
|
|
EVENT ||--o{ TICKET_TYPE : has
|
|
EVENT {
|
|
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
|
|
}
|
|
```
|