Welcome to SmartParkSD: Predict Parking Availability

“Find, Park, Go”


Introduction

SmartParkSD transforms the way people find parking in cities by using historical transaction data and machine learning to forecast meter availability. Instead of circling blocks in frustration, drivers get real-time, location-aware predictions on open spots—saving time, fuel, and sanity.

💡 Project Idea: “SmartPark San Diego” – Predict Parking Availability”

Goal:
User inputs:

  • a specific address, will use geo encoding to convert to coordinates.
  • a time & day,

And the app predicts whether parking will likely be available or occupied, and how much it will cost to park there.

🧠 Why this project?

  • Real Dataset (A): We’re using official San Diego city parking transaction and meter location data, which is rich in temporal and spatial signals.

  • Community Purpose (B): It helps solve a major urban problem—wasted time and emissions caused by circling for parking.

  • Our Interest (C & D): As drivers and commuters ourselves, we know how painful parking can be. The project combines ML, data visualization, and user-friendly design, aligning with each of our technical passions—from data science to frontend interactivity.

✅ Feasibility: YES

We can train a model to predict parking availability at a given location (pole_id) and time, based on historical usage patterns.


🧠 Machine Learning Plan

1. Preprocessing / Feature Engineering: From each transaction, create:

  • day_of_week, hour, is_weekend, month
  • occupied_duration = expire - start
  • occupied = 1 during occupied time window, 0 otherwise

Then, aggregate transactions per pole_id per time window (e.g., 15-min or 1-hour) to calculate:

  • average occupancy
  • peak hours
  • typical transaction lengths

2. Training Data Format: Each row = a time slot for a pole

  • Inputs: pole_id, day_of_week, hour, meter_type, etc.
  • Output: occupied (binary classification)

3. Model:
Start with a simple classifier: Random Forest, Decision Tree, or even Logistic Regression


🌐 Web App Interface (Frontend + Backend)

User Interface:

  • Choose location by entering address, using google maps geo location API, and corresponding coordinates in second data table, we will get nearest parking meter in coordinates.
  • Pick day/time
  • Click “Check Parking”
  • App responds: “High chance of available space” or “Likely full”

Backend:

  • Flask or Express server
  • Takes user input → formats it → sends to model → returns prediction

🚀 Bonus Features

  • Visualize occupancy on a heatmap
  • Show historical trends by hour/day
  • Let users compare multiple locations

Frontend Overview

Description of the Figma Prototype

  • Search by Address or Area: Users can type in an address to find nearby meters.
  • Prediction Heatmap: A real-time visual showing the likelihood of available meters in color-coded zones.
  • Meter Details Popup: Tapping a pole reveals past trends, pay type, average occupied hours.
  • Authenticated Dashboard: Registered users can bookmark locations and get notifications


Backend Overview

  • Flask + ML Pipeline with API’s to serve frontend

GitHub Repositories

Repository Description
SmartPark_frontend Frontend app (HTML/CSS/JS)
SmartPark_backend Flask backend with ML models and APIs, pre processing and ML pipline

Timing (ESTIMATES)

  • User stories and planning should be completed by Thursday (03/26/25)

  • Backend integration and ML model deployment should be finished by next Friday (04/18/25)

  • Hard deadline set to May 9th, one week prior to meeting with Derick Lee. Last trimster we had a habit of waiting until the last minute, so we want to improve on our last tri's retrospective and fix these issues.

  • Final refinements and feedback integration should be done by May 16 (05/16/25)


Definition of “Done”

Though projects can never be truly “done”, as of now the project is considered “Done” when the website fully integrates front-end and back-end functionalities, enabling users to view real-time and predicted parking availability. Features include an intuitive UI with a table displaying parking predictions, a machine learning model processing historical and real-time data, and the ability for users to submit feedback on predictions to refine the model.

📈 System Flowchart

A visual representation of how users interact with the system and how predictions are generated:

Technical Foundation

Component Technology
Frontend Bootstrap
Backend Flask (Python)
ML scikit-learn, pandas, xgboost
Mapping Leaflet.js or Google Maps API
Geocoding Google Maps API / OpenCage
Auth JWT-based with secure cookies

Authentication & Smart Routing

Login Behavior

Authenticated users can: ✅ Set location alerts
✅ View prediction history
✅ Bookmark “favorite” parking spots


Team and Project Roles

Name Role Responsibilities
Mihir Scrum Master Oversees progress, coordinates tasks
Shawn Backend Engineer Builds Flask API, connects model to frontend
Kiruthic ML Engineer Processes data, trains models, builds prediction logic
Xavier Assistant Scrum Master Keeps documentation clear and timelines accurate
Spencer Frontend Developer Designs UI/UX, integrates map and result display

🧠 Innovative Features

Predictive Availability Engine

Using timestamps (date_trans_start, date_meter_expire), transaction patterns are modeled to predict future occupancy likelihoods for any meter.

Feature Description
Time-based Forecasting Model trained on usage by hour, day, season
Custom Location Inputs Users can enter an address, which geocodes to the nearest pole(s)
Confidence Score Model outputs likelihood % of spot being open

Address to Meter Matching

Geocoding turns user input into lat/lon, matched to nearby pole_ids via distance comparison. ➡️ Uses Haversine formula or geospatial queries (e.g., PostGIS or GeoPandas)

Visual Parking Forecasts

Color-coded zones display real-time predictions:

Likelihood Color
High (>80%) Green
Medium (50–80%) Yellow
Low (<50%) Red

Why SmartPark Stands Out

Feature Differentiator
ML-Powered Insight Predictions from real city parking data
Geolocation Matching Find meters near any address
Custom Alerts Let users know when a favorite spot opens up
Scalable Design Built for expansion to other cities or data types