{"id":25065698,"url":"https://github.com/programming-sai/sakaialerts","last_synced_at":"2026-05-09T02:10:08.505Z","repository":{"id":226833632,"uuid":"769399320","full_name":"Programming-Sai/SakaiAlerts","owner":"Programming-Sai","description":"The purpose of SakaiAlerts is to provide users with a convenient way to access and view alerts from the Sakai portal ","archived":false,"fork":false,"pushed_at":"2024-07-02T10:56:50.000Z","size":10231,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-31T13:32:38.854Z","etag":null,"topics":["background-jobs","kivy","selenium"],"latest_commit_sha":null,"homepage":"","language":"Python","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/Programming-Sai.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,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-03-09T01:12:19.000Z","updated_at":"2025-02-05T13:24:48.000Z","dependencies_parsed_at":"2024-03-23T18:27:55.403Z","dependency_job_id":null,"html_url":"https://github.com/Programming-Sai/SakaiAlerts","commit_stats":null,"previous_names":["programming-sai/sakaialerts"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Programming-Sai/SakaiAlerts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Programming-Sai%2FSakaiAlerts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Programming-Sai%2FSakaiAlerts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Programming-Sai%2FSakaiAlerts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Programming-Sai%2FSakaiAlerts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Programming-Sai","download_url":"https://codeload.github.com/Programming-Sai/SakaiAlerts/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Programming-Sai%2FSakaiAlerts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278703585,"owners_count":26031205,"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","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["background-jobs","kivy","selenium"],"created_at":"2025-02-06T19:44:47.984Z","updated_at":"2025-10-07T00:46:18.953Z","avatar_url":"https://github.com/Programming-Sai.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# \u003cimg src=\"icon.png\" alt=\"Image-Icon\" style=\"vertical-align: middle; width: 60px;margin-right: 30px\"\u003e SakaiAlerts\n\n## Introduction\n\nThis repository hosts an application designed to scrape and display alerts from the Sakai web portal. Sakai is a popular online learning and collaboration platform used by educational institutions.\n\n## Purpose\nThe purpose of SakaiAlerts is to provide users with a convenient way to access and view alerts from the Sakai portal in a centralized application. By scraping the portal for alerts, users can stay informed about important announcements, assignments, or any other updates without manually checking the Sakai website.\n\n\n\n        \n\n## Setup Instructions\n\n### Clone the Repository\n\n```bash\ngit clone https://github.com/Programming-Sai/SakaiAlerts.git\n```\n\n\n### Inspection \n\n1. Navigate to the project directory.\n2. Install the required dependencies by running the following command in the terminal:\n\n```bash\npip install -r requirements.txt\n```\n\nor\n\n```bash\npip3 install -r requirements.txt\n```\nThis command will install all the dependencies specified in the requirements.txt file.\nMake sure they have Python and pip installed on your system before running the command. \n\n3. Open the `main.py` file and run it. Avoid modifying the JSON files for credentials.\n\n##\n\n\n\n\n## Background Notification Feature\n\nSakaiAlerts also includes a background notification feature to enhance user experience and keep them informed about important alerts even when the application is not actively open. This feature allows the application to run in the background and periodically check for new alerts on the Sakai portal. When new alerts are detected, users receive notifications, providing a seamless way to stay updated without manual intervention.\n\n### How It Works\n\nThe background notification feature utilizes a separate Python script (`background_notify.py`) to periodically scrape the Sakai portal for new alerts. This script runs independently in the background, allowing users to continue their work without disruptions.\n\n\n- The background notification process starts automatically when the main application is run.\n- Users will receive notifications for new alerts even if the main application is closed.\n- Ensure that the background script (`background_notify.py`) and (`credentials.json`) are not modified recklessly for the proper functioning of the background notification feature.\n- Also if for some reason, the background process is to be terminated, there is a function that restarts it again, ensuring a seamlessly infinte bacground process,\n\n\n\n\n\n## Screenshots\n\n| Dark Mode                                             | Light Mode                                             |\n|--------------------------------------------------------|--------------------------------------------------------|\n| \u003cimg src=\"Screenshots/1.png\" alt=\"New Alerts Screen (with some content)\" width=\"450\"\u003e | \u003cimg src=\"Screenshots/13.png\" alt=\"New Alerts Screen (with some content)\" width=\"450\"\u003e |\n| \u003cimg src=\"Screenshots/2.png\" alt=\"Scraping error in Dark Mode\" width=\"450\"\u003e | \u003cimg src=\"Screenshots/11.png\" alt=\"Scraping error in Light Mode\" width=\"450\"\u003e |\n| \u003cimg src=\"Screenshots/6.png\" alt=\"During scraping process in Dark Mode\" width=\"450\"\u003e | \u003cimg src=\"Screenshots/15.png\" alt=\"During scraping process in Light Mode\" width=\"450\"\u003e |\n| \u003cimg src=\"Screenshots/7.png\" alt=\"Empty alerts in Dark Mode\" width=\"450\"\u003e | \u003cimg src=\"Screenshots/8.png\" alt=\"Empty alerts in Light Mode\" width=\"450\"\u003e |\n| \u003cimg src=\"Screenshots/5.png\" alt=\"Cleared history in Dark Mode\" width=\"450\"\u003e | \u003cimg src=\"Screenshots/12.png\" alt=\"Cleared history in Light Mode\" width=\"450\"\u003e |\n| \u003cimg src=\"Screenshots/3.png\" alt=\"Alerts with content in Dark Mode\" width=\"450\"\u003e | \u003cimg src=\"Screenshots/14.png\" alt=\"Alerts with content in Light Mode\" width=\"450\"\u003e |\n| \u003cimg src=\"Screenshots/4.png\" alt=\"Login Info Screen in Dark Mode\" width=\"450\"\u003e | \u003cimg src=\"Screenshots/9.png\" alt=\"Login Info Screen in Light Mode\" width=\"450\"\u003e |\n\n\n## App Guidelines\n\n### New Alerts Screen\n\n- Click the \"Scrape \u0026 Refresh\" button to initiate the scraping process from the Sakai portal.\n- Avoid opening alerts while scraping to prevent potential issues.\n- If an error popup appears during scraping, ensure a stable internet connection. If the issue persists, re-enter login details. If still unsuccessful, manually edit the `credentials.json` file.\n\n\n### Login Info Screen\n\n- Enter login details carefully to avoid errors that may lead to scraping issues.\n- If scraping fails, verify login details and, if necessary, update them in the `credentials.json` file.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprogramming-sai%2Fsakaialerts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprogramming-sai%2Fsakaialerts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprogramming-sai%2Fsakaialerts/lists"}