{"id":22321283,"url":"https://github.com/lindronics/gym_bot","last_synced_at":"2026-04-18T02:02:56.309Z","repository":{"id":47100734,"uuid":"357981148","full_name":"Lindronics/gym_bot","owner":"Lindronics","description":"Web scraper bot with database and web application for fetching, analysing, and displaying the number of visitors at my local gym over time.","archived":false,"fork":false,"pushed_at":"2021-09-15T10:37:18.000Z","size":1361,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-01-31T06:34:38.811Z","etag":null,"topics":["angular","aws","firebase","scraper"],"latest_commit_sha":null,"homepage":"https://gymbot-6464d.web.app/","language":"TypeScript","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/Lindronics.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}},"created_at":"2021-04-14T17:03:03.000Z","updated_at":"2021-09-15T18:00:16.000Z","dependencies_parsed_at":"2022-08-24T05:20:32.090Z","dependency_job_id":null,"html_url":"https://github.com/Lindronics/gym_bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lindronics%2Fgym_bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lindronics%2Fgym_bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lindronics%2Fgym_bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lindronics%2Fgym_bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lindronics","download_url":"https://codeload.github.com/Lindronics/gym_bot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245591616,"owners_count":20640692,"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":["angular","aws","firebase","scraper"],"created_at":"2024-12-04T00:17:33.830Z","updated_at":"2026-04-18T02:02:51.289Z","avatar_url":"https://github.com/Lindronics.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gym Bot\n\n[![AWS CloudFormation deploy](https://github.com/Lindronics/gym_bot/actions/workflows/aws_deploy.yml/badge.svg)](https://github.com/Lindronics/gym_bot/actions/workflows/aws_deploy.yml)\n[![Deploy to Firebase Hosting on merge](https://github.com/Lindronics/gym_bot/actions/workflows/firebase-hosting-merge.yml/badge.svg)](https://github.com/Lindronics/gym_bot/actions/workflows/firebase-hosting-merge.yml)\n\nGoing to the gym when it is too busy sucks. My local gym has a website that displays the number of current visitors, but no further information.\n\nThat's why I wrote a web scraper bot which fetches the number of current visitors from the website every 30 minutes and stores the data in a database for better analysis.\n\nI also wrote a simple web app which can query and display the data on any edge device.\n\n👉 [Link to web app](https://gymbot-6464d.web.app/) 👈\n\n## Architecture\n\nThe scraper, DB, and backend are hosted on AWS. The frontend is an Angular web application hosted on Firebase.\n\nAll deployments are automated using Github Actions to invoke CloudFormation or Firebase deploy.\n\n![Architecture overview](https://i.ibb.co/p3Rxqjs/architecture.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flindronics%2Fgym_bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flindronics%2Fgym_bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flindronics%2Fgym_bot/lists"}