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.
backend/— Python backend for data processing, road analytics, and Firebase integrationfrontend/— Next.js frontend for the web interfaceapi/— Firebase configuration and Firestore rulesdata/— KML and JSON files for road data
- Python 3.8+
- Node.js 18+
- npm 9+
- Firebase project (for data storage)
-
Install dependencies:
python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt -
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.
- API keys and secrets should be managed securely. For Firebase, use the service account JSON in
-
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
- For multi-state data processing, see
-
Install dependencies:
cd frontend npm install -
Run the development server:
npm run dev
The app will be available at
http://localhost:3000. -
Environment variables:
- Use the Next.js secrets CLI for API keys (see project conventions).
- Create a Firebase project at https://console.firebase.google.com/
- Download the service account key and place it in
api/firebase-service-account.json. - Set Firestore rules:
- Use
api/firestore.rulesfor secure access.
- Use
- Configure Firebase in the backend:
- See
api/firebase_config.pyfor integration details.
- See
data/new-jersey/doc.kml— Source KML for New Jersey roadsdata/new-york/doc.kml— Source KML for New York roadsdata/pennsylvania/doc.kml— Source KML for Pennsylvania roadsdata/massachusetts/doc.kml— Source KML for Massachusetts roadsdata/maryland/doc.kml— Source KML for Maryland roadsdata/rhode-island/doc.kml— Source KML for Rhode Island roadsdata/indiana/doc.kml— Source KML for Indiana roadscurvy_roads_filtered.json— Processed road data (NJ only)curvy_roads_multi_state.json— Processed road data (all states)
- 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/.
For further help, contact the project maintainer or open an issue in the repository.