Clean production repository for Arctic_Wolves - sports team management PWA
  • PHP 82.4%
  • CSS 11%
  • JavaScript 3.8%
  • Python 1.4%
  • HTML 1%
  • Other 0.4%
Find a file
2026-07-03 05:16:52 +00:00
.github/workflows
admin
android-tv
api
assets
backups
cache
companion
config
css feat: refine shop design with hero banner and visual enhancements 2026-07-01 10:16:01 +00:00
deployment
docs
goals
js feat: add shared cart drawer JavaScript module 2026-07-01 06:45:03 +00:00
lib fix: restore login background image and fix Who We Are logo 2026-07-03 03:40:38 +00:00
logs
migrations
receipts
scoreboard-viewer
views fix: rename staff checkin to child athlete check-in/checkout 2026-07-03 05:16:46 +00:00
.gitignore
.htaccess
ajax_get_order_details.php
ajax_get_pos_transaction.php
ajax_search_seasons.php
ajax_search_teams.php
ajax_search_users.php
api_tv_pair_state.php
camp_checkin_scan.php
cloud_config.php
cron_audit_cleanup.php
cron_contract_reminders.php
cron_database_backup.php
cron_notifications.php
cron_receipt_scanner.php
cron_security_scan.php
cron_session_reminders.php
cron_stats_snapshot.php
cron_waitlist_expiration.php
csrf_protection.php
dashboard.php fix: rename staff checkin to child athlete check-in/checkout 2026-07-03 05:16:52 +00:00
dashboard_kiosk.php
database_schema.sql
db_config.php
download_invoice.php
drill_share.php
error_logger.php
force_change_password.php
gameplan.php
gameplan_tv.php
ihs_rink_preview.png
index.php
index_default.php
lbracket_test_preview.html
login.php fix: restore login background image and fix Who We Are logo 2026-07-03 03:40:37 +00:00
logout.php
mailer.php
manifest-gameplan-tv.json
manifest.json
notifications.php
oauth_office365_callback.php
payment_success.php
pos_kiosk.php
practice_plan_share.php
process_2fa.php
process_admin_action.php
process_admin_age_skill.php
process_admin_team_coaches.php
process_agreements.php
process_assign_module.php
process_audit_logs_export.php
process_audit_restore.php
process_booking.php
process_business_partners.php
process_camp_checkin.php feat: add staff check-in actions (search, direct check-in, override with email notification) 2026-07-03 03:34:35 +00:00
process_coach_action.php
process_coach_termination.php
process_contact.php
process_create_athlete.php
process_create_session.php
process_cron_jobs.php
process_database_backup.php
process_database_restore.php
process_development_programs.php
process_drills.php
process_drills_export.php
process_edit_session.php
process_employee_contracts.php
process_eval_framework.php
process_eval_goal_approval.php
process_eval_goals.php
process_eval_skills.php
process_evaluation_templates.php
process_evaluations.php
process_expenses.php
process_feature_import.php
process_gameplan_settings.php
process_get_athlete_dashboard.php
process_goal_templates.php
process_goals.php
process_health_assignments.php
process_hr_complaints.php
process_ihs_import.php
process_injury.php
process_library.php
process_log_client_error.php
process_login.php
process_manage_athletes.php
process_merchandise_categories.php
process_merchandise_products.php
process_messages.php fix: fix message sending and add create conversation handler 2026-07-01 06:17:46 +00:00
process_mileage.php
process_nutrition.php
process_onboarding.php
process_packages.php
process_parent_invitations.php
process_payroll.php
process_permissions.php
process_persona_switch.php
process_plan_categories.php
process_pos.php
process_practice_plans.php
process_practice_plans_export.php
process_profile_update.php
process_purchase_package.php
process_recurring_expenses.php
process_refunds.php
process_register.php
process_reports.php
process_scheduled_reports.php
process_scoreboard.php
process_send_marketing_email.php
process_session_evaluations.php
process_settings.php
process_shop_add_to_cart.php
process_shop_checkout.php
process_shot_speed.php
process_staff_profiles.php fix: fix Who We Are page logo, staff API, and JavaScript errors 2026-07-03 03:16:20 +00:00
process_stats_bulk_update.php
process_stats_goal.php
process_stats_update.php
process_stopwatch.php
process_switch_athlete.php
process_system_notifications.php
process_testing.php
process_theme.php
process_time_tracking.php
process_users_email_export.php
process_video.php
process_wishlist.php
process_workout.php
pwa-sw.js fix: break service worker caching deadlock with version bump and cache-busting 2026-07-01 03:17:36 +00:00
pwa.php feat: add child check-in routing and POS integration 2026-07-03 04:49:10 +00:00
pwa_detect.php
pwa_login.php
pwa_more_menu.php feat: add child check-in routing and POS integration 2026-07-03 04:49:18 +00:00
pwa_tablet.php
README.md
register.php fix: replace broken Unsplash URL with local hockey SVG asset 2026-07-02 07:00:25 +00:00
rink_images_migration.sql
scoreboard.php
security.php
sessions_public.php
setup.php
shop.php feat: implement cart drawer and checkout stepper on desktop shop 2026-07-01 06:46:39 +00:00
style.css
test_rink_preview.png

🐺 Arctic Wolves

A comprehensive Progressive Web Application for athletic organization operations — coach & athlete management, training drills, video analysis, evaluations, finance, HR, POS, and more.

📸 Screenshots

Dashboard Drill Designer

Features

🏋️ Athlete Management

  • Athlete profiles with encrypted PII, parent/guardian relationships, managed athletes
  • Session registration, booking, waitlists, and payment processing (Stripe)
  • Performance tracking: evaluations, goals, skills assessments, testing metrics
  • Drill library with drag-and-drop designer, video recording, and review

📋 Operations

  • Point of Sale (POS) with card/cash payments, inventory management, barcode scanning
  • Finance: billing, expenses, payroll (T4-ready), tax reports, profit/loss, revenue summaries
  • HR: onboarding, employee contracts, time tracking, complaints, terminations
  • Camp/program management with multi-week scheduling
  • Merchandise shop with stock tracking

📹 Media & Video

  • Video uploads with HLS/DASH transcoding, offline upload queue
  • Coach video reviews, drill recordings, athlete self-recordings
  • Companion server for Docker-based GPU/CPU transcoding
  • Game Plan TV — film room, telestration, whiteboard on Android TV

🔒 Security & Compliance

  • Field-level AES-256 encryption for PII, credentials, and banking data
  • Role-based access control with row-level security
  • 2FA (TOTP) with backup codes, OAuth 365 integration
  • CSRF protection, rate limiting, secure session management
  • Comprehensive audit logging with restore support

📱 PWA

  • Installable on iOS, Android, and desktop
  • Offline capability with service worker caching
  • Tablet-optimized kiosk mode for front desk
  • Companion mobile apps via Android TV and Scoreboard Viewer

🛠 Tech Stack

Layer Technology
Backend PHP 8.x
Database MariaDB / MySQL 8.0
Frontend HTML5, CSS3, vanilla JavaScript (ES2022+)
Caching Valkey / Redis
Storage RustFS (S3-compatible)
Payments Stripe
Auth TOTP 2FA, OAuth 365
Transcoding FFmpeg (via Docker Companion)
E-Signatures DocuSeal, OpenSign
Testing Playwright
Mobile Android TV (Kotlin), Scoreboard Viewer (Kotlin)

📦 Installation

Prerequisites

  • PHP 8.1+ with extensions: pdo_mysql, openssl, curl, gd, mbstring, json, fileinfo
  • MariaDB 10.6+ or MySQL 8.0+
  • Apache with mod_rewrite or Nginx
  • Valkey/Redis (optional, for caching)
  • RustFS/S3-compatible storage (optional, for file uploads)

Quick Start

  1. Clone and configure web server:

    git clone https://git.crashmedia.ca/crashmedia/Arctic_Wolves.git
    

    Point your web server document root to the cloned directory. Sample Apache config: deployment/arctic_wolves.conf

  2. Set directory permissions:

    These directories must be writable by the web server user (typically www-data or abc in Docker):

    uploads/     sessions/     cache/     logs/
    backups/     receipts/     videos/    tmp/
    

    The root directory must also be writable during initial setup (for Arctic_Wolves.env):

    # For Docker (linuxserver/nginx container):
    sudo docker exec nginx chown -R abc:abc /config/www/Arctic_Wolves
    sudo docker exec nginx chmod 775 /config/www/Arctic_Wolves
    sudo docker exec nginx chmod -R 775 /config/www/Arctic_Wolves/{uploads,sessions,cache,logs,backups,receipts,videos,tmp}
    sudo docker exec nginx find /config/www/Arctic_Wolves -type d -exec chmod 755 {} \;
    sudo docker exec nginx find /config/www/Arctic_Wolves -type f -exec chmod 644 {} \;
    
    # For standard LAMP:
    sudo chown -R www-data:www-data /path/to/Arctic_Wolves
    sudo chmod 775 /portainer/nginx/www/Arctic_Wolves
    sudo chmod -R 775 /portainer/nginx/www/Arctic_Wolves/{uploads,sessions,cache,logs,backups,receipts,videos,tmp}
    find /path/to/Arctic_Wolves -type d -exec chmod 755 {} \;
    find /path/to/Arctic_Wolves -type f -exec chmod 644 {} \;
    

    For full details, see deployment/setup_permissions.sh.

  3. Open in browser and follow the setup wizard:

    https://your-domain.com/setup.php
    

    The setup wizard handles:

    • Database connection and schema creation (from database_schema.sql)
    • Encryption key generation
    • Admin user creation
    • SMTP/email configuration
  4. Post-install verification:

    • Log in with your admin credentials
    • Navigate to Admin → System Check to verify all components
    • Run the database migrations (auto-applied for existing installs via deployment/sql/)

Docker Deployment

See deployment/docker-compose-galera.yml for a Galera cluster setup. The Companion transcoding server has its own Docker setup — see companion/README.md.

📁 Project Structure

Arctic_Wolves/
├── api/                    # REST API endpoints (v1)
├── admin/                  # Admin panel
├── assets/                 # PWA icons and SVGs
├── companion/              # Video transcoding companion (Python/Docker)
├── deployment/             # Deployment configs, SQL migrations, scripts
│   └── sql/               # Migration patches (auto-applied by setup.php)
├── lib/                    # Core libraries (encryption, caching, storage, etc.)
├── views/                  # PHP view templates
│   ├── gameplan/           # Game Plan TV views
│   ├── pwa/                # PWA-optimized views
│   └── scoreboard/         # Scoreboard views
├── js/                     # JavaScript modules
├── css/                    # Stylesheets
├── tests/                  # Playwright E2E tests
├── android-tv/             # Android TV companion app
├── scoreboard-viewer/      # Android scoreboard viewer app
├── goals/                  # Goals and evaluation managers
├── database_schema.sql     # Canonical DB schema (source of truth)
├── setup.php               # Installation wizard
└── dashboard.php           # Main application router

🔧 Configuration

  • Database: db_config.php (auto-generated by setup wizard)
  • Email/SMTP: Configured via Admin → Settings after setup
  • Caching: Connection details in db_config.php, managed by lib/valkey_cache.php
  • Storage: RustFS/S3 endpoint configured via Admin → Settings
  • Stripe: API keys configured via Admin → Settings
  • OAuth 365: Configured via Admin → Security settings

📄 License

Proprietary. All rights reserved.