A proof-of-concept application demonstrating real-time synchronization between the Vehicle Information Service Specification Reference Implementation (VISSR) and MongoDB. This interactive web application connects to a VISSR server to stream vehicle telemetry data using the Vehicle Signal Specification (VSS), stores it in MongoDB, and visualizes it in real-time with an intuitive interface.
The application uses a modern Next.js frontend that connects to a VISSR server via WebSocket. Vehicle data flows through MongoDB, where change streams enable real-time updates back to the client for synchronized status displays and map visualization.
Before you begin, ensure you have the following:
- VISSR Server - Install and run locally from COVESA/vissr
- Zenseact Open Dataset - Optional, for realistic vehicle data playback (download options here)
- MongoDB Atlas - A cluster (M0 free tier or higher)
- Node.js - Version 22 or higher
npm installCreate a .env.local file in the root directory:
MONGODB_URI=your_mongodb_connection_string
DATABASE_NAME=vissr_dbTo store and sync vehicle data with MongoDB, create a database trigger in MongoDB Atlas that runs the handler in utils/triggers/updateVehicleState.js each time a new telemetry document is inserted. This trigger implements the real-time update logic for vehicle state and telemetry.
Disclaimer: This trigger-based approach is intended for demonstration purposes in small-scale/proof-of-concept environments. For production systems or when scaling to larger volumes of streaming data, consider using MongoDB Atlas Stream Processing.
If you have the Zenseact Open Dataset, you can generate custom VSS-compliant trip data for the VISSR feeder:
- Navigate to
utils/notebooks/ - Open
zod-vss-modeling.ipynbin Jupyter - Follow the notebook to convert ZOD drive data into
tripdata.json - Use the generated file with VISSR Feederv3
Follow the VISSR installation guide to start your local feeder and VISSR server on port 8080.
Start the development server:
npm run devOpen http://localhost:3000 in your browser.
- (Optional) Enter your VISSR server's IP address (by default it will connect to localhost)
- Click Connect to establish the WebSocket connection
- Use the Command Builder to send VSS commands and subscribe to vehicle signals
- Watch real-time vehicle data appear in the status panel and on the map