Skip to content

Repository files navigation

🚛 ELD Flow 🛣️

Made with RustRustMaintenanceLicense

Open SASS Discord

🐧 Linux (Recommended)🪟 Windows
demo.mp4
demo.mp4
Download ExecutableDownload Executable
Set Environment VariablesSet Environment Variables
unzip filesunzip files
execute ./eldflow/serverexecute .\eldflow\server.exe

Darn Easy ELD Log Management & Smart Trip Planning

🚀 Overview

ELD Flow is a powerful, Rust-based application designed for commercial drivers to log their hours of service (HOS), track trips, and ensure compliance with ELD (Electronic Logging Device) regulations. It features AI-powered summaries, real-time syncing, and seamless trip tracking.

📊 Usage

1️⃣ Sign Up/Login - Create an account and log in as a driver.

2️⃣ Start a Trip - Log pickup and drop-off locations.

3️⃣ Log Hours - Automatically track driving, on-duty, and off-duty hours.

4️⃣ Sync & Export - View reports and export logs for compliance.

✨ Features

Easy ELD Logs - Log, review, and manage hours effortlessly.

Smart Trip Tracking - Plan, monitor, and optimize every route.

AI Insights - Get automatic summaries and smart alerts.

Stay Compliant - HOS tracking with real-time violation alerts.

Built for Devs - High-performance Rust backend with fleet APIs.

GPS Route Optimization - Smarter, faster navigation.

Advanced Analytics - Actionable data at a glance.

📦 Installation & Setup

🖥️ For Pre-Compiled Binaries

Pre-compiled binaries are available for Linux and Windows. Download, set up environment variables, and run the application.

Windows

  1. Download the latest .exe release.

  2. Run:

    .\eldflow.exe

Linux

  1. Download the latest binary.

  2. Execute:

    chmod +x eldflow
    ./eldflow

🛠️ For Developers

  1. Install rustup:

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  2. Install Dioxus CLI:

    cargo install dioxus-cli@0.5.6
  3. Fork/Clone the GitHub repository.

    git clone https://github.com/opensass/eldflow

🔑 Setting Up Env Vars

Before you can start running ELDFlow, you'll need to configure a few environment variables. These are essential for connecting to external services like MongoDB, Unsplash, and the Gemini AI, so let's get you set up! Here's a quick guide:

Create an .env File

Inside the project root, copy and create a file named .env from .env.example. This file will securely store all your environment variables.

cp .env.example .env

Note

Replace the following values with your actual credentials.

MONGODB_USR=
MONGODB_PWD=
MONGODB_CLSTR=your-cluster.mongodb.net
MONGODB_DB_NAME=elds
JWT_SECRET=
GEMINI_API_KEY=
UNSPLASH_API_KEY=

If you're missing any of these keys, check each service's developer portal to generate them.

🥑 Set Up MongoDB

Follow our quick guide to set up your MongoDB database and connect it to your project!

🔐 Generate JWT Secret Key

Generate a secret key using OpenSSL and update its env var in the .env file.

openssl rand -hex 128
d8d0b35856c6fa90a8f3f818fa1c71785d63181945077a4c81e28f731de406c94acad5e864fc85604c520cd67e4977a06656eee081d2d0a897415bb42d8dca167662ae53078084ce70feaee104a3428797078c5bb359db277b26182114bb6b6f4e50d34dcce1ab2ed952912f5783ca89138d508f41bc2d56e60ef2480f501819

✨ Gemini AI API

To obtain your API key, navigate to Google AI Studio and generate it there. This key allows ELDFlow to communicate with Gemini API.

📸 Unsplash API

ELDFlow uses Unsplash which provides a powerful API to search for and retrieve high-quality images. To communicate with this api you will need a Secret key. If you don't already have one, sign up for a free account at Unsplash, create a new app, and copy the Secret key at the bottom of the page after creating the app.

🚀 Building and Running

Once the environment is set up, you're ready to build and run ELDFLOW.

Build the Client

dx serve

Navigate to http://localhost:3000 to access ELDFLOW.

🛠️ Project Architecture

The system is designed with modular Rust components, ensuring high performance and scalability. The Axum backend integrates MongoDB for storing logs, trips, and user data.

📂 Database Schema

MongoDB Models

TableDescription
UserStores driver details, license info, and ELD device IDs.
TripManages trip details, locations, and estimated durations.
EldLogKeeps track of driving, on-duty, and off-duty hours.
RouteStores trip routes, waypoints, and total distances.
DailyLogLogs daily activities, including driver signatures.
FuelingStopRecords fuel stops and locations.
LogEntryTracks status changes like driving, resting, and on-duty shifts.

🤝 Contributing

We welcome contributions! Feel free to submit pull requests or open issues for bug reports and feature suggestions.

📜 License

This project is licensed under the MIT License. See the LICENSE file for details.

About

🚛 Darn Easy ELD Log Management & Smart Trip Planning 🛣️

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages