{"id":15770502,"url":"https://github.com/benelan/carpool","last_synced_at":"2026-01-31T04:32:54.861Z","repository":{"id":44177521,"uuid":"219563240","full_name":"benelan/carpool","owner":"benelan","description":"App for connecting colleagues to carpool based on office hours and commute proximity.","archived":false,"fork":false,"pushed_at":"2023-02-01T17:56:55.000Z","size":1445,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-11T15:46:39.592Z","etag":null,"topics":["arcgis","bootstrap","esri","express","gis","mongodb","nodejs","react","webapp"],"latest_commit_sha":null,"homepage":"","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/benelan.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}},"created_at":"2019-11-04T17:56:35.000Z","updated_at":"2024-07-09T10:19:21.000Z","dependencies_parsed_at":"2023-02-17T09:01:06.388Z","dependency_job_id":null,"html_url":"https://github.com/benelan/carpool","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/benelan/carpool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benelan%2Fcarpool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benelan%2Fcarpool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benelan%2Fcarpool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benelan%2Fcarpool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/benelan","download_url":"https://codeload.github.com/benelan/carpool/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benelan%2Fcarpool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28929701,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T04:05:25.756Z","status":"ssl_error","status_checked_at":"2026-01-31T04:02:35.005Z","response_time":128,"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":["arcgis","bootstrap","esri","express","gis","mongodb","nodejs","react","webapp"],"created_at":"2024-10-04T14:42:20.658Z","updated_at":"2026-01-31T04:32:54.844Z","avatar_url":"https://github.com/benelan.png","language":"JavaScript","readme":"# Carpool\nA carpool matcher app that connects employees based on their office hours. Check out the `spatial` branch for a more advanced solution. The `spatial` branch creates a route from the user's home to their office. The user can then spatially filter the results table by creating a buffer around their route and finding colleagues that intersect the buffer. The `spatial` branch uses ArcGIS Online as the backend api.\n\n## Using the App\nTo get started, you will need to set up an application with [ArcGIS for Developers](https://developers.arcgis.com/documentation/core-concepts/security-and-authentication/accessing-arcgis-online-services/) in order to implement the authentication. Alternatively, you can choose to use a different [Passport Stragegy](https://www.passportjs.org/packages/) and make some changes to `api/index.js` [file](https://github.com/benelan/carpool/blob/master/api/index.js#L14).\n\nNext, if you don't have one, create an account at [mongoDB Atlas](https://docs.atlas.mongodb.com/getting-started/). Once you set up your account, you will need to create a file in the api directory of this application called '.env'. In the file, add:\n\n```\nDB_ROUTE=\u003cCONNECTION STRING PROVIDED BY ATLAS\u003e\nSESSION_SECRET=\u003cRANDOM STRING\u003e\nARCGIS_CLIENT_ID=\u003cCLIENT FROM AN ARCGIS APP\u003e\nARCGIS_CLIENT_SECRET=\u003cCLIENT_SECRET FROM AN ARCGIS APP\u003e\nPORT=3001\n```\n\nTo run the web app you must have [Node](https://nodejs.org/en/) installed. With Node installed, navigate to the client folder of the app and type:\n\n```\nnpm install\nnpm run build\n```\nThen navigate to the api folder and type:\n```\nnpm install\nnodemon index.js\n```\nThe app should start at http://localhost:3001\n\n## TODO\nTo do list\n- [x] structure app - MVC\n- [x] Set up database/odm - MongoDB/Mongoose\n- [x] Create user model\n- [x] Create user settings controller\n- [x] Create React forms component for user settings\n- [x] Create React data table component\n- [x] Filter results table based on distance, time, and driver/passenger\n- [x] Create React home/info page\n- [x] Set up jwt or [passport](http://www.passportjs.org/packages/passport-oauth2/)\n- [ ] Impmlement a [time range slider](http://react-component.github.io/slider/examples/range.html) for filtering the results\n- [x] Create option to remove yourself from list\n- [ ] Consider filter algorithm rework: what if people's filters do not match up?\n- [ ] Stop procrastinating\n\n## Built With MERN Stack\n* [MongoDB](https://www.mongodb.com/) - Database\n* [Mongoose](https://mongoosejs.com/) - ODM\n* [Express](https://expressjs.com/) - Backend Framework\n* [Express Session](https://github.com/expressjs/session) - Sessions for Express\n* [React](https://reactjs.org/) - Frontend Framework\n* [Reactstrap](https://reactstrap.github.io/) - Bootstrap for React\n* [Node](https://nodejs.org/en/) - Backend\n\n### Other Packages\n* [axios](https://github.com/axios/axios) - REST Requests\n* [body-parser](https://www.npmjs.com/package/body-parser) - Reading Forms\n* [cookie-parser](https://github.com/expressjs/cookie-parser) - Reading Sessions\n* [connect-mongo](https://github.com/jdesboeufs/connect-mongo) - MongoDB Session Store\n* [compression](https://www.npmjs.com/package/compression) - Route Compression\n* [helmet](https://helmetjs.github.io/) - Express Security Headers\n* [moment](https://momentjs.com/) - Time/Date Util\n* [moment-range](https://github.com/rotaready/moment-range) - Ranges for Moment\n* [mobx](https://mobx.js.org/) - Data Store\n* [mobx react](https://github.com/mobxjs/mobx-react) - MobX for React\n* [passport](http://www.passportjs.org/) - Auth\n* [passport-arcgis](http://www.passportjs.org/packages/passport-arcgis/) - Passport for ArcGIS\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenelan%2Fcarpool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenelan%2Fcarpool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenelan%2Fcarpool/lists"}