Initial commit: Flutter app + PHP/MySQL backend on Hostinger
Replaces Firebase with a self-hosted PHP/MySQL API served from winded.prymsolutions.com. Includes full backend (schema, auth, events, teams, brackets, suggestions, stats, media, file upload) and updated Flutter repositories and domain models. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
can you help me write an application structure, feature set and architecture document that I can hand to a developer (or AI coding platform) where it will include all aspects of the application where they can get to coding the app? Ask me for clarification if there is something that is not clear and also ask me if you think there is something i am missing or a gap in my thinking.
|
||||
|
||||
I am on a team of soccer players and enthusiests. We love to get together and have 'pick-up games' at the local parks. Our idea is to form an official league/community fo ffellow soccer players where they can sign-up for tournaments and manage the games and players. I want this to be writen in Dart with flutter. I want this to be mobile first but work cross platform with ios android and a web browser.I want to host this on a commercial hosting platform such as HOSTINGER. take security, optimisation (both for speed and site rankings ie.seo) and a modern UX design into consideration.
|
||||
|
||||
here is the what i am thinking for an app. I would like for the app to be able to promote media platforms, promote events, Allow registration for tournaments, Be able to form brackets and view those brackets (Only Admin can change/edit brackets). I also want it to have a suggestion "box". I also want to be able to have player stats on the app so player can know how other players did. I also want to be able to have a teams page so that people can look at the teams and be able to look at the players on the teams. It would also be nice to be able to put possible advertisments on the app later down the line.
|
||||
|
||||
Here are some of the pages we want, but feel free to make suggestions on how modern websites function:
|
||||
|
||||
1.Registration Tab
|
||||
There should be an option to register
|
||||
Registration is only meant to indicate expected people going, however should not restrict extras
|
||||
Numerator is people who voted to go
|
||||
Denominator is our preferred number of people going
|
||||
A tab should exist to explain the function of this tab and reasoning behind denominator
|
||||
|
||||
|
||||
2.Events polling
|
||||
Community polls should be available
|
||||
A person may only vote once
|
||||
Options should be provided
|
||||
Users should be able to request an activity, and we should be able to approve of that activity being added to the poll, edit and add, or ignore
|
||||
Users should be limited in possible requests
|
||||
Blocking user requests should be possible
|
||||
|
||||
3.Public and Private
|
||||
We should have the ability to host events and use its features exclusively for us. This could be done by having a password necessary to join a certain “club” and then only giving access to said club
|
||||
Private club modes
|
||||
This could be used to allow others to create their own clubs as well
|
||||
|
||||
4. Make a default home tab so that there is a place where you can access the tabs from the home page. Kind of like when you start the canvas app and you have different widgets for the different classes.
|
||||
|
||||
I put all of the files you need into the directory that you can access, double and triple check the files to get a good Idea on what your task is.
|
||||
|
||||
Use the suggested backend stuff and we will try to run it from there for now.
|
||||
|
||||
5.The brackets admin tab should have a option to randomly assign teams that signed up for that specific event to the bracket. I would also like to create a form for a person to create a team and assign him/ her a managment role for
|
||||
that teamm where that can enter playernames, numbers, team name, upload a logo, and contact info ie mandatory email and optional phone number. also create a profile page for a team where visitors to the site can view team profiles
|
||||
and stats. I also want the events tab to havve a category of events so that I can make an event for tournaments or an event for a regular pick up scrimmage.
|
||||
|
||||
6.Questions: how will teams track goals and stats? wil they track their own? Are you going to give everyone on the team a login so they can access the teams page and they can make a profile?
|
||||
|
||||
7.Roles: Player: will be able to create a profile for themselves so they can write their own bio, upload a profile pic, and possibly register for teams/events.
|
||||
Manager: a manager will be able to create a team using the form that was created the form should be sent to an admin so they can accept or deny the team. They can decline or accept a player into their team if said player requests to join. they can also create the team bio, logo, and stats.'
|
||||
Viewer: a viewer will have no editing permissions. They are able to look at team profiles and player profiles.
|
||||
Admin: Admins are able to edit anything anywhere, anytime. The admins are also able to acccept a team. The admin is able to kick people and teams out of tournaments if needed. They can also see who is registered into any event.
|
||||
|
||||
8.Assigning teams to tournaments: once registered, calculate odds that a team would win agains another team but only thhe admin can see the odds.
|
||||
Pickup: I would also like to have the option so that if someone would like to individualy register for a pickup event, they can.
|
||||
@@ -0,0 +1,302 @@
|
||||
Perfect — based on your listed core features, here’s a structured Flutter development roadmap tailored to your application.
|
||||
|
||||
This looks like a sports/tournament management app (brackets + teams + stats + events), so I’ll structure it like a scalable production app.
|
||||
|
||||
🏆 Flutter Roadmap – Tournament / Sports Event App
|
||||
🧠 Phase 1: Planning & Architecture
|
||||
1️⃣ Define User Roles
|
||||
|
||||
You likely have:
|
||||
|
||||
Guest users (view events, brackets, stats)
|
||||
|
||||
Registered users (register for events, submit suggestions)
|
||||
|
||||
Admins (create events, manage brackets, teams, ads)
|
||||
|
||||
2️⃣ Choose Tech Stack
|
||||
📱 Frontend
|
||||
|
||||
Flutter (iOS + Android)
|
||||
|
||||
State management: Riverpod or BLoC (recommended for scalability)
|
||||
|
||||
🔥 Backend (Recommended)
|
||||
|
||||
Firebase
|
||||
|
||||
Authentication
|
||||
|
||||
Firestore (database)
|
||||
|
||||
Storage (media)
|
||||
|
||||
Cloud Functions (bracket logic)
|
||||
|
||||
Analytics
|
||||
|
||||
Alternative: Custom REST API (Node.js, Django, etc.)
|
||||
|
||||
🏗 Phase 2: App Architecture Setup
|
||||
Suggested Folder Structure
|
||||
lib/
|
||||
├── core/
|
||||
├── features/
|
||||
│ ├── auth/
|
||||
│ ├── events/
|
||||
│ ├── brackets/
|
||||
│ ├── teams/
|
||||
│ ├── stats/
|
||||
│ ├── media/
|
||||
│ ├── suggestions/
|
||||
│ └── ads/
|
||||
├── shared/
|
||||
└── main.dart
|
||||
🚀 Phase 3: Feature-by-Feature Development Plan
|
||||
🟢 1. Authentication & Registration
|
||||
Features:
|
||||
|
||||
Email/password login
|
||||
|
||||
Social login (Google/Apple optional)
|
||||
|
||||
Event registration form
|
||||
|
||||
Backend:
|
||||
|
||||
Firebase Auth
|
||||
|
||||
Firestore user collection
|
||||
|
||||
🟡 2. Promote Media Platforms
|
||||
Features:
|
||||
|
||||
Social media links page
|
||||
|
||||
Embedded posts (optional)
|
||||
|
||||
Highlight videos
|
||||
|
||||
Integrations:
|
||||
|
||||
Instagram/Twitter links
|
||||
|
||||
YouTube embed support
|
||||
|
||||
Example:
|
||||
|
||||
Embed content from Instagram
|
||||
|
||||
Link to YouTube
|
||||
|
||||
🔵 3. Promote Events
|
||||
Features:
|
||||
|
||||
Events list page
|
||||
|
||||
Event detail page
|
||||
|
||||
Countdown timer
|
||||
|
||||
Location map
|
||||
|
||||
Register button
|
||||
|
||||
Data Model:
|
||||
Event:
|
||||
- title
|
||||
- description
|
||||
- date
|
||||
- location
|
||||
- registration_deadline
|
||||
- teams_registered
|
||||
🟣 4. Bracket Building & Viewing (Core Feature)
|
||||
This is the most complex part.
|
||||
Features:
|
||||
|
||||
Auto-generate bracket
|
||||
|
||||
Manual admin editing
|
||||
|
||||
Live score updates
|
||||
|
||||
View by round
|
||||
|
||||
Share bracket
|
||||
|
||||
Implementation Plan:
|
||||
|
||||
Create bracket data model
|
||||
|
||||
Generate rounds dynamically
|
||||
|
||||
Create custom bracket UI widget
|
||||
|
||||
Real-time updates via Firestore
|
||||
|
||||
You may:
|
||||
|
||||
Store bracket as tree structure
|
||||
|
||||
Or store matches by round
|
||||
|
||||
🟠 5. Teams Page
|
||||
Features:
|
||||
|
||||
List of teams
|
||||
|
||||
Team profile page
|
||||
|
||||
Team stats
|
||||
|
||||
Roster
|
||||
|
||||
Data Model:
|
||||
Team:
|
||||
- name
|
||||
- logo
|
||||
- wins
|
||||
- losses
|
||||
- players
|
||||
🔴 6. Stats Viewing
|
||||
Features:
|
||||
|
||||
Leaderboards
|
||||
|
||||
Player stats
|
||||
|
||||
Team rankings
|
||||
|
||||
Filters by event
|
||||
|
||||
Optional:
|
||||
|
||||
Charts (using fl_chart package)
|
||||
|
||||
🟤 7. Suggestion Box
|
||||
Features:
|
||||
|
||||
Text submission form
|
||||
|
||||
Anonymous option
|
||||
|
||||
Admin dashboard for review
|
||||
|
||||
Backend:
|
||||
|
||||
Firestore collection: suggestions
|
||||
|
||||
Optional email notifications
|
||||
|
||||
💰 8. Possible Advertisements
|
||||
Integration:
|
||||
|
||||
Google AdMob
|
||||
|
||||
Banner ads
|
||||
|
||||
Interstitial ads
|
||||
|
||||
Important:
|
||||
|
||||
Add only after core UX is polished
|
||||
|
||||
Avoid cluttering bracket screen
|
||||
|
||||
🧪 Phase 4: Testing
|
||||
|
||||
Unit testing (logic)
|
||||
|
||||
Widget testing (UI)
|
||||
|
||||
Integration testing
|
||||
|
||||
Test on:
|
||||
|
||||
iPhone
|
||||
|
||||
Android devices
|
||||
|
||||
🛡 Phase 5: Admin Panel
|
||||
|
||||
Options:
|
||||
|
||||
Build admin inside Flutter app
|
||||
|
||||
Create separate web dashboard
|
||||
|
||||
Use Firebase Console (early stage)
|
||||
|
||||
Admin abilities:
|
||||
|
||||
Create events
|
||||
|
||||
Edit brackets
|
||||
|
||||
Approve teams
|
||||
|
||||
Post ads
|
||||
|
||||
📊 Suggested Development Timeline (12 Weeks Example)
|
||||
Weeks Focus
|
||||
1–2 Setup + Authentication
|
||||
3–4 Events + Registration
|
||||
5–6 Teams Page
|
||||
7–8 Bracket System
|
||||
9 Stats
|
||||
10 Suggestion Box
|
||||
11 Ads Integration
|
||||
12 Testing & Polish
|
||||
🧩 Advanced Enhancements (Future)
|
||||
|
||||
Push notifications
|
||||
|
||||
Live game updates
|
||||
|
||||
In-app chat
|
||||
|
||||
Player profiles
|
||||
|
||||
Dark mode
|
||||
|
||||
Web version
|
||||
|
||||
🎯 MVP (Minimum Viable Product)
|
||||
|
||||
If you want to launch fast:
|
||||
|
||||
Build only:
|
||||
|
||||
Auth
|
||||
|
||||
Events
|
||||
|
||||
Registration
|
||||
|
||||
Bracket viewing
|
||||
|
||||
Teams page
|
||||
|
||||
Add:
|
||||
|
||||
Stats + Ads later
|
||||
|
||||
📌 Final Advice
|
||||
|
||||
Your biggest technical challenge will be:
|
||||
|
||||
🏆 Bracket generation and dynamic UI rendering
|
||||
|
||||
I recommend designing that data structure first before building UI.
|
||||
|
||||
If you want, I can next:
|
||||
|
||||
Design your Firestore database schema
|
||||
|
||||
Create a Flutter architecture diagram
|
||||
|
||||
Write starter Flutter code structure
|
||||
|
||||
Or break this into a semester project plan
|
||||
|
||||
Just tell me what level you're building this for (class project? startup? production app?). 🚀
|
||||
Reference in New Issue
Block a user