Eventify Platform DocumentationΒΆ
Welcome to the comprehensive documentation for Eventify - a modern venue and event booking platform built with Next.js 15 and Cloudflare infrastructure.
-
Getting Started
Set up your local development environment and start building.
-
Database Schema
Explore the complete database structure with ER diagrams.
-
Storage (R2)
Learn how file uploads work with Cloudflare R2 and the two-phase upload pattern.
-
Deployment
Deploy to Cloudflare Pages with GitHub Actions.
ποΈ Platform OverviewΒΆ
Eventify is a comprehensive venue booking platform with:
- π’ Multi-tenant organization management
- π Time-based premise booking with dynamic pricing
- π« Event management and ticketing
- π³ Stripe payment integration
- π Internationalization (English/Polish)
- π Role-based access control
π οΈ Tech StackΒΆ
CoreΒΆ
- Framework: Next.js 15 (App Router)
- Hosting: Cloudflare Pages + Workers
- Database: Cloudflare D1 (SQLite)
- ORM: Prisma
- Styling: Panda CSS
ServicesΒΆ
- Auth: NextAuth.js
- Storage: Cloudflare R2
- Email: Brevo
- Payments: Stripe
- Maps: Mapbox
π Documentation SectionsΒΆ
Getting StartedΒΆ
- Setup & Local Development - Complete setup guide
- Changelog - Recent updates
ArchitectureΒΆ
- Database Schema - ER diagrams and models
- Storage (R2) - File upload patterns
- Email System - Brevo integration
DeploymentΒΆ
- Deployment Guide - GitHub Actions & Cloudflare
- NextAuth & D1 - Auth configuration
LegacyΒΆ
- Deprecated Systems - Kafka, Elasticsearch, migrations
π Quick StartΒΆ
# Clone repository
git clone https://github.com/kinguru-io/kinguru-next.git
cd kinguru-next
# Install dependencies
npm install
# Setup environment
cp .dev.vars.example .dev.vars
# Edit .dev.vars with your credentials
# Run migrations
npm run db:migrate:local
# Seed database
npm run seed
# Start development server
npx wrangler dev
Visit http://localhost:3000
π Key ConceptsΒΆ
Multi-Tenant Booking FlowΒΆ
- Users can be customers, organization owners, or admins
- Organizations own multiple venues
- Venues contain multiple premises (rooms/spaces)
- Premises have time slots available for booking
- PremiseSlots represent individual bookings with payment tracking
Two-Phase Upload PatternΒΆ
Files are uploaded to temporary locations first, then committed when forms are submitted. Auto-cleanup removes abandoned uploads after 24 hours.
InternationalizationΒΆ
All routes are under [locale] (en/pl) with localized content for premises, events, and UI elements.
π€ ContributingΒΆ
- Fork the repository
- Create a feature branch from
staging - Make your changes
- Run tests:
npm run test - Submit a pull request
π LicenseΒΆ
Proprietary software. See LICENSE.
Last Updated: November 2024
ποΈ Architecture OverviewΒΆ
flowchart LR
User[π€ User] --> Next[Next.js 15 App Router]
Next --> Workers[Cloudflare Workers]
Workers --> D1[(Cloudflare D1<br/>SQLite)]
Workers --> R2[Cloudflare R2<br/>Storage]
Workers --> Stripe[Stripe<br/>Payments]
Workers --> Brevo[Brevo<br/>Email API]
subgraph "Core Data Flow"
D1 --> |Prisma ORM| Models[User β Organization<br/>β Venue β Premise<br/>β PremiseSlot]
end
style Next fill:#f96,stroke:#333,stroke-width:2px
style Workers fill:#f90,stroke:#333,stroke-width:2px
style D1 fill:#9cf,stroke:#333,stroke-width:2px π Technology StackΒΆ
- Next.js 15 with App Router
- Panda CSS for styling
- React Email for templates
- next-intl for i18n (en/pl)
- Cloudflare Workers
- OpenNext adapter
- NextAuth.js authentication
- Prisma ORM with D1
- Cloudflare D1 (SQLite)
- Cloudflare R2 (S3-compatible)
- Cloudflare Pages
- Cloudflare Cron triggers
- Stripe payments
- Brevo transactional email
- Mapbox location services
π― Quick LinksΒΆ
-
GitHub Repository
-
Staging Environment
-
Documentation
π‘ Key FeaturesΒΆ
Multi-Tenant Booking System
Organizations manage multiple venues with bookable premises. Each premise has flexible pricing, scheduling, and discount options.
Cloudflare Native
Built from the ground up for Cloudflare's edge platform - D1 database, R2 storage, Workers, and Pages.
International Ready
Full i18n support with English and Polish locales using next-intl.
Stripe Integration
Complete payment flow with PaymentIntents, webhooks, and tax calculation.
π Recent ChangesΒΆ
Check the Changelog for the latest updates and version history.
Need help? Open an issue on GitHub or check existing documentation sections.