Skip to content

apat7/vroom

Repository files navigation

Vroom Project Developer Guide

Overview

Vroom is a platform for discovering and analyzing curvy roads across 7 states (NJ, NY, PA, MA, MD, RI, IN), integrating real-time traffic, elevation, and road data. It features a Python backend for data processing and a Next.js frontend for user interaction.


Project Structure

  • backend/ — Python backend for data processing, road analytics, and Firebase integration
  • frontend/ — Next.js frontend for the web interface
  • api/ — Firebase configuration and Firestore rules
  • data/ — KML and JSON files for road data

Prerequisites

  • Python 3.8+
  • Node.js 18+
  • npm 9+
  • Firebase project (for data storage)

Backend Setup

  1. Install dependencies:

    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
  2. Environment variables:

    • API keys and secrets should be managed securely. For Firebase, use the service account JSON in api/firebase-service-account.json.
    • Do not commit secrets to version control.
  3. Run backend scripts:

    python backend/main.py
    • For multi-state data processing, see backend/multi_state_processor.py.
    • For data fetching and management, see backend/data_fetcher.py.
    • For route calculation, see backend/routing.py.
    • To test multi-state functionality: python backend/test_multi_state.py

Frontend Setup

  1. Install dependencies:

    cd frontend
    npm install
  2. Run the development server:

    npm run dev

    The app will be available at http://localhost:3000.

  3. Environment variables:

    • Use the Next.js secrets CLI for API keys (see project conventions).

Firebase Setup

  1. Create a Firebase project at https://console.firebase.google.com/
  2. Download the service account key and place it in api/firebase-service-account.json.
  3. Set Firestore rules:
    • Use api/firestore.rules for secure access.
  4. Configure Firebase in the backend:
    • See api/firebase_config.py for integration details.

Data Files

  • data/new-jersey/doc.kml — Source KML for New Jersey roads
  • data/new-york/doc.kml — Source KML for New York roads
  • data/pennsylvania/doc.kml — Source KML for Pennsylvania roads
  • data/massachusetts/doc.kml — Source KML for Massachusetts roads
  • data/maryland/doc.kml — Source KML for Maryland roads
  • data/rhode-island/doc.kml — Source KML for Rhode Island roads
  • data/indiana/doc.kml — Source KML for Indiana roads
  • curvy_roads_filtered.json — Processed road data (NJ only)
  • curvy_roads_multi_state.json — Processed road data (all states)

Troubleshooting

  • Dependency issues: Ensure Python and Node.js versions match requirements.
  • Firebase errors: Check service account file and Firestore rules.
  • API keys: Never commit secrets; use secure environment management.
  • Data not loading: Ensure KML/JSON files are present in data/.

Contact

For further help, contact the project maintainer or open an issue in the repository.

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors