From 5252cd9746b4ac55e9ce068ebbb91eeabe6766cf Mon Sep 17 00:00:00 2001 From: jdmedlock Date: Tue, 16 Apr 2019 19:10:30 -0500 Subject: [PATCH] Feature: Add GitHub Status app specification Add GitHub Status app specification Resolves: N/a See also: N/a --- Projects/GitHub-Status-App.md | 54 +++++++++++++++++++++++++++++++++++ README.md | 1 + 2 files changed, 55 insertions(+) create mode 100644 Projects/GitHub-Status-App.md diff --git a/Projects/GitHub-Status-App.md b/Projects/GitHub-Status-App.md new file mode 100644 index 00000000..c51e0a88 --- /dev/null +++ b/Projects/GitHub-Status-App.md @@ -0,0 +1,54 @@ +# GitHub Status + +**Tier:** 1-Beginner + +Web apps acquire data in many ways. Through user input in web pages, through +API's to backend systems, from files and databases, and sometimes by "scraping" +websites. The objective of the GitHub Status app is to introduce you to one +way to scrape information from another web site. + +GitHub Status uses the NPM Request package to retrieve the current GitHub site +status from the [GitHub Status](https://www.githubstatus.com/) web site. The +Request package allows websites to be retrieved not to a browser window, but +as a JSON document that can be readily accessed by your code. + +Although this application specification relies heavily on Javascript, feel free +to develop it using your language of choice! + +## User Stories + +- [ ] User can see the current status for GitHub Git operations, API Requests, +Operational Issues, PRs, Dashboard, & Projects, Operational Notifications, +Operational Gists, and Operational GitHub Pages as a list in the main app +window. +- [ ] User can retrieve the most recent status from the GitHub Status web +site by clicking a 'Get Status' button. + +## Bonus features + +- [ ] User can see any of the GitHub components that are not in 'Operational' +status highlighted by a different color, background animation, or any other +technique to make it stand out. Use your imagination! + +## Useful links and resources + +- [Web Scraping (Wikipedia)](https://en.wikipedia.org/wiki/Web_scraping) +- [NPM Request](https://www.npmjs.com/package/request) +- [Javascript JSON (MDN)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON) +- [Javascript Object Notation](https://json.org/) +- Hint! You can use the following code to display the JSON for the GitHub Status +web site page from the command line command `node ghstatus`. You can use this +output to determine which JSON element contain the status information you'll +need to develop this app. +``` +ghstatus.js + +const request = require('request'); +request('https://www.githubstatus.com/', { json: true }, (err, res, body) => { + console.log(body); +}); +``` + +## Example projects + +N/a diff --git a/README.md b/README.md index a2c06aec..56cd1a6f 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ required to complete them. | [🌟Countdown Timer](./Projects/Countdown-Timer-App.md) | Event Countdown timer | 1-Beginner | | [CSV2JSON App](./Projects/CSV2JSON-App.md) | CSV to JSON converter | 1-Beginner | | [Flip Image](./Projects/Flip-Image-App.md) | Change the orientation of images across two axes | 1-Beginner | +| [🌟GitHub Status](./Projects/GitHub-Status-App.md) | Display Current GitHub Status | 1-Beginner | | [JSON2CSV App](./Projects/JSON2CSV-App.md) | JSON to CSV converter | 1-Beginner | | [🌟Key Value](./Projects/Key-Value-App.md) | Keyboard Event Values | 1-Beginner | | [Lorem Ipsum Generator](./Projects/Lorem-Ipsum-Generator.md) | Generate lorem ipsum placeholder text | 1-Beginner |