Skip to content

Athletix is a Flutter, Firebase and Gemini API-based platform for athlete management in India, offering performance tracking, injury management, AI recovery, and real-time messaging. Future upgrades include dashboards, finance, and AI career planning.

License

Notifications You must be signed in to change notification settings

VJLIVE/Athletix

Athletix Banner

Don't forget to star our repository

πŸ‹οΈ Athletix

Athletix is a Flutter-based mobile application designed to streamline collaboration between athletes, coaches, doctors, and sports organizations. It offers a centralized platform to manage tournaments, track performance and injuries, maintain schedules, and facilitate communication while respecting user roles.


πŸš€ Features

πŸ” Authentication & Role-based Access

  • Firebase Authentication: Secure login for all users.
  • Role-based Access (RBA):
    • Four user roles: Athletes, Doctors, Coaches, and Organizations
    • Each role has a distinct dashboard with specific permissions.
    • Role checked via Firestore role field, redirecting users post-login.
  • Signup & Login:
    • Separate signup and login flows for Athletes, Doctors, and Coaches.
    • Login-only access for Organizations.

πŸ“‹ Profiles

  • Athletes: Includes personal details and their sport.
  • Doctors: Includes personal details and specialization.
  • Coaches: Includes their sport.
  • Organizations: Associated with a specific sport.

πŸ—“οΈ Timetable & Notifications

  • Users can create and save activity timetables in Firestore.
  • Push notifications sent via Firebase Cloud Messaging (FCM) at the start of each activity.

πŸ“ˆ Injury & Performance Logs

  • Athletes can log:
    • Injury logs: Details for doctors and monitoring.
    • Performance logs: Track progress over time.
  • Logs are securely stored in Firestore and accessible to doctors and coaches.

πŸ—ΊοΈ Tournaments with Google Maps

  • Organizations can create tournaments with:
    • Name, level (District, State, National, International), date, time, and location using Google Maps SDK.
    • Data stored in Firestore under the tournaments collection.
  • Athletes can:
    • View upcoming tournaments filtered by their sport.
    • See tournaments as markers on an interactive map.
    • Tap markers to view tournament details (level, date, time, address) in a modal.

πŸ› οΈ Setup Guide

βœ… Prerequisites


πŸ“₯ Clone Your Fork

git clone https://github.com/<your-username>/Athletix.git
cd Athletix

πŸ“¦ Install Dependencies

flutter pub get

▢️ Run the App

flutter run

πŸ“± Tip: It's recommended to use a physical Android device for better performance during development.


🧱 Tech Stack

Technology Description
πŸ“± Flutter Cross-platform UI toolkit
πŸ”₯ Firebase Auth | Firestore | FCM (notifications)
πŸ—ΊοΈ Google Maps SDK Interactive maps for tournaments
πŸ“¦ Flutter Local Notifications For scheduling reminders

πŸ—‚οΈ Project Structure

Athletix/
β”œβ”€β”€ android/
β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ applogo.png
β”‚   └── Running_Boy.json
β”œβ”€β”€ functions/
β”œβ”€β”€ ios/
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ bottom_nav_bar.dart
β”‚   β”‚   └── fcm_listener.dart
β”‚   β”œβ”€β”€ screens/
β”‚   β”‚   β”œβ”€β”€ athlete/
β”‚   β”‚   β”‚   β”œβ”€β”€ athlete_dashboard.dart
β”‚   β”‚   β”‚   β”œβ”€β”€ calendar_screen.dart
β”‚   β”‚   β”‚   β”œβ”€β”€ injury_tracker_screen.dart
β”‚   β”‚   β”‚   β”œβ”€β”€ performance_logs_screen.dart
β”‚   β”‚   β”‚   └── tournaments_screen.dart
β”‚   β”‚   β”œβ”€β”€ coach/
β”‚   β”‚   β”‚   └── coach_dashboard.dart
β”‚   β”‚   β”œβ”€β”€ doctor/
β”‚   β”‚   β”‚   └── doctor_dashboard.dart
β”‚   β”‚   β”œβ”€β”€ organization/
β”‚   β”‚   β”‚   β”œβ”€β”€ add_tournament_screen.dart
β”‚   β”‚   β”‚   β”œβ”€β”€ manage_players_screen.dart
β”‚   β”‚   β”‚   └── organization_dashboard.dart
β”‚   β”‚   β”œβ”€β”€ auth_screen.dart
β”‚   β”‚   β”œβ”€β”€ profile_screen.dart
β”‚   β”‚   └── splash_screen.dart
β”‚   └── main.dart
β”œβ”€β”€ linux/
β”œβ”€β”€ macos/
β”œβ”€β”€ test/
β”œβ”€β”€ web/
β”œβ”€β”€ windows/
β”œβ”€β”€ .firebaserc
β”œβ”€β”€ .gitignore
β”œβ”€β”€ .metadata
β”œβ”€β”€ analysis_options.yaml
β”œβ”€β”€ CODE_OF_CONDUCT.md
β”œβ”€β”€ DEVELOPMENT.md
β”œβ”€β”€ CONTRIBUTING.md
β”œβ”€β”€ firebase.json
β”œβ”€β”€ LICENSE
β”œβ”€β”€ pubspec.lock
β”œβ”€β”€ pubspec.yaml
└── README.md

🧩 Troubleshooting

1. πŸ”₯ Firebase Configuration Missing

Issue: App throws Firebase initialization error. Solution: -Download your google-services.json file from Firebase Console. -Place it in android/app/ directory.

2. πŸ“¦ Plugin Issues

Issue: Plugin not found or version mismatch. Solution: -Run flutter pub get to reinstall dependencies. -Check for version conflicts in pubspec.yaml.

3. πŸ—ΊοΈ Google Maps Not Showing

Issue: Map doesn't load or crashes. Solution: -Ensure you've added your Google Maps API key in the android/app/src/main/AndroidManifest.xml. -Enable Maps SDK in your Google Cloud console.

4. 🚫 Emulator Permission Issues

Issue: Notifications or Maps don't work on emulator. Solution: -Use a real device when possible. -Emulators may lack Play Services or required permissions.

πŸ§ͺ How to Run Tests

To run the Flutter tests:

flutter test

This will execute all unit and widget tests in the test/ directory.


🀝 How to Contribute

We welcome contributions! Please see CONTRIBUTING.md for guidelines on how to get started, report issues, or submit pull requests.


πŸ“« Contact / Support

For questions, suggestions, or support, please open an issue on GitHub or contact the maintainers via the repository.

πŸ“œ License

This project is licensed under the MIT License

⬆️ Back to Top

About

Athletix is a Flutter, Firebase and Gemini API-based platform for athlete management in India, offering performance tracking, injury management, AI recovery, and real-time messaging. Future upgrades include dashboards, finance, and AI career planning.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 18