# HKFC Men's D Team - MOTM (Man of the Match) System This is a standalone Flask application for managing Man of the Match and Dick of the Day voting for the HKFC Men's D Team hockey club. ## Features ### Public Section - **Voting Interface**: Players can vote for MOTM and DotD via secure random URLs - **Match Comments**: View and add comments from matches - **Current Holders**: Display current MOTM and DotD holders ### Admin Section - **Match Management**: Set up upcoming matches, opposition teams, and fixtures - **Squad Management**: Add/remove players from match squads - **Statistics**: Record goals and assists for players - **Voting Results**: View real-time voting charts and results - **Player of the Year**: Track season-long MOTM/DotD statistics ## Installation 1. Install dependencies: ```bash pip install -r requirements.txt ``` 2. Configure database settings in `db_config.py` 3. Run the application: ```bash python main.py ``` The application will be available at `http://localhost:5000` ## Database Requirements The application requires access to the following database tables: - `_hkfcD_matchSquad` - Current match squad - `_HKFC_players` - Player database - `hkfcDAdminSettings` - Admin configuration - `hockeyFixtures` - Match fixtures - `_hkfc_d_motm` - MOTM/DotD voting results - `_motmComments` - Match comments - `_clubTeams` - Club and team information - `mensHockeyClubs` - Club logos and information ## API Endpoints ### Public Endpoints - `/` - Main index page - `/motm/` - Voting page (requires valid URL suffix) - `/motm/comments` - Match comments - `/motm/vote-thanks` - Vote submission processing ### Admin Endpoints (Basic Auth Required) - `/admin/motm` - MOTM administration - `/admin/squad` - Squad management - `/admin/squad/submit` - Process squad selection - `/admin/squad/list` - View current squad - `/admin/squad/remove` - Remove player from squad - `/admin/squad/reset` - Reset squad for new match - `/admin/stats` - Goals and assists administration - `/admin/voting` - Voting results charts - `/admin/poty` - Player of the Year charts ### API Endpoints - `/api/vote-results` - Get voting results as JSON - `/api/poty-results` - Get Player of the Year results as JSON - `/admin/api/team/` - Get teams for a club - `/admin/api/logo/` - Get club logo URL - `/admin/api/fixture/` - Get fixture information ## Security - Admin sections are protected with HTTP Basic Authentication - Voting URLs use random suffixes to prevent unauthorized access - All admin actions require authentication ## Usage 1. **Admin Setup**: - Access `/admin/motm` to configure upcoming matches - Use `/admin/squad` to select players for the match - Activate voting to generate the public voting URL 2. **Player Voting**: - Share the generated voting URL with players - Players can vote for MOTM and DotD - Optional comments can be added 3. **Results**: - View real-time results at `/admin/voting` - Track season statistics at `/admin/poty` ## Configuration Update the following in `db_config.py`: - Database connection details - Cloud SQL configuration (if using Google Cloud) - Local database settings The application uses the same database as the main hockey results system, so ensure proper database access is configured.