{"id":18557572,"url":"https://github.com/brenns10/bart","last_synced_at":"2025-06-14T09:38:16.101Z","repository":{"id":82763111,"uuid":"63888113","full_name":"brenns10/bart","owner":"brenns10","description":"BART fare reduction","archived":false,"fork":false,"pushed_at":"2016-12-12T08:05:13.000Z","size":744,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-10T18:43:59.770Z","etag":null,"topics":["algorithm","bart","flask","linear-programming","numpy","python","scipy"],"latest_commit_sha":null,"homepage":"https://brennan.io/2016/07/23/bart-fare-hacking/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brenns10.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2016-07-21T17:13:47.000Z","updated_at":"2024-07-03T16:43:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"60f11bc9-6fe4-4828-b1a3-90fe9696d2cf","html_url":"https://github.com/brenns10/bart","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/brenns10/bart","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brenns10%2Fbart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brenns10%2Fbart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brenns10%2Fbart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brenns10%2Fbart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brenns10","download_url":"https://codeload.github.com/brenns10/bart/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brenns10%2Fbart/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259796304,"owners_count":22912688,"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":["algorithm","bart","flask","linear-programming","numpy","python","scipy"],"created_at":"2024-11-06T21:37:27.914Z","updated_at":"2025-06-14T09:38:16.095Z","avatar_url":"https://github.com/brenns10.png","language":"JavaScript","readme":"BART Fare \"Hacking\"\n===================\n\nThis is a demonstration of some really cool algorithm concepts, applied to the\nSan Francisco BART system. The idea is to \"swap\" tickets among train riders so\nthat the trips appear shorter and everyone's fares go down. You can find a\nbetter description of the\nidea [here](https://brennan.io/2016/07/23/bart-fare-hacking/).\n\nThis program is a server that runs a very rudimentary API and a Javascript\nfrontend program for the server. You can do simple experiments with small\namounts of riders, or you can run large-scale experiments on real BART data. You\ncan test it all out for yourself:\n\n    pip install -r requirements-dev.txt\n    export FLASK_APP=bart/app.py\n    export FLASK_DEBUG=1\n    flask run --host=0.0.0.0\n\nEthics\n------\n\nThis is an academic demonstration of modeling a real-world problem as an\noptimization problem, formulating it as an integer linear program, and using the\nresulting formulation as the basis for an algorithm.\n\nThis app, if it were real, would steal from a public transportation system. That\nis wrong. However, this app could never be real for several reasons:\n\n1. You would need to be able to swap tickets and cards electronically. This\n   currently is not practical.\n2. To successfully reduce fares, this system needs many users. To gain users,\n   this system needs to demonstrate that it can reduce their fares. It is nearly\n   impossible for an app like this to gain traction.\n3. No curated app store would host an app that games the BART system. No\n   distribution means no adoption.\n4. It would not be hard for BART to mitigate this quickly.\n\nSo at the end of the day, this is a harmless exercise in algorithms.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrenns10%2Fbart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrenns10%2Fbart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrenns10%2Fbart/lists"}