Skip to content

Continuation of the p2p data project I started, turning this into a full stack website displaying some of the cool findings of the data.

Notifications You must be signed in to change notification settings

JSlush611/p2p-web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎯 P2P-Web: Swim Data Visualization 🏊📊

Welcome to the P2P-Web project! This full-stack web application is designed to scrape, process, and visualize over 15 years of open-water swim data. The goal is to provide interactive and insightful visualizations for swimmers, enabling them to analyze trends, track performance, and explore historical race data. 🌊📈

📁 Project Structure

Here's how the project is organized:

p2p-web/
├── 📂 p2p-backend/
│   ├── 📂 app/
│   │   ├── routes/        # API endpoints
│   │   ├── services/      # Core business logic
│   │   ├── graph_building/ # Data processing & visualization logic
│   │   ├── app.py        # Flask entry point
│   │   ├── __init__.py   # App initialization
│   ├── Dockerfile        # Backend containerization
│   ├── run.py            # Backend application entry script
│   ├── requirements.txt  # Python dependencies
│
├── 📂 p2p-frontend/
│   ├── 📂 src/           # React frontend source files
│   ├── public/          # Static assets
│   ├── package.json     # Frontend dependencies
│   ├── Dockerfile       # Frontend containerization
│   ├── nginx.conf       # NGINX config for serving frontend
│
├── docker-compose.yaml  # Container orchestration for local development
├── .github/workflows/   # CI/CD pipelines
├── .gitignore           # Ignored files like `.env` and pycache
├── README.md            # Project overview (You're here!)

💻 What It Does

1️⃣ Full-Stack Swim Data Visualization

  • Data Collection → Scrapes and processes 15+ years of open-water swim race results.
  • Visualization → Displays interactive graphs of participation, performance trends, and historical rankings.
  • User Customization → Allows users to explore swim statistics and filter data.

2️⃣ Modern Cloud-Based Architecture

  • Flask API (Backend) → Processes data and serves JSON responses for visualization.
  • React Frontend → Provides an interactive UI for users to explore swim data.
  • Cloud Run Deployment → Automatically scales with usage for cost efficiency.

3️⃣ CI/CD & Automation

  • GitHub Actions → Automates building, testing, and deploying Docker images.
  • Dockerized Services → Ensures smooth local and cloud-based execution.

🚀 Features

📊 Data Processing & Visualization

  • Race Participation Over Time → Track how participation numbers have changed over the years.
  • Average & Fastest Swim Times → Analyze trends in race times.
  • Performance Comparisons → Compare swimmers based on age, gender, or other criteria.

🏗️ Scalable & Cloud-Based

  • Stateless Microservice Architecture → Designed to run efficiently on Google Cloud Run.
  • Containerized Deployment → Backend and frontend are Dockerized for smooth deployment.

🏃 Automated Workflows

  • CI/CD Pipeline → Uses GitHub Actions to build, push, and deploy the backend and frontend.
  • Automated Cloud Run Deployment → Seamlessly updates live service.

📜 Acknowledgments

  • 🏊 Swim Community → For inspiring this project.
  • 📊 Plotly & Pandas → For enabling advanced visualizations.
  • ☁️ Google Cloud → For scalable deployment options.

Feel free to contribute, report bugs, or suggest new features! 🚀

About

Continuation of the p2p data project I started, turning this into a full stack website displaying some of the cool findings of the data.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published