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

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors