Skip to content

Latest commit

Β 

History

History
134 lines (106 loc) Β· 3.59 KB

File metadata and controls

134 lines (106 loc) Β· 3.59 KB

Eventflow

A complete platform connecting event organizers, sponsors, and communities for seamless event management and meaningful partnerships. This app democratizes the process of event organization by providing a user-friendly interface for event organizers to create and manage events, sponsors to sponsor events, and communities to connect with each other.

πŸ“ Project Structure

This project uses a monorepo structure with npm workspaces:

Eventflow/
β”œβ”€β”€ client/                 # React frontend (Vite + TypeScript)
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ api/            # API client for backend communication
β”‚   β”‚   β”œβ”€β”€ components/     # React components
β”‚   β”‚   β”œβ”€β”€ pages/          # Route pages
β”‚   β”‚   β”œβ”€β”€ contexts/       # React contexts (Auth, etc.)
β”‚   β”‚   β”œβ”€β”€ hooks/          # Custom hooks
β”‚   β”‚   └── integrations/   # Third-party integrations (Supabase)
β”‚   β”œβ”€β”€ public/             # Static assets
β”‚   └── package.json        # Frontend dependencies
β”‚
β”œβ”€β”€ server/                 # Express.js backend (TypeScript)
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ routes/         # API route handlers
β”‚   β”‚   β”œβ”€β”€ services/       # Business logic
β”‚   β”‚   β”œβ”€β”€ middleware/     # Auth middleware, etc.
β”‚   β”‚   └── db/             # Database client (Supabase)
β”‚   β”œβ”€β”€ supabase/           # Database migrations
β”‚   └── package.json        # Backend dependencies
β”‚
β”œβ”€β”€ shared/                 # Shared types and utilities
β”‚   └── types/              # Database types
β”‚
└── package.json            # Root workspace configuration

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • npm 9+
  • Supabase account (for database)

Installation

  1. Clone the repository:

    git clone <repository-url>
    cd Eventflow
  2. Install all dependencies:

    npm install
  3. Set up environment variables:

    Client (client/.env):

    VITE_SUPABASE_URL=your_supabase_url
    VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
    VITE_API_URL=http://localhost:3001/api

    Server (server/.env):

    PORT=3001
    CLIENT_URL=http://localhost:8080
    SUPABASE_URL=your_supabase_url
    SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key

Running the Application

Development (both client and server):

npm run dev

Run client only:

npm run dev:client

Run server only:

npm run dev:server

Building for Production

npm run build

πŸ—οΈ Architecture

Frontend (Client)

  • React 18 with TypeScript
  • Vite for fast development and building
  • TailwindCSS for styling
  • React Query for data fetching
  • React Router for navigation
  • Framer Motion for animations

Backend (Server)

  • Express.js with TypeScript
  • Supabase for database and authentication
  • RESTful API design
  • JWT authentication via Supabase

API Endpoints

Endpoint Method Description
/api/health GET Health check
/api/events GET List all events
/api/events/:id GET Get single event
/api/events POST Create event (auth)
/api/profiles/:id GET Get profile (auth)
/api/sponsorships GET List sponsorships

πŸ‘₯ User Roles

  • Organizer: Create and manage events
  • Sponsor: Browse and sponsor events
  • Community: Community organizations
  • Participant: Event attendees

πŸ“ License

MIT License - see LICENSE for details.