Skip to content

enotech-inc/e-tickets-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

e-tickets App

A comprehensive event ticketing platform built with Laravel, featuring a multi-application architecture for admin management, API services, and user interface.

Description

e-tickets App is a full-stack event management and ticketing system that allows organizers to create and manage events, while users can browse, purchase tickets, and manage their bookings. The platform supports secure payments, user authentication, and administrative oversight through a dedicated panel.

The application solves the problem of fragmented event management by providing an integrated solution for event creation, ticket sales, and attendee management, with a focus on scalability and ease of use.

Features

  • Event Management: Create, update, and manage events with details like dates, locations, pricing, and categories
  • Ticketing System: Sell tickets with configurable limits and purchase deadlines
  • Payment Processing: Secure payments via Stripe integration
  • User Authentication: SSO authentication using WorkOS
  • Admin Panel: Comprehensive admin interface built with Filament for managing all aspects of the platform
  • API Services: RESTful API for frontend integration and third-party access
  • Responsive UI: Modern, responsive user interface for event browsing and ticket purchasing
  • MongoDB Integration: NoSQL database for flexible data storage
  • Real-time Monitoring: Laravel Telescope for debugging and performance monitoring

Tech Stack

  • Backend: Laravel 12 (PHP 8.2+)
  • Database: MongoDB
  • Frontend: Livewire, Tailwind CSS, Vite
  • Admin Panel: Filament 3
  • Authentication: WorkOS
  • Payments: Stripe
  • API Documentation: Scramble
  • Testing: Pest
  • Development Tools: Laravel Sail, Laravel Pint

Installation

Prerequisites

  • PHP 8.2 or higher
  • Composer
  • Node.js and npm
  • MongoDB
  • Stripe account (for payments)
  • WorkOS account (for authentication)

Setup Steps

  1. Clone the repository:

    git clone https://github.com/innocentmisheck/e-tickets-app.git
    cd e-tickets-app
  2. Set up each application:

    For each of the admin, api, and ui directories:

    cd admin  # or api, or ui
    composer install
    npm install
    cp .env.example .env
  3. Configure environment variables:

    Update the .env files in each directory with appropriate values:

    • Database connection (MongoDB for API, SQLite/MySQL for others)
    • Stripe API keys
    • WorkOS configuration
    • Application URLs and ports
  4. Generate application keys:

    php artisan key:generate
  5. Run database migrations (for each app):

    php artisan migrate
  6. Build assets (for each app):

    npm run build

Usage

Development

To run the applications in development mode:

  1. Start the API server:

    cd api
    php artisan serve --host=127.0.0.1 --port=8001
  2. Start the Admin panel:

    cd admin
    php artisan serve --host=127.0.0.1 --port=8002
  3. Start the UI application:

    cd ui
    php artisan serve --host=127.0.0.1 --port=8003
  4. Build assets for development (in separate terminals):

    cd admin && npm run dev
    cd api && npm run dev
    cd ui && npm run dev

Admin Panel Access

Access the admin panel at http://127.0.0.1:8002 to manage events, users, transactions, and system settings.

API Endpoints

The API provides endpoints for:

  • Event management (/api/events)
  • Ticket operations (/api/tickets)
  • Payment processing (/api/payments)
  • User management (/api/users)

API documentation is available via Scramble at the API root URL.

Project Structure

e-tickets-app/
├── admin/          # Admin panel application (Filament)
│   ├── app/
│   │   ├── Filament/Resources/  # Admin resources
│   │   └── Models/             # Eloquent models
│   ├── database/migrations/    # Database migrations
│   └── routes/                 # Web routes
├── api/            # API backend application
│   ├── app/
│   │   ├── Http/Controllers/Api/  # API controllers
│   │   └── Models/               # Models with MongoDB
│   ├── config/                  # Configuration files
│   └── routes/                  # API routes
└── ui/             # User interface application
    ├── app/
    │   ├── Livewire/            # Livewire components
    │   └── Models/              # Models
    ├── resources/views/         # Blade templates
    └── routes/                  # Web routes

Configuration

Environment Variables

Key configuration options across applications:

  • DB_CONNECTION: Database driver (mongodb for API, sqlite/mysql for others)
  • MONGODB_URI: MongoDB connection string
  • STRIPE_KEY: Stripe public key
  • STRIPE_SECRET: Stripe secret key
  • WORKOS_API_KEY: WorkOS API key
  • WORKOS_CLIENT_ID: WorkOS client ID

Database Configuration

The API uses MongoDB for flexible document storage, while admin and UI applications can use traditional relational databases.

API Documentation

The API provides RESTful endpoints for event management, ticketing, and payments. Detailed API documentation is generated using Scramble and available at the API application's root URL when running in development mode.

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Testing

Run tests for each application:

cd admin  # or api, or ui
./vendor/bin/pest

Deployment

Production Considerations

  • Configure production database connections
  • Set up proper environment variables
  • Use Laravel's built-in caching and queue systems
  • Configure web server (Nginx/Apache) for each application
  • Set up SSL certificates
  • Configure MongoDB for production use

Docker Deployment (Assumption)

While no Docker configuration is present, deployment could be containerized using Docker Compose with separate containers for each application, MongoDB, and Redis.

License

This project is licensed under the MIT License - see the composer.json files for details.

Author / Maintainers

  • innocentmisheck - Repository owner and maintainer

About

We integrated OpenFlow into a production-ready e-ticketing system built with Laravel. OpenFlow enables sub-cent USDC payments per API request, with instant settlement.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages