{"id":22363830,"url":"https://github.com/xrahul/notifyavailability","last_synced_at":"2025-10-29T02:38:43.485Z","repository":{"id":32331042,"uuid":"132264456","full_name":"xRahul/NotifyAvailability","owner":"xRahul","description":"React Native App to check when a string has appeared on a webpage.","archived":false,"fork":false,"pushed_at":"2024-11-14T07:00:06.000Z","size":8731,"stargazers_count":4,"open_issues_count":50,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-14T08:17:21.902Z","etag":null,"topics":["android","async-await","background-task","es6","ios","notifications","react-native"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xRahul.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":"2018-05-05T16:16:50.000Z","updated_at":"2022-10-09T07:03:07.000Z","dependencies_parsed_at":"2023-01-14T21:00:52.219Z","dependency_job_id":"6c943b99-d69c-4f9d-a366-670fbea619d6","html_url":"https://github.com/xRahul/NotifyAvailability","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xRahul%2FNotifyAvailability","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xRahul%2FNotifyAvailability/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xRahul%2FNotifyAvailability/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xRahul%2FNotifyAvailability/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xRahul","download_url":"https://codeload.github.com/xRahul/NotifyAvailability/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228153994,"owners_count":17877706,"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":["android","async-await","background-task","es6","ios","notifications","react-native"],"created_at":"2024-12-04T17:17:19.511Z","updated_at":"2025-10-29T02:38:43.398Z","avatar_url":"https://github.com/xRahul.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n# NotifyAvailability\n\n\n[![GitHub license](https://img.shields.io/github/license/xRahul/NotifyAvailability.svg)](https://github.com/xRahul/NotifyAvailability/blob/master/License.txt)\n[![Build Status](https://travis-ci.org/xRahul/NotifyAvailability.svg?branch=master)](https://travis-ci.org/xRahul/NotifyAvailability)\n[![Releases](https://img.shields.io/github/release/xRahul/NotifyAvailability.svg)](https://github.com/xRahul/NotifyAvailability/releases/latest)\n[![libraries.io](https://img.shields.io/librariesio/github/xRahul/NotifyAvailability.svg)](https://libraries.io/github/xRahul/NotifyAvailability)\n\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/e1399210d8914483a7d5ecde14665376)](https://www.codacy.com/app/xRahul/NotifyAvailability)\n[![Codeclimate Maintainability](https://api.codeclimate.com/v1/badges/5ff836f879789d82ce9b/maintainability)](https://codeclimate.com/github/xRahul/NotifyAvailability/maintainability)\n[![CodeFactor](https://www.codefactor.io/repository/github/xrahul/notifyavailability/badge)](https://www.codefactor.io/repository/github/xrahul/notifyavailability)\n[![codebeat badge](https://codebeat.co/badges/16954f1e-823a-445e-889f-fa197830b21e)](https://codebeat.co/projects/github-com-xrahul-notifyavailability-master)\n\n[![SonarCloud Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=NotifyAvailability%3Aapp\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=NotifyAvailability%3Aapp)\n[![SonarCloud Bugs](https://sonarcloud.io/api/project_badges/measure?project=NotifyAvailability%3Aapp\u0026metric=bugs)](https://sonarcloud.io/dashboard?id=NotifyAvailability%3Aapp)\n[![SonarCloud Maintainability](https://sonarcloud.io/api/project_badges/measure?project=NotifyAvailability%3Aapp\u0026metric=sqale_rating)](https://sonarcloud.io/dashboard?id=NotifyAvailability%3Aapp)\n[![SonarCloud Security](https://sonarcloud.io/api/project_badges/measure?project=NotifyAvailability%3Aapp\u0026metric=security_rating)](https://sonarcloud.io/dashboard?id=NotifyAvailability%3Aapp)\n[![SonarCloud Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=NotifyAvailability%3Aapp\u0026metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=NotifyAvailability%3Aapp)\n\n\n### Overview\n\n* This app takes input from the user to set up background periodic check of a webpage for a text.\n* It creates a background task to notify the user if a text is present on the web page or not.\n* This task is executed repeatedly once every ~15 mins depending on the OS.\n* It will also show the time check was last made.\n\n#### Input Criteria\n\n* This app asks the user for a `URL` and a `search text`.\n* You can also set whether to get notification when search text `is present` on the webpage or when it `is absent`.\n* You can set the webpage type to be `desktop` or `mobile` to get different html accordingly.\n* You can set the search to be `case sensitive` or `case insensitive`.\n\n### Tech Stack\n\n* React Native\n  * react-native-background-timer\n  * react-native-push-notification\n* moment.js\n\n### Testing\n\n* Tested on Android only.\n* iOS testing is pending (device unavailable)\n\n### Steps to execute Locally\n\n* You would need android tools and java\n* Generate a Key by following: [https://facebook.github.io/react-native/docs/signed-apk-android.html](https://facebook.github.io/react-native/docs/signed-apk-android.html)\n* run `yarn` to install dependencies\n* run on connected android device using: `react-native run-android`\n* build the signed apks using: `cd android \u0026\u0026 ./gradlew assembleRelease`\n\n### Use Case\n\nOne use case is that we enter the URL of a movie booking website to get notified when it opens booking for a Cinema on the day we want.\n\n![Movie Booking Use Case](screenshots/movie-use-case-notify-availability.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxrahul%2Fnotifyavailability","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxrahul%2Fnotifyavailability","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxrahul%2Fnotifyavailability/lists"}