{"id":17008303,"url":"https://github.com/luavixen/covidoccupancytracker","last_synced_at":"2026-05-07T10:34:03.593Z","repository":{"id":143958551,"uuid":"270536952","full_name":"luavixen/CovidOccupancyTracker","owner":"luavixen","description":"Webapp for tracking the number of people in a building, designed for a specific grocery store chain.","archived":false,"fork":false,"pushed_at":"2020-07-15T23:34:48.000Z","size":504,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-26T09:33:27.293Z","etag":null,"topics":["firebase","firebase-database","firestore","typescript","vue","vuex","web-app","web-application"],"latest_commit_sha":null,"homepage":"https://cot-demo.netlify.app/","language":"Vue","has_issues":false,"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/luavixen.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":"2020-06-08T05:09:46.000Z","updated_at":"2025-02-19T20:23:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"f1b6d9ae-fcb9-4057-a0d6-f63503ded22e","html_url":"https://github.com/luavixen/CovidOccupancyTracker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/luavixen/CovidOccupancyTracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luavixen%2FCovidOccupancyTracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luavixen%2FCovidOccupancyTracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luavixen%2FCovidOccupancyTracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luavixen%2FCovidOccupancyTracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luavixen","download_url":"https://codeload.github.com/luavixen/CovidOccupancyTracker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luavixen%2FCovidOccupancyTracker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32733645,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["firebase","firebase-database","firestore","typescript","vue","vuex","web-app","web-application"],"created_at":"2024-10-14T05:27:58.939Z","updated_at":"2026-05-07T10:34:03.580Z","avatar_url":"https://github.com/luavixen.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\nCovidOccupancyTracker\n\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\u003ci\u003e\nWebapp for tracking the number of people in a building, designed for a specific grocery store chain.\n\u003c/i\u003e\u003c/p\u003e\n\n## Introduction\nThe CovidOccupancyTracker *\\\u003cCOT\\\u003e* is a website that facilitates the accurate counting of the number of people currently in a building where every entrance/exit is staffed with someone like a \"greeter\".\nAll greeters can increase/decrease/set the number of people in the store, incrementing the number when somebody enters and decrementing the number when somebody leaves.\nThe changes are synced over the internet, allowing an accurate count even if someone were to enter from one door and leave out the other, or if greeters need to switch (shift change).\n\nHow about a [live demo](https://cot-demo.netlify.app/)?\n\n## Screenshots\n### Desktop\n![](./screenshots/desktop-1.png)\n![](./screenshots/desktop-2.png)\n![](./screenshots/desktop-3.png)\n\n### Mobile\n|                                 |                                 |\n| ------------------------------- | ------------------------------- |\n| ![](./screenshots/mobile-1.png) | ![](./screenshots/mobile-2.png) |\n\n\n## Technology\nCOT is written in [TypeScript](https://www.typescriptlang.org/), a superset of [JavaScript](https://wikipedia.org/wiki/JavaScript). It uses the [Vue.js](https://vuejs.org/) framework for rendering its user interface and the [Vuex](https://vuex.vuejs.org/) state management library for keeping track of program state. The internet syncing capabilities are powered by the [Google Firebase Firestore](https://firebase.google.com/) database, COT uses Firestore's snapshot listener features for automatic updating on all clients and the Firestore `FieldValue` system for atomic updates.\n\n## Setup\nBefore downloading the source code for COT, you must create a Firebase project with Firebase Firestore (required) and possibly Firebase Analytics/Firebase Performance (optional).\nFor more information, start [here](https://firebase.google.com/docs/web/setup).\n\nTo setup a development environment for COT, please make sure you have the following tools installed:\n - Git\n - Node.js\n - NPM\n\nThen, in a compatible shell, run these commands to clone and set up the repository:\n```sh\ngit clone https://github.com/luawtf/CovidOccupancyTracker\ncd CovidOccupancyTracker\nnpm install\n```\n\nNow create a new file called `config.ts` in the `src/` folder:\n```sh\ntouch src/config.ts\n```\nAnd open the newly created configuration file with your favorite text editor, then fill it out to look something like this example:\n```typescript\nimport { LocationConfiguration } from \"@/locations\";\n\n// Locations to present to the user\nexport const locationConfig: LocationConfiguration = [\n\t{ id: \"wvan\",\t\tname: \"Park Royal\",\t\tstreet: \"Main St\", default: true },\n\t{ id: \"nvan\",\t\tname: \"North Vancouver\",\tstreet: \"13th St\"\t},\n\t{ id: \"robson\",\t\tname: \"Downtown\",\t\tstreet: \"Robson St\"\t}\n];\n\n// Firebase configuration object\nexport const firebaseConfig = {\n\tapiKey: \"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\",\n\tauthDomain: \"XXXXXXXXXXXXXX.firebaseapp.com\",\n\tdatabaseURL: \"https://XXXXXXXXXXXXXX.firebaseio.com\",\n\tprojectId: \"XXXXXXXXXXXXXX\",\n\tstorageBucket: \"XXXXXXXXXXXXXX.appspot.com\",\n\tmessagingSenderId: \"XXXXXXXXXXXX\",\n\tappId: \"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\"\n};\n\n// Optional Firebase features\nexport const firebaseFeatures = {\n\tanalytics: false,\n\tperformance: false\n};\n```\n\nFinally, start the development server!\n```sh\nnpm run serve\n# or for production\nnpm run build\n```\n\n## Contributing\nNo contributions are being accepted to this repository at this time.\nHowever, please consider making a fork of this repository on GitHub if you wish to change something.\n\n## Authors\nMade with ❤ by Lua MacDougall ([lua.wtf](https://lua.wtf/))\n\n## License\nThis project is licensed under [MIT](LICENSE).\nMore info in the [LICENSE](LICENSE) file.\n\n*\"A short, permissive software license. Basically, you can do whatever you want as long as you include the original copyright and license notice in any copy of the software/source. There are many variations of this license in use.\"* - [tl;drLegal](https://tldrlegal.com/license/mit-license)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluavixen%2Fcovidoccupancytracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluavixen%2Fcovidoccupancytracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluavixen%2Fcovidoccupancytracker/lists"}