A comprehensive turf booking and management ecosystem built with Flutter and Node.js, designed to streamline the process of booking sports turfs while providing powerful administrative tools for owners and super admins.
KickIt is a full-stack turf booking platform that solves the challenge of managing sports facility bookings efficiently. The system consists of three main components:
- Player App - For customers to browse, book, and manage their turf reservations
- Admin App - For turf owners and super admins to manage facilities, bookings, and view analytics
- Backend Server - RESTful API built with Express.js and Prisma ORM
- ๐ User Authentication - Secure login and registration
- ๐๏ธ Turf Browsing - View available turfs with detailed information
- ๐ Booking Management - Create, view, and manage bookings
- ๐ฎ Game Joining - Find and join games at various turfs
- ๐ค Profile Management - Update user profile and preferences
- ๐ Booking History - Track past and upcoming bookings
- ๐ข Multi-Role Support - Separate dashboards for Turf Owners and Super Admins
- ๐ Analytics Dashboard - View comprehensive stats and insights
- ๐๏ธ Turf Management - Add, edit, and manage turf details
- ๐ Booking Overview - Monitor all bookings across turfs
- ๐ฅ Game Management - Oversee game sessions and participants
- ๐ Secure Access Control - Role-based permissions
- ๐ RESTful API - Clean and documented endpoints
- ๐ JWT Authentication - Secure token-based auth
- ๐พ PostgreSQL Database - Reliable data storage with Prisma ORM
- ๐ก๏ธ Security - Helmet.js for security headers, bcrypt for password hashing
- ๐ Request Logging - Morgan for HTTP request logging
- โ Input Validation - Zod schema validation
This is a monorepo project structured with the following architecture:
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ Player App โ โ Admin App โ
โ (Flutter) โ โ (Flutter) โ
โโโโโโโโโโฌโโโโโโโโโ โโโโโโโโโโฌโโโโโโโโโ
โ โ
โโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
โ
โ
โโโโโโโโโโโโโโโโโโโโ
โ Shared Core โ
โ Package โ
โโโโโโโโโโโฌโโโโโโโโโ
โ
โ
โโโโโโโโโโโโโโโโโโโโ
โ Backend Server โ
โ (Express + TS) โ
โโโโโโโโโโโฌโโโโโโโโโ
โ
โ
โโโโโโโโโโโโโโโโโโโโ
โ PostgreSQL โ
โ Database โ
โโโโโโโโโโโโโโโโโโโโ
- Framework: Flutter 3.8.1+
- State Management: Riverpod 2.6.1
- Routing: GoRouter 17.0.0
- UI/UX:
- Google Fonts 6.3.2
- Flutter Animate 4.5.2
- Material Design 3
- Architecture: Clean Architecture with Repository Pattern
- Runtime: Node.js with TypeScript
- Framework: Express.js 4.18.2
- ORM: Prisma 5.10.0
- Database: PostgreSQL
- Authentication: JWT (jsonwebtoken 9.0.2)
- Security:
- Helmet.js 7.1.0
- bcryptjs 2.4.3
- CORS 2.8.5
- Validation: Zod 3.22.4
- Logging: Morgan 1.10.0
- Hot Reload: Nodemon (Backend)
- Type Safety: TypeScript 5.3.3
- Linting: Flutter Lints 5.0.0
kickit/
โโโ Turf/
โ โโโ apps/
โ โ โโโ admin/ # Admin Flutter application
โ โ โ โโโ lib/
โ โ โ โ โโโ screens/ # UI screens
โ โ โ โ โโโ widgets/ # Reusable widgets
โ โ โ โ โโโ main.dart
โ โ โ โโโ pubspec.yaml
โ โ โ
โ โ โโโ player/ # Player Flutter application
โ โ โโโ lib/
โ โ โ โโโ screens/
โ โ โ โโโ widgets/
โ โ โ โโโ main.dart
โ โ โโโ pubspec.yaml
โ โ
โ โโโ packages/
โ โ โโโ core/ # Shared core package
โ โ โโโ lib/
โ โ โ โโโ src/
โ โ โ โโโ network/ # API client
โ โ โ โโโ features/
โ โ โ โโโ auth/ # Authentication
โ โ โ โโโ turf/ # Turf management
โ โ โ โโโ booking/ # Booking system
โ โ โ โโโ game/ # Game sessions
โ โ โ โโโ stats/ # Analytics
โ โ โโโ pubspec.yaml
โ โ
โ โโโ server/ # Backend server
โ โโโ src/
โ โ โโโ controllers/ # Business logic
โ โ โโโ routes/ # API endpoints
โ โ โโโ middleware/ # Auth & validation
โ โ โโโ utils/ # Helper functions
โ โ โโโ index.ts # Entry point
โ โโโ prisma/
โ โ โโโ schema.prisma # Database schema
โ โโโ package.json
โ โโโ tsconfig.json
โ
โโโ README.md