A full tournament-management platform for Dream League Soccer communities.
Features Β· Architecture Β· Setup Β· Security Β· Roadmap
Pitch Kings turns an informal DLS league into a structured digital competition. Administrators can manage tournaments, teams, players and fixtures while participants can follow match activity, standings, notifications and social interactions from the same platform.
The project is intentionally designed as a real-world product, not just a static tournament page.
- Tournament creation and administration
- Team and player management
- Fixture scheduling and result recording
- League standings and match-day workflows
- Rules and competition information
- Account registration and authentication
- Player profiles
- Friend requests and player discovery
- Match and fixture views
- Notifications
- Direct social interactions
- Dedicated admin dashboard
- Tournament management
- Fixture administration
- Notification management
- Member/player workflows
PITCH KINGS
β
βββββββββββββββββ΄ββββββββββββββββ
β β
Player Experience Admin Experience
β β
βββββββββββββββββ¬ββββββββββββββββ
β
Firebase Auth
β
βββββββββββββββββΌββββββββββββββββ
β β β
Firestore Storage Functions
β β β
users / teams profile/media trusted workflows
fixtures / results
- Frontend: HTML5, CSS3, modern JavaScript
- Authentication: Firebase Authentication
- Database: Cloud Firestore
- Storage: Firebase Storage
- Server-side workflows: Firebase Cloud Functions
- Hosting: Firebase Hosting compatible
Pitch Kings treats tournament and user data as untrusted input. Production deployments should:
- Enforce authorization with Firestore and Storage Security Rules.
- Keep privileged operations on trusted server-side code.
- Never commit service-account credentials or private keys.
- Validate user-controlled text before rendering it into the UI.
- Restrict administrative workflows to authorized accounts.
- Review rules whenever the data model or permissions change.
Important: Firebase client configuration values are not a substitute for security rules. Authorization must be enforced by the backend/security layer.
git clone https://github.com/vince551/Pitch-kings.git
cd Pitch-kingsCreate a Firebase project and enable the services required by the application:
- Authentication
- Cloud Firestore
- Storage
- Cloud Functions, where applicable
Configure the client values used by the project in js/firebase-config.js.
Because the application uses browser modules and Firebase, serve it over HTTP rather than opening HTML files directly.
npx serve .Then open the local URL shown by the server.
Use the Firebase CLI after configuring the project and reviewing the security rules:
firebase login
firebase use <your-project-id>
firebase deploy.
βββ admin/ # Administrative tournament workflows
βββ user/ # Player-facing pages
βββ js/ # Shared application logic
βββ css/ # Shared styling
βββ firestore.rules # Firestore authorization rules
βββ firebase.json # Firebase Hosting configuration
βββ index.html # Public entry point
βββ register.html # Registration flow
βββ package.json # Local tooling/dependencies
- Automatic round-robin fixture generation
- Stronger fixture conflict validation
- Match verification workflow
- Live score updates
- Admin analytics dashboard
- Player statistics and top-scorer tables
- Shareable public tournament pages
- Improved mobile navigation
- Automated tests for critical tournament logic
Contributions are welcome. For feature work, bug fixes or UI improvements:
- Fork the repository.
- Create a focused branch.
- Make the smallest coherent change.
- Test the affected workflow.
- Open a pull request with a clear description.
Please never include Firebase secrets, service-account keys or private user data in commits.
Vince Odhiambo β full-stack developer and technology builder.
MIT License. See LICENSE.
Manage the league. Own the fixture. Rule the pitch.