<- Back to projects

Mora Hockey 🏒

A Flutter mobile application for managing hockey team attendance, tracking player statistics, and role-based access control for team management.

Flutter Dart Firebase Firestore Provider FCM
Mora Hockey Screenshot 1
Mora Hockey Screenshot 2
Mora Hockey Screenshot 3
Mora Hockey Screenshot 4
Mora Hockey Screenshot 5
Mora Hockey Screenshot 6
Mora Hockey Screenshot 7
Mora Hockey Screenshot 8
Mora Hockey Screenshot 9

#Features

  • 👥 Player Management - Add, edit, and delete players with positions
  • 📅 Daily Attendance - Mark attendance with present/absent status and reasons
  • 📋 View Attendance - Browse attendance records by date with detailed summaries
  • 📊 Player Statistics - View monthly attendance rates with visual progress bars
  • ⚠️ Low Attendance Alerts - Identify players below attendance threshold
  • 🔐 Role-Based Access Control - Admin, Captain, and Vice Captain can edit; others view only
  • 🔒 Secure Authentication - Email/password login via Firebase Auth

#User Roles

  • Admin - Full access (manage everything)
  • Captain - Add/Edit/Delete players & attendance
  • Vice Captain - Add/Edit/Delete players & attendance
  • Viewer - Read-only access (no login required)

#Planned Features (Roadmap)

🏟️ Matches Module

  • Track match history
  • Record results & scores
  • Link goal scorers

📊 Availability Poll

  • Mark match availability
  • Team-wide summary
  • Per-player responses

👤 Player Profile

  • Profile photo upload
  • Attendance percentage
  • Matches & goals stats

💬 Team Chat

  • Real-time group chat
  • Team-only communication
  • Message timestamps

📢 Announcements

  • One-way notice board
  • Priority levels
  • Leadership posts only

📄 PDF Export

  • Monthly reports
  • Shareable with coaches
  • Editor-only feature

#Tech Stack

  • Frontend: Flutter 3.x / Dart
  • Backend: Firebase (Firestore Database)
  • Authentication: Firebase Auth
  • Notifications: Firebase Cloud Messaging + Local Notifications
  • State Management: Provider

#Database Structure

Firestore Database
├── users/
│   └── {uid}
│       ├── name: string
│       ├── email: string
│       └── role: "admin" | "captain" | "vice_captain" | "viewer"
│
├── players/
│   └── {playerId}
│       ├── name: string
│       ├── position: string
│       └── joinedDate: timestamp
│
└── attendance/
    └── {YYYY-MM-DD}
        ├── date: timestamp
        ├── presentPlayerIds: array
        ├── absentReasons: map
        └── summary: string

#Security

  • Firestore Rules: Only authenticated users with admin/captain/vice_captain role can write
  • UI Protection: Edit buttons hidden for viewers
  • Data Protection: Even if UI is bypassed, Firebase blocks unauthorized writes