{"id":27129620,"url":"https://github.com/opensass/eldflow","last_synced_at":"2025-04-07T19:56:50.693Z","repository":{"id":285647353,"uuid":"958862403","full_name":"opensass/eldflow","owner":"opensass","description":"🚛 Darn Easy ELD Log Management \u0026 Smart Trip Planning 🛣️","archived":false,"fork":false,"pushed_at":"2025-04-01T22:33:17.000Z","size":682,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-01T23:28:54.825Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://opensass.org/eldflow","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opensass.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-04-01T22:13:47.000Z","updated_at":"2025-04-01T22:32:25.000Z","dependencies_parsed_at":"2025-04-01T23:29:20.484Z","dependency_job_id":"0a6de162-a72d-41b4-91d7-b9c4418473dd","html_url":"https://github.com/opensass/eldflow","commit_stats":null,"previous_names":["opensass/eldflow"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opensass%2Feldflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opensass%2Feldflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opensass%2Feldflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opensass%2Feldflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opensass","download_url":"https://codeload.github.com/opensass/eldflow/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247721906,"owners_count":20985084,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-07T19:56:49.964Z","updated_at":"2025-04-07T19:56:50.682Z","avatar_url":"https://github.com/opensass.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# 🚛 ELD Flow 🛣️\n\n[![Made with Rust](https://img.shields.io/badge/Made%20with-Rust-1f425f.svg?logo=rust\u0026logoColor=white)](https://www.rust-lang.org/)\n[![Rust](https://img.shields.io/badge/Rust-1.85%2B-blue.svg)](https://www.rust-lang.org)\n[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/wiseaidev)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\n[![Open SASS Discord](https://dcbadge.limes.pink/api/server/b5JbvHW5nv)](https://discord.gg/b5JbvHW5nv)\n\n| 🐧 Linux `(Recommended)` | 🪟 Windows |\n| :------: | :------: |\n| \u003cvideo src=\"https://github.com/user-attachments/assets/1b333744-2ebf-4b15-a67b-d970dbbe0758\"\u003e\u003c/video\u003e | \u003cvideo src=\"https://github.com/user-attachments/assets/1b333744-2ebf-4b15-a67b-d970dbbe0758\"\u003e\u003c/video\u003e |\n| [**Download Executable**](https://github.com/opensass/eldflow/releases/download/v0.0.1/dist.zip) | [**Download Executable**](https://github.com/opensass/eldflow/releases/download/v0.0.1/dist.rar) |\n| [**Set Environment Variables**](https://github.com/opensass/eldflow#-setting-up-env-vars) | [**Set Environment Variables**](https://github.com/opensass/eldflow#-setting-up-env-vars) |\n| unzip files | unzip files |\n| execute `./eldflow/server` | execute `.\\eldflow\\server.exe` |\n\n\u003e **Darn Easy ELD Log Management \u0026 Smart Trip Planning**\n\n\u003c/div\u003e\n\n## 🚀 Overview\n\n**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.\n\n## 📊 Usage\n\n1️⃣ **Sign Up/Login** - Create an account and log in as a driver.\n\n2️⃣ **Start a Trip** - Log pickup and drop-off locations.\n\n3️⃣ **Log Hours** - Automatically track driving, on-duty, and off-duty hours.\n\n4️⃣ **Sync \u0026 Export** - View reports and export logs for compliance.\n\n## ✨ Features\n\n✔ **Easy ELD Logs** - Log, review, and manage hours effortlessly.\n\n✔ **Smart Trip Tracking** - Plan, monitor, and optimize every route.\n\n✔ **AI Insights** - Get automatic summaries and smart alerts.\n\n✔ **Stay Compliant** - HOS tracking with real-time violation alerts.\n\n✔ **Built for Devs** - High-performance Rust backend with fleet APIs.\n\n✔ **GPS Route Optimization** - Smarter, faster navigation.\n\n✔ **Advanced Analytics** - Actionable data at a glance.\n\n## 📦 Installation \u0026 Setup\n\n### 🖥️ For Pre-Compiled Binaries\n\nPre-compiled binaries are available for **Linux** and **Windows**. Download, set up environment variables, and run the application.\n\n#### Windows\n\n1. Download the latest `.exe` release.\n\n1. Run:\n   ```sh\n   .\\eldflow.exe\n   ```\n\n#### Linux\n\n1. Download the latest binary.\n\n1. Execute:\n   ```sh\n   chmod +x eldflow\n   ./eldflow\n   ```\n\n### 🛠️ For Developers\n\n1. Install [`rustup`](https://www.rust-lang.org/tools/install):\n\n   ```bash\n   curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n   ```\n\n1. Install [`Dioxus CLI`](https://dioxuslabs.com/learn/0.5/getting_started):\n\n   ```bash\n   cargo install dioxus-cli@0.5.6\n   ```\n\n1. Fork/Clone the GitHub repository.\n\n   ```bash\n   git clone https://github.com/opensass/eldflow\n   ```\n\n## 🔑 Setting Up Env Vars\n\nBefore 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:\n\n### Create an `.env` File\n\nInside the project root, copy and create a file named `.env` from `.env.example`. This file will securely store all your environment variables.\n\n```bash\ncp .env.example .env\n```\n\n\u003e [!NOTE]\n\u003e Replace the following values with your actual credentials.\n\u003e\n\u003e ```bash\n\u003e MONGODB_USR=\n\u003e MONGODB_PWD=\n\u003e MONGODB_CLSTR=your-cluster.mongodb.net\n\u003e MONGODB_DB_NAME=elds\n\u003e JWT_SECRET=\n\u003e GEMINI_API_KEY=\n\u003e UNSPLASH_API_KEY=\n\u003e ```\n\u003e\n\u003e If you're missing any of these keys, check each service's developer portal to generate them.\n\n### 🥑 Set Up MongoDB\n\nFollow [our quick guide](./MongoDB.md) to set up your MongoDB database and connect it to your project!\n\n### 🔐 Generate JWT Secret Key\n\nGenerate a secret key using OpenSSL and update its env var in the `.env` file.\n\n```bash\nopenssl rand -hex 128\n\nd8d0b35856c6fa90a8f3f818fa1c71785d63181945077a4c81e28f731de406c94acad5e864fc85604c520cd67e4977a06656eee081d2d0a897415bb42d8dca167662ae53078084ce70feaee104a3428797078c5bb359db277b26182114bb6b6f4e50d34dcce1ab2ed952912f5783ca89138d508f41bc2d56e60ef2480f501819\n```\n\n### ✨ Gemini AI API\n\nTo obtain your API key, navigate to [Google AI Studio](https://aistudio.google.com/app/apikey) and generate it there. This key allows ELDFlow to communicate with Gemini API.\n\n### 📸 Unsplash API\n\nELDFlow 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](https://unsplash.com/oauth/applications). 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.\n\n## 🚀 Building and Running\n\nOnce the environment is set up, you're ready to build and run ELDFLOW.\n\n### Build the Client\n\n```sh\ndx serve\n```\n\nNavigate to [http://localhost:3000](http://localhost:3000) to access ELDFLOW.\n\n## 🛠️ Project Architecture\n\nThe system is designed with **modular Rust components**, ensuring high performance and scalability. The Axum backend integrates **MongoDB** for storing logs, trips, and user data.\n\n### 📂 Database Schema\n\n![MongoDB Models](./assets/dbdiagram.png)\n\n| Table         | Description |\n|--------------|------------|\n| `User`       | Stores driver details, license info, and ELD device IDs. |\n| `Trip`       | Manages trip details, locations, and estimated durations. |\n| `EldLog`     | Keeps track of driving, on-duty, and off-duty hours. |\n| `Route`      | Stores trip routes, waypoints, and total distances. |\n| `DailyLog`   | Logs daily activities, including driver signatures. |\n| `FuelingStop` | Records fuel stops and locations. |\n| `LogEntry`   | Tracks status changes like driving, resting, and on-duty shifts. |\n\n## 🤝 Contributing\n\nWe welcome contributions! Feel free to submit **pull requests** or open **issues** for bug reports and feature suggestions.\n\n## 📜 License\n\nThis project is licensed under the **MIT License**. See the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopensass%2Feldflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopensass%2Feldflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopensass%2Feldflow/lists"}