{"id":17384466,"url":"https://github.com/jakubriegel/auto","last_synced_at":"2025-08-23T15:37:35.427Z","repository":{"id":117761790,"uuid":"132780874","full_name":"jakubriegel/AUTO","owner":"jakubriegel","description":"System of autonomous cabs with integrated simulator of vehicles and sample front-end","archived":false,"fork":false,"pushed_at":"2019-01-19T19:35:09.000Z","size":5620,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-15T10:55:51.630Z","etag":null,"topics":["automation","autonomous-vehicles","cpp","crow","curl","curlpp","google-maps-api","put-poznan","studies","typescript"],"latest_commit_sha":null,"homepage":"http://auto.jrie.eu/","language":"C++","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/jakubriegel.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,"zenodo":null}},"created_at":"2018-05-09T15:58:10.000Z","updated_at":"2023-08-29T13:36:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"cfd3428e-7977-4b61-985f-0746ab59d2e1","html_url":"https://github.com/jakubriegel/AUTO","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jakubriegel/AUTO","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakubriegel%2FAUTO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakubriegel%2FAUTO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakubriegel%2FAUTO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakubriegel%2FAUTO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jakubriegel","download_url":"https://codeload.github.com/jakubriegel/AUTO/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakubriegel%2FAUTO/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271754933,"owners_count":24815321,"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","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["automation","autonomous-vehicles","cpp","crow","curl","curlpp","google-maps-api","put-poznan","studies","typescript"],"created_at":"2024-10-16T07:45:33.428Z","updated_at":"2025-08-23T15:37:35.419Z","avatar_url":"https://github.com/jakubriegel.png","language":"C++","readme":"# AUTO\n![AUTO banner](https://raw.githubusercontent.com/jakubriegel/AUTO/master/docs/banner.png)\n\nAUTO is a project of the system of full autonomous electric cabs running in [Poznań](https://goo.gl/maps/JcykRLkoVo22) featuring integrated simulator of vehicles and sample front-end. It also has integrated generator of random orders for rides.\n\n## About\n![AUTO features](https://raw.githubusercontent.com/jakubriegel/AUTO/master/docs/features.png)\n\n\n## Implementation\nSystem is implemented 100% in C++ with additional frameworks: [Crow](https://github.com/ipkn/crow), [nlohmann::json](https://github.com/nlohmann/json), [cURL](https://github.com/curl/curl) and [cURLpp](https://github.com/jpbarrette/curlpp). Front-end is written is [TypeScript](https://github.com/Microsoft/TypeScript). Map service is provided by Google Maps API. \n\n![AUTO technologies](https://raw.githubusercontent.com/jakubriegel/AUTO/master/docs/technologies.png)\n\nCore of the app is based on modular structure. Main app is an object of class **AUTO**, from which other modules expand. They are: \n* **server** - a Crow application serving AUTO web app and JSON API\n* **simulator of cars and bases** - here all of cars and bases logic happens\n* **requests genetator** - generates random orders for rides, so that it can be seen, how the system could work in real life\n\nEach of them is implemented as a thread. **AUTO** is where main logic happens. It receives data from other modules, process it and send dispositions to the modules back.\n\nExternal modules of the system are: \n* **config.json** - the app reads it each time it starts. This file stores all paremeters of the system, such as: cars number, bases locations, service area...\n* **TypeScript web app** - here the logic of sample front-end is implemented\n* **html template** and other **static files** for web app\n\n### Diagram of how AUTO works:\n![AUTO all_modules](https://raw.githubusercontent.com/jakubriegel/AUTO/master/docs/all_modules.png)\n\nMajority of code is explained by in-line comments. Main algorithms used in the project are explained [here](https://raw.githubusercontent.com/jakubriegel/AUTO/master/docs/AUTO_Jakub_Riegel_formatka.pdf)[in Polish].\n\n## Try it!\nYou can get hands on it here: [auto.jrie.eu](http://auto.jrie.eu/). \n\nAUTO web application is just a sample of how could user-side of such system look. It is working on desktop and mobile, but proper functionality is only available in Google Chrome.\n\nNote that some system down time is possible.\n\n## Build and run it yourself\n\nNecessary dependencies are g++, cURL and cURLpp. The app also uses Crow and nlohmann::json, but they are provided in this repository.\n\nAUTO was implemented using Visual Studio Code. This repository contains configuration files for it.\n\nFor making it possible to run AUTO you also need individual Google API key, with Diresction API, Places API and Maps JavaScript API enabled. When you grab it, just paste it into `config.json` file at `maps/apiKey`. Note that to make request to Google from your server you have to register your domain on Google Cloud. More information about the API can be found [here](https://cloud.google.com/maps-platform/).\n\n\n### Compiling \nFirst you need to compile TypeScript. Type `tsc` in the Terminal. Afer it you are ready to start C++ compilation with: `g++ app.cpp includes/implementation/*.cpp -o AUTO -std=c++11 -lboost_system -lpthread -lcurlpp -lcurl `\n\n### Running\nType: `sudo ./AUTO config.json`.\n\nTo run AUTO continuously I use `screen`. Simply type `screen`, then `sudo ./AUTO config.json`. \nTo detach your console type `CTRL+A` followed by `D`. Return to it is possible with `screen -r`.\n\n\n## Credits\nThis is a project for my CS studies at [Poznan University of Technology](https://www4.put.poznan.pl/en).\n\n---\n[\u003cimg src=\"https://yt3.ggpht.com/a-/AJLlDp0OnTj3ja34dx-_Z0-aAV9prQz2qJ1wxEKMEg=s900-mo-c-c0xffffffff-rj-k-no\" width=\"100dp\" /\u003e](https://www4.put.poznan.pl/en)\n[\u003cimg src=\"http://www.cie.put.poznan.pl/images/nowelogo3eng.png\" height=\"70dp\"/\u003e](http://www.cie.put.poznan.pl/index.php?lang=en)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakubriegel%2Fauto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjakubriegel%2Fauto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakubriegel%2Fauto/lists"}