{"id":18980729,"url":"https://github.com/mdbytes/bargainbuyclub","last_synced_at":"2026-04-11T11:33:39.052Z","repository":{"id":157360150,"uuid":"242836478","full_name":"mdbytes/BargainBuyClub","owner":"mdbytes","description":"A full-stack web application utilizing Java Spring Data REST and React framework.  The applications allows users to track prices of products sold online. When prices reach a target, the user is automatically emailed an alert from the system. The application involves user registration, login, and the ability to set up new alerts.","archived":false,"fork":false,"pushed_at":"2025-10-08T15:00:10.000Z","size":25002,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-11T11:02:17.998Z","etag":null,"topics":["bootstrap5","css","java","javascript","jsp","mysql-database","online-shopping","responsive-design","servlets","track-prices","web-scraping"],"latest_commit_sha":null,"homepage":"https://bargain-buy-club.herokuapp.com/","language":"Java","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/mdbytes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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-02-24T20:29:51.000Z","updated_at":"2025-10-08T15:00:15.000Z","dependencies_parsed_at":"2025-01-01T11:21:15.131Z","dependency_job_id":"227887ee-fa18-4f14-a36f-162e4d25f936","html_url":"https://github.com/mdbytes/BargainBuyClub","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/mdbytes/BargainBuyClub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdbytes%2FBargainBuyClub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdbytes%2FBargainBuyClub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdbytes%2FBargainBuyClub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdbytes%2FBargainBuyClub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdbytes","download_url":"https://codeload.github.com/mdbytes/BargainBuyClub/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdbytes%2FBargainBuyClub/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31679477,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T08:18:19.405Z","status":"ssl_error","status_checked_at":"2026-04-11T08:17:08.892Z","response_time":54,"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":["bootstrap5","css","java","javascript","jsp","mysql-database","online-shopping","responsive-design","servlets","track-prices","web-scraping"],"created_at":"2024-11-08T16:07:36.909Z","updated_at":"2026-04-11T11:33:39.033Z","avatar_url":"https://github.com/mdbytes.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BargainBuyClub\n\nA full-stack web application designed to track prices of products sold online. When prices reach a target, the user is\nautomatically emailed an alert from the system. The application involves user registration, login, and the ability to\nset up new alerts.\n\nThe application was originally built using Python with Flask web support. However, over the past three years development\nshifted to from Python to Java EE and now Java Spring Data REST with React client.\n\nToday's edition is built with Maven support and deployed to a cloud server with a Docker container.\n\n\u003col\u003e\n\u003cli style=\"margin-bottom: 8px\"\u003eIt is built with a Java Spring Data REST server and a React framework client.\u003c/li\u003e\n\u003cli style=\"margin-bottom: 8px\"\u003eData is stored in a MySQL database on a cloud server, accessed through Spring Data REST repositories.\u003c/li\u003e\n\u003cli style=\"margin-bottom: 8px\"\u003eUser inputs are validated at the server and client levels. \u003c/li\u003e\n\u003cli style=\"margin-bottom: 8px\"\u003eThe application is built using JavaScript and Bootstrap frameworks.\u003c/li\u003e\n\u003cli style=\"margin-bottom: 8px\"\u003eSpecial JavaScript features include the ability to reveal forms for editing and deleting alerts or users.\u003c/li\u003e\n\u003cli style=\"margin-bottom: 8px\"\u003eThis demo uses the JSOUP API to parse product page html content in order to retrieve the product price and name from the URL alone. Future releases could easily adapt store API's to retrieve current price data.\u003c/li\u003e\n\u003cli style=\"margin-bottom: 8px\"\u003eEmail notifications are sent to users via the SendGrid email API.\u003c/li\u003e\n\u003cli style=\"margin-bottom: 8px\"\u003eScreenshots of the application running are also provided in the root folder.\u003c/li\u003e\n\u003cli style=\"margin-bottom: 8px\"\u003eDiagrams used in the development of this application can be found in the diagrams folder of the root directory.\u003c/li\u003e\n\u003cli style=\"margin-bottom: 8px\"\u003eThe application is deployment using docker container and NGINX proxy server for security.\u003c/li\u003e\n\n\u003c/ol\u003e\n\nCurrent development is focused on:\n\n\u003col\u003e\n\u003cli style=\"margin-bottom: 8px\"\u003eExpanding the number of stores supported utilizing store API's as available (e.g. Amazon).\u003c/li\u003e\n\u003c/ol\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdbytes%2Fbargainbuyclub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmdbytes%2Fbargainbuyclub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdbytes%2Fbargainbuyclub/lists"}