Skip to content

temrjan/savage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Savage Courts — Sports Courts Booking Platform

Full-stack booking platform for sports courts with Telegram authentication, dynamic pricing, and payment integration.

Stack

  • Backend: Python 3.11 + FastAPI + SQLAlchemy async + Alembic + asyncpg
  • Frontend: React + Vite (Telegram WebApp)
  • Admin Panel: React + Vite
  • Database: PostgreSQL
  • Auth: Telegram WebApp authentication
  • Payments: Multicard integration
  • Deploy: Docker

Project Structure

backend/
  src/
    models/       # SQLAlchemy models (users, courts, bookings, pricing_rules, amenities)
    schemas/      # Pydantic schemas (auth, courts, bookings, admin)
    routes/       # API endpoints (auth, courts, bookings, payments, admin)
    services/     # Business logic (pricing, Telegram auth, Multicard payments)
    middleware/    # Auth & rate limiting
    migrations/   # Alembic migrations
  tests/          # 17 test files (models, routes, services, integration)
frontend/         # React SPA (Telegram Mini App)
admin-panel/      # Admin dashboard

Key Features

  • Court Management — courts with images, amenities, availability schedules
  • Dynamic Pricing — configurable pricing rules (peak/off-peak, weekday/weekend)
  • Booking Flow — real-time availability, conflict detection, multi-user support
  • Telegram Auth — WebApp authentication (initData HMAC-SHA256)
  • Payments — Multicard payment integration
  • Admin Panel — court management, booking overview, user management
  • Tests — integration tests covering full booking flow, multi-user conflicts, cross-user access prevention

Setup

cp backend/.env.example backend/.env
cd backend && pip install -r requirements.txt
alembic upgrade head
uvicorn src.main:app --reload

About

Savage Courts Booking — Backend (FastAPI) + Frontend (React/Vite) + Admin Panel

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors