Skip to content

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.

    Setup Guide

  • Database Schema


    Explore the complete database structure with ER diagrams.

    Schema Documentation

  • Storage (R2)


    Learn how file uploads work with Cloudflare R2 and the two-phase upload pattern.

    Storage Guide

  • Deployment


    Deploy to Cloudflare Pages with GitHub Actions.

    Deployment Guide

πŸ—οΈ 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ΒΆ

ArchitectureΒΆ

DeploymentΒΆ

LegacyΒΆ

πŸš€ 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ΒΆ

User β†’ Organization β†’ Venue β†’ Premise β†’ PremiseSlot (Bookings)
  • 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¢

  1. Fork the repository
  2. Create a feature branch from staging
  3. Make your changes
  4. Run tests: npm run test
  5. 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

πŸ’‘ 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.