{"id":23455429,"url":"https://github.com/aden-q/visual-transit-system-simulator","last_synced_at":"2026-04-17T09:31:35.889Z","repository":{"id":107313502,"uuid":"472569728","full_name":"Aden-Q/visual-transit-system-simulator","owner":"Aden-Q","description":"This project implements a visual transit simulation system for buses in Minneapolis.","archived":false,"fork":false,"pushed_at":"2022-04-06T19:43:46.000Z","size":4902,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-28T05:34:44.030Z","etag":null,"topics":["cplusplus","doxygen-documentation","googletest","html-css","javascript","js","mit-license"],"latest_commit_sha":null,"homepage":"https://aden-q.github.io/visual-transit-system-simulator/","language":"JavaScript","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/Aden-Q.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":"2022-03-22T01:17:26.000Z","updated_at":"2022-03-23T07:55:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"5efc3a69-84c4-49a9-aa8e-79659a38c8af","html_url":"https://github.com/Aden-Q/visual-transit-system-simulator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Aden-Q/visual-transit-system-simulator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aden-Q%2Fvisual-transit-system-simulator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aden-Q%2Fvisual-transit-system-simulator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aden-Q%2Fvisual-transit-system-simulator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aden-Q%2Fvisual-transit-system-simulator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Aden-Q","download_url":"https://codeload.github.com/Aden-Q/visual-transit-system-simulator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aden-Q%2Fvisual-transit-system-simulator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31923087,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T09:10:15.403Z","status":"ssl_error","status_checked_at":"2026-04-17T09:10:14.455Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cplusplus","doxygen-documentation","googletest","html-css","javascript","js","mit-license"],"created_at":"2024-12-24T03:31:19.672Z","updated_at":"2026-04-17T09:31:35.868Z","avatar_url":"https://github.com/Aden-Q.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Visual Transit System Simulator\n\n![C++](https://img.shields.io/badge/c++-%2300599C.svg?style=for-the-badge\u0026logo=c%2B%2B\u0026logoColor=white)![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge\u0026logo=html5\u0026logoColor=white)![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge\u0026logo=javascript\u0026logoColor=%23F7DF1E)[![Licence](https://img.shields.io/github/license/Ileriayo/markdown-badges?style=for-the-badge)](./LICENSE)\n\n## Table of contents\n\n- [Overview](#overview)\n- [Directory Structures](#directory-structures)\n- [Features](#features)\n- [Dependencies](#dependencies)\n- [Building](#building)\n- [Running](#running)\n- [Testing](#testing)\n- [Code Style](#code-style)\n- [Documentation](#documentation)\n- [Contributors](#contributors)\n- [License](#license)\n\n## Overview\n\nThe simulation system models bus transit around the University of Minnesota campus, and can display the routings and statistics on a webpage in a timely manner.\n\n### System Architecture\n\n![](https://raw.githubusercontent.com/Aden-Q/blogImages/main/img/202203221857906.png)\n\n### Demo\n\n![demo](docs/images/demo.gif)\n\n## Directory Structures\n\n+ `config`: Contains `config.txt` which is a configuration file for bus stops and routes used by the transit simulation system, can be customized.\n+ `cpplint`: Automatic Google Style cpplint script.\n+ `docs`: Documentation files and images.\n+ `drivers`: Contains source code with the main function that is used to create the drivers files for entities in the simulation system.\n+ `googletest`:GoogleTest suits for unit testing and regression testing.\n+ `src`: Directory that contains all the source code (.cc AND .h) for the backend simulator.\n+ `test`: Directory of creating unit tests, using [Google Test](https://github.com/google/googletest) framework.\n+ `build`: Created by `Makefile`, containing all the executables.\n+ `web_code`: Source code for the web server used to enable communication between the visualization component and the backend simulation system.\n+ `web_graphics`: Frontend HTML/CSS/JavaScript source code used to render the web page. It enables to configure and run the transit simulation system from the local browser.\n\n## Features\n\n- [X] Visualization on a web page\n- [X] Functionality to Pause / Resume\n- [X] Logging the statistics\n- [X] Runtime behavior modificaiton at runtime\n- [ ] Linking to an external database server\n- [ ] Deploying the on the cloud\n\n## Dependencies\n\n+ `g++`\n+ `node`\n+ `npm`\n\n## Building\n\nThe project can be compiled across different platforms using `Makefile`. However, to enable most of the features and functionalities of the system. It recommended to compile it on a Linux machine. Then we can run the simulation system and the web server on a Linux machine and access it via a browser on a different platform (Linux, OSX, Windows, or even on a mobile).\n\nTo compile and build the program, it is as simple as:\n\n```bash\n$ cd src\n$ make\n```\n\nThe built executable will be located in `./build/bin/`, named `vis_sim`.\n\n## Running\n\nTo run the simulation and start the web server:\n\n```bash\n$ ./build/bin/vis_sim \u003cport_number\u003e\n```\n\nThe `port_number` is of your choice and should be a legal one (typically starting from 8000).\n\nThen run your local browser (Firefox/Chrome are guaranteed to have the best performance), and enter following address:\n\n```bash\nhttps://127.0.0.1:\u003cport_number\u003e/web_graphics/project.html\n```\n\nYou will be directed to the main page of the simulation visualizer and you can play with it!\n\n## Testing\n\nAll test cases are created with Google Test.\n\n### Unit Tests\n\n```bash\n# Example usage\n$ cd tests\n$ make\n$ ../build/bin/unittest\n```\n\n### Regression Tests\n\n```bash\n# Example usage\n# The output of diff command should be silent\n$ cd src\n$ make regression_test\n$ cd ../build/bin\n$ ./regression_test \u003e [log_file1]\n$ ./regression_test \u003e [log_file2]\n$ diff [log_file1] [log_file2]\n```\n\n## Code style\n\nThe code in this project is [Google Style](https://google.github.io/styleguide/cppguide.html) compliant and uses [cpplint](https://github.com/google/styleguide/tree/gh-pages/cpplint) for linting.\n\nFor style check, do the following\n\n```bash\n$ ./cpplint/cpplint.py [path_target_dir] [file_name]\n# Example usage\n$ cd src\n$ ../cpplint/cpplint.py *.cc *.h\n```\n\n## Documentation\n\n`Doxygen` is used to generate documentation and UML for this project. The steps are following\n\n1. Navigate to the `docs` directory.\n\n```bash\n$ cd docs\n```\n\n2. Generate the `html` pages and `latex` files for the documentation.\n\n```bash\n$ doxygen Doxyfile\n```\n\n3. Open the `index.html` file inside the `docs/html` directory with a browser and you will be directed to the main page of the project document.\n\n## Contributors\n\n[Zecheng Qian](https://aden-q.github.io/) - qian0102@umn.edu\n\n## License\n\n[MIT License](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faden-q%2Fvisual-transit-system-simulator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faden-q%2Fvisual-transit-system-simulator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faden-q%2Fvisual-transit-system-simulator/lists"}