https://github.com/adityav42/tributary
This repo is for FORAGE course on FORD Digital Advanced.
https://github.com/adityav42/tributary
Last synced: 5 months ago
JSON representation
This repo is for FORAGE course on FORD Digital Advanced.
- Host: GitHub
- URL: https://github.com/adityav42/tributary
- Owner: AdityAV42
- Created: 2025-01-25T17:00:19.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-29T10:41:56.000Z (over 1 year ago)
- Last Synced: 2025-02-23T05:16:57.651Z (over 1 year ago)
- Language: Python
- Size: 142 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Tributary: Backend Infrastructure for Ford's Sensor Streaming System
This repository contains the code for the **Ford Digital Advanced Job Simulation** project on the **Forage** platform. The focus is on creating a backend system that handles real-time sensor data from vehicles.
## Tech Stack
- **Git and GitHub**: Version control and collaboration
- **Python (PyCharm)**: Flask server development
- **Redis**: In-memory database for storing sensor data
- **Docker Desktop**: Containerization for a consistent environment across all platforms
## Project Overview
The project implements a **sensor streaming system** for Ford's vehicle data collection, where temperature data from embedded vehicle sensors is captured and streamed in real-time. The backend infrastructure is built using **Flask** to create two endpoints, and **Redis** is used for real-time data storage.
### Server Architecture
The backend consists of:
- **Flask Server**: A Python-based web server that exposes two RESTful API endpoints:
- **`/record`**: Receives periodic data from embedded vehicle sensors and stores it in Redis.
- **`/collect`**: Retrieves the most current temperature data and calculates an average value for display on the mobile application.
- **Redis Database**: An in-memory data store used to store the most recent sensor data and averages.
### Docker Containers
The project uses **Docker** to containerize both the **Flask server** and **Redis instance**, ensuring consistency across environments. **Docker Compose** is used to run both containers together in a unified environment.
## Key Terms
Here are a few useful terms for this program:
- **Sensor Streaming System**: A technology that captures and transmits real-time data from sensors for monitoring and analysis.
- **Flask**: A web framework for building servers that expose a clearly defined API to the internet.
- **Redis**: An open-source, in-memory datastore.
- **Docker Container**: A self-contained virtual environment that ensures consistent and portable application deployment across different environments.
- **Dockerfile**: A script that defines the steps to create a Docker container image.
- **Docker Compose**: A tool for defining and running multicontainer Docker applications using a YAML configuration file.