No description
  • PHP 67.5%
  • JavaScript 14.9%
  • HTML 11%
  • CSS 4.9%
  • Python 1.1%
  • Other 0.6%
Find a file
2026-06-13 14:56:16 +00:00
.github/workflows
.opencode
admin
android-tv
api
assets
backups
cache
companion
components
config
css Add Aurora V2 tablet CSS stylesheet 2026-06-10 14:06:50 +00:00
deployment feat: add staff_profiles migration with default data 2026-06-11 01:32:15 +00:00
docs
goals
js
lib fix: use archive contents for deletion when tree is truncated 2026-06-10 15:15:08 +00:00
logs
QA
receipts
scoreboard-viewer
screenshots
test_css
tests
tmp
uploads
videos
views Add console.log diagnostic traces for ice surface rendering debugging 2026-06-13 14:56:16 +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
aurora-v2-nav-test.js
aurora-v2-test.js
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
dashboard_kiosk.php
database_schema.sql feat: add staff_profiles table to schema for Who We Are page 2026-06-11 01:29:14 +00:00
db_config.php
download_invoice.php
drill_share.php
error_logger.php
force_change_password.php
gameplan.php
gameplan_tv.php
index.php
index_default.php
login.php
logout.php
mailer.php
manifest-gameplan-tv.json
manifest.json
notifications.php
oauth_office365_callback.php
opencode.json
package-lock.json
package.json
payment_success.php
playwright.config.js
playwright.config.ts
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
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
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 fix: increase PHP time limit to 600s for updater operations 2026-06-10 15:15:09 +00:00
process_shop_checkout.php
process_shot_speed.php
process_staff_profiles.php Rebuild staff profiles API with row management, auto-bumping, and full CRUD 2026-06-10 22:40:56 +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
pwa.php Add external CSS references for PWA mobile architecture (pwa-mobile.css, pwa-home.css, pwa-sessions.css, pwa-stats.css, pwa-roster.css) 2026-06-09 19:07:26 +00:00
pwa_detect.php
PWA_IMPLEMENTATION_PLAN.md
pwa_login.php
pwa_more_menu.php
pwa_tablet.php
README.md
register.php
scoreboard.php
security.php
sessions_public.php
setup.php
shop.php
shop_cart.php
shop_checkout.php
shop_product.php
shop_success.php
style.css
system_health_validator.php
validate_sql.php
verify.php
verify_2fa.php
webhook_docuseal.php
webhook_opensign.php
who-we-are.php Rebuild who-we-are.php — complete page with nav, hero, mission, staff, CTA, footer (Aurora V2 dark theme, admin mode, drag-and-drop) 2026-06-11 00:53:06 +00:00

🐺 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.