Skip to content

NeilLouisThompson/Gignite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gignite 🎸

A platform connecting Musicians, Bands, Venues, and Music Fans. Musicians showcase their talent, bands find members, venues book acts and sell tickets, and fans discover live music near them.

Quick Start

Prerequisites

1. Start the Database

cd docker
docker-compose up -d

This starts PostgreSQL 16 on port 5432 with:

  • Database: gignite
  • User: gignite_user
  • Password: GigniteDevP@ss2026!

2. Run Database Migrations

cd src/Gignite.Server
dotnet ef database update --project ../Gignite.Infrastructure

3. Run the Application

# From repo root
dotnet run --project src/Gignite.Server

The API will be available at https://localhost:5000 (or the port configured in launchSettings).

For the Blazor client:

dotnet run --project src/Gignite.Client

4. Run Tests

dotnet test Gignite.slnx

Solution Structure

Gignite/
├── src/
│   ├── Gignite.Server/           # ASP.NET Core API + Host
│   ├── Gignite.Client/           # Blazor WebAssembly Client (MudBlazor)
│   ├── Gignite.Shared/           # Shared DTOs, Enums, Contracts
│   ├── Gignite.Domain/           # Domain Entities
│   ├── Gignite.Application/      # Business Logic & Service Interfaces
│   └── Gignite.Infrastructure/   # EF Core, Repositories, External Services
├── tests/
│   ├── Gignite.Server.Tests/     # API controller tests (xUnit)
│   ├── Gignite.Client.Tests/     # Blazor component tests (bUnit)
│   ├── Gignite.Application.Tests/# Service tests (xUnit)
│   ├── Gignite.Infrastructure.Tests/ # Repository/DB tests (xUnit)
│   └── Gignite.E2E.Tests/        # Playwright end-to-end tests
├── docker/
│   ├── docker-compose.yml        # PostgreSQL container
│   └── Dockerfile                # Server container
└── memorybank/                   # Project docs & task tracking

Tech Stack

Layer Technology
Frontend Blazor WebAssembly (.NET 10)
UI Framework MudBlazor 9.x (Material Design)
Backend API ASP.NET Core 10
ORM Entity Framework Core 10
Database PostgreSQL 16
Authentication ASP.NET Core Identity + Google OAuth + JWT
Payment PayFast (mocked)
Notifications Email (mocked)
Testing xUnit + bUnit + Playwright
Containerization Docker / Docker Compose

User Types

Type Fee Description
Musician R50/mo or R540/yr Profile, bands, gigs, connections
Venue R100/mo or R1080/yr Events, ticket sales, talent booking
Normal User Free Discover shows, buy tickets
Super Admin N/A Full platform management

Documentation

Development Workflow

This project uses the D5 Agentic Workflow:

  1. Define — Goal, constraints, definition of done
  2. Discover — Investigate codebase, research best practices
  3. Deliver — Minimal implementation (requires approval)
  4. Demonstrate — Tests pass, human verification
  5. Document — Update docs, close task

Use StartTask GIG-XXXX to begin a task and ReviewTasks to check progress.

Configuration

Google OAuth Setup

  1. Create a project in Google Cloud Console
  2. Enable Google+ API
  3. Create OAuth 2.0 credentials
  4. Update src/Gignite.Server/appsettings.json with your Client ID and Secret

PayFast (Future)

Payment integration is currently mocked. To enable PayFast:

  1. Create a PayFast sandbox account
  2. Update the PayFast section in appsettings.json
  3. Swap MockPaymentService for the real PayFast implementation

License

Private — All rights reserved.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors