A comprehensive web application for managing track and field athletes, teams, events, meets, and performances.
- Athlete Management: Add, edit, and manage athlete profiles with photos
- Team Management: Organize athletes into teams
- Event Management: Track different track and field events
- Meet Management: Schedule and manage track meets
- Performance Tracking: Record and analyze athlete performances
- User Authentication: Secure login system with role-based access
- Dashboard: Overview of key metrics and recent activities
- Color Scheme: Red, Black, and Gold theme
- Responsive Design: Works on desktop and mobile devices
- Modern UI: Clean and intuitive user interface
- Backend: Flask (Python)
- Database: PostgreSQL (SQLAlchemy ORM)
- Frontend: HTML, CSS, JavaScript
- Authentication: Flask-Login
- Deployment: Heroku
- Python 3.12+
- PostgreSQL
- Git
-
Clone the repository
git clone https://github.com/YOUR_USERNAME/mvp-track-app.git cd mvp-track-app -
Create virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Set up environment variables Create a
.envfile:FLASK_ENV=development SECRET_KEY=your-secret-key-here DATABASE_URL=postgresql://username:password@localhost:5432/mvp_track_db
-
Initialize database
python setup_database.py
-
Run the application
python app.py
-
Access the application Open http://localhost:5000 in your browser
-
Install Heroku CLI
# Download from https://devcenter.heroku.com/articles/heroku-cli -
Login to Heroku
heroku login
-
Deploy using the automated script
.\deploy_to_heroku.ps1 -
Manual deployment
heroku create your-app-name heroku addons:create heroku-postgresql:basic heroku config:set FLASK_ENV=production heroku config:set SECRET_KEY=your-secret-key git push heroku main heroku run python -c "from app import app, db; app.app_context().push(); db.create_all()" heroku open
- Admin: Full access to all features
- Coach: Can view athletes and performances
- Athlete: Can view their own profile and performances
- Users: Authentication and user management
- Athletes: Athlete profiles and information
- Teams: Team information
- Events: Track and field events
- Meets: Competition schedules
- Performances: Athlete performance records
- AthleteEvents: Athlete-event relationships
- AthleteBio: Athlete biographies
- AthletePB: Personal best records
FLASK_ENV: Application environment (development/production)SECRET_KEY: Flask secret key for sessionsDATABASE_URL: PostgreSQL connection string
The application automatically handles Heroku's PostgreSQL URL format and local development databases.
mvp-track-app/
├── app.py # Main Flask application
├── config.py # Configuration settings
├── requirements.txt # Python dependencies
├── Procfile # Heroku deployment configuration
├── runtime.txt # Python version specification
├── setup_database.py # Database initialization script
├── static/ # Static files (CSS, images)
│ ├── css/
│ └── athlete_photos/
├── templates/ # HTML templates
├── venv/ # Virtual environment (not in repo)
└── README.md # This file
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue on GitHub
- Contact the development team
- v1.0.0: Initial release with core functionality
- v1.1.0: Added Heroku deployment support
- v1.2.0: Enhanced UI and performance tracking
- Flask community for the excellent web framework
- Heroku for hosting platform
- All contributors and testers
Made with ❤️ for MVP Track and Field