From 24f92520621fa7d42c4c53d28029545be21f02f0 Mon Sep 17 00:00:00 2001 From: Florin Pop Date: Thu, 25 Apr 2019 06:03:36 +0300 Subject: [PATCH 1/9] removed stars from older apps --- README.md | 66 +++++++++++++++++++++++++++---------------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 7eefbf0e..8a50a649 100644 --- a/README.md +++ b/README.md @@ -43,44 +43,44 @@ required to complete them. | ---------------------------------------------------------------------- | --------------------------------------------------------- | ---------- | | [Bin2Dec](./Projects/Bin2Dec-App.md) | Binary-to-Decimal number converter | 1-Beginner | | [Border Radius Previewer](./Projects/Border-Radius-Previewer.md) | Preview how CSS3 border-radius values affect an element | 1-Beginner | -| [🌟Calculator](./Projects/Calculator-App.md) | Calculator | 1-Beginner | +| [Calculator](./Projects/Calculator-App.md) | Calculator | 1-Beginner | | [Christmas Lights](./Projects/Christmas-Lights-App.md) | Simulate a string of Christmas lights | 1-Beginner | | [Cause Effect App](./Projects/Cause-Effect-App.md) | Click list item to display item details | 1-Beginner | | [Color Cycle](./Projects/Color-Cycle-App.md) | Cycle a color value through incremental changes | 1-Beginner | -| [🌟Countdown Timer](./Projects/Countdown-Timer-App.md) | Event Countdown timer | 1-Beginner | +| [🌟Countdown Timer](./Projects/Countdown-Timer-App.md) | Event Countdown timer | 1-Beginner | | [CSV2JSON App](./Projects/CSV2JSON-App.md) | CSV to JSON converter | 1-Beginner | -| [🌟Dynamic CSS Variables](./Projects/Dynamic-CSSVar-app.md) | Dynamically change CSS variable settings | 1-Beginner | +| [🌟Dynamic CSS Variables](./Projects/Dynamic-CSSVar-app.md) | Dynamically change CSS variable settings | 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 | +| [🌟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 | -| [Notes App](./Projects/Notes-App.md) | Create an online note pad | 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 | +| [Notes App](./Projects/Notes-App.md) | Create an online note pad | 1-Beginner | | [Pomodoro Clock](./Projects/Pomodoro-Clock.md) | Task timer to aid personal productivity | 1-Beginner | | [:star2: Product Landing Page](./Projects/Product-Landing-Page.md) | Showcase product details for possible buyers | 1-Beginner | | [Quiz App](./Projects/Quiz-App.md) | Test your knowledge by answering questions | 1-Beginner | -| [🌟Recipe App](./Projects/Recipe-App.md) | Recipe | 1-Beginner | -| [Roman to Decimal Converter](./Projects/Roman-to-Decimal-Converter.md) | Convert Roman to Decimal numbers | 1-Beginner | +| [Recipe App](./Projects/Recipe-App.md) | Recipe | 1-Beginner | +| [Roman to Decimal Converter](./Projects/Roman-to-Decimal-Converter.md) | Convert Roman to Decimal numbers | 1-Beginner | | [Slider Design](./Projects/Slider-Design.md) | Display images using a slider control | 1-Beginner | | [:star2: Stopwatch App](./Projects/Stopwatch-App.md) | Count time spent on activities | 1-Beginner | | [TrueOrFalse](./Projects/True-or-False-App.md) | Identify the result of a conditional comparison | 1-Beginner | | [Wind Chill](./Projects/Windchill-App.md) | Calculate the windchill factor from an actual temperature | 1-Beginner | -| [🌟Word Frequency](./Projects/Word-Frequency-App.md) | Calculate word frequency in a block of text | 1-Beginner | +| [🌟Word Frequency](./Projects/Word-Frequency-App.md) | Calculate word frequency in a block of text | 1-Beginner | ### Tier-2: Intermediate Projects | Name | Short Description | Tier | | ------------------------------------------------------------------ | -------------------------------------------------- | -------------- | -| [🌟Bit Masks](./Projects/Bit-Masks-App.md) | Using Bit Masks for Conditions | 2-Intermediate | +| [🌟Bit Masks](./Projects/Bit-Masks-App.md) | Using Bit Masks for Conditions | 2-Intermediate | | [Book Finder App](./Projects/Book-Finder-App.md) | Search for books by multiple criteria | 2-Intermediate | | [Card Memory Game](./Projects/Card-Memory-Game.md) | Memorize and match hidden images | 2-Intermediate | -| [🌟Drawing App](./Projects/Drawing-App.md) | Create digital artwork on the web | 2-Intermediate | -| [🌟Emoji Translator App](./Projects/Emoji-Translator-App.md) | Translate sentences into Emoji | 2-Intermediate | +| [Drawing App](./Projects/Drawing-App.md) | Create digital artwork on the web | 2-Intermediate | +| [Emoji Translator App](./Projects/Emoji-Translator-App.md) | Translate sentences into Emoji | 2-Intermediate | | [Flashcards App](./Projects/FlashCards-App.md) | Review and test your knowledge through Flash Cards | 2-Intermediate | | [HighStriker Game](./Projects/HighStriker-Game.md) | Highstriker strongman carnival game | 2-Intermediate | | [Markdown Previewer](./Projects/Markdown-Previewer.md) | Preview text formatted in GitHub flavored markdown | 2-Intermediate | | [Markdown Table Generator](./Projects/Markdown-Table-Generator.md) | Convert a table into Markdown-formatted text | 2-Intermediate | -| [🌟Meme Generator App](./Projects/Meme-Generator-App.md) | Create custom memes | 2-Intermediate | +| [Meme Generator App](./Projects/Meme-Generator-App.md) | Create custom memes | 2-Intermediate | | [🌟Podcast Directory](./Projects/Podcast-Directory-App.md) | Directory of favorite podcasts | 2-Intermediate | | [Regular Expression Helper](./Projects/RegExp-Helper-App.md) | Test Regular Expressions | 2-Intermediate | | [🌟Simple Online Store](./Projects/Simple-Online-Store.md) | Simple Online Store | 2-Intermediate | @@ -88,28 +88,28 @@ required to complete them. | [String Art](./Projects/String-Art.md) | An animation of moving, colored strings | 2-Intermediate | | [Timezone Slackbot](./Projects/Timezone-Slackbot.md) | Display Team Timezones | 2-Intermediate | | [To-Do App](./Projects/To-Do-App.md) | Manage personal to-do tasks | 2-Intermediate | -| [🌟Typing Practice](./Projects/Typing-Practice-App.md) | Typing Practice | 2-Intermediate | +| [Typing Practice](./Projects/Typing-Practice-App.md) | Typing Practice | 2-Intermediate | ### Tier-3: Advanced Projects -| Name | Short Description | Tier | -| -------------------------------------------------------------- | ---------------------------------------------------- | ---------- | -| [Battleship Bot](./Projects/Battleship-Bot.md) | Create a Discord bot that plays Battleship | 3-Advanced | -| [Battleship Game Engine](./Projects/Battleship-Game-Engine.md) | Create a callable engine to play the Battleship game | 3-Advanced | -| [🌟Bug Race Game](./Projects/Bug-Race-Game.md) | Create a Bug Race game to show off your animation skills | 3-Advanced | -| [🌟Calorie Counter](./Projects/Calorie-Counter-App.md) | Calorie Counter Nutrion App | 3-Advanced | -| [Chat App](./Projects/Chat-App.md) | Real-time chat interface | 3-Advanced | -| [🌟Elevator](./Projects/Elevator-App.md) | Elevator simulator | 3-Advanced | -| [🌟Fast Food Simulator](./Projects/FastFood-App.md) | Fast Food Restaurant Simulator | 3-Advanced | -| [🌟Instagram Clone](./Projects/Instagram-Clone-App.md) | A clone of Facebook's Instagram app | 3-Advanced | -| [GitHub Timeline](./Projects/GitHub-Timeline-App.md) | Generate a timeline of a users GitHub Repos | 3-Advanced | -| [Kudos Slackbot](./Projects/Kudos-Slackbot.md) | Give recognition to a deserving peer | 3-Advanced | -| [🌟MyPodcast Library](./Projects/MyPodcast-Library-app.md) | Create a library of favorite podcasts | 3-Advanced | -| [🌟Shell Game](./Projects/Shell-Game.md) | Animated shell game | 3-Advanced | -| [🌟Shuffle Deck](./Projects/Shuffle-Deck-App.md) | Evaluate different algorithms for shuffling a card deck |3-Advanced | -| [Slack Archiver](./Projects/Slack-Archiver.md) | Archive Slack Messages | 3-Advanced | -| [Spell-It App](./Projects/SpellIt-App.md) | A twist on the classic Speak N Spell game | 3-Advanced | -| [Survey App](./Projects/Survey-App.md) | Define, conduct, and view a survey | 3-Advanced | +| Name | Short Description | Tier | +| -------------------------------------------------------------- | -------------------------------------------------------- | ---------- | +| [Battleship Bot](./Projects/Battleship-Bot.md) | Create a Discord bot that plays Battleship | 3-Advanced | +| [Battleship Game Engine](./Projects/Battleship-Game-Engine.md) | Create a callable engine to play the Battleship game | 3-Advanced | +| [🌟Bug Race Game](./Projects/Bug-Race-Game.md) | Create a Bug Race game to show off your animation skills | 3-Advanced | +| [🌟Calorie Counter](./Projects/Calorie-Counter-App.md) | Calorie Counter Nutrion App | 3-Advanced | +| [Chat App](./Projects/Chat-App.md) | Real-time chat interface | 3-Advanced | +| [Elevator](./Projects/Elevator-App.md) | Elevator simulator | 3-Advanced | +| [Fast Food Simulator](./Projects/FastFood-App.md) | Fast Food Restaurant Simulator | 3-Advanced | +| [🌟Instagram Clone](./Projects/Instagram-Clone-App.md) | A clone of Facebook's Instagram app | 3-Advanced | +| [GitHub Timeline](./Projects/GitHub-Timeline-App.md) | Generate a timeline of a users GitHub Repos | 3-Advanced | +| [Kudos Slackbot](./Projects/Kudos-Slackbot.md) | Give recognition to a deserving peer | 3-Advanced | +| [🌟MyPodcast Library](./Projects/MyPodcast-Library-app.md) | Create a library of favorite podcasts | 3-Advanced | +| [Shell Game](./Projects/Shell-Game.md) | Animated shell game | 3-Advanced | +| [🌟Shuffle Deck](./Projects/Shuffle-Deck-App.md) | Evaluate different algorithms for shuffling a card deck | 3-Advanced | +| [Slack Archiver](./Projects/Slack-Archiver.md) | Archive Slack Messages | 3-Advanced | +| [Spell-It App](./Projects/SpellIt-App.md) | A twist on the classic Speak N Spell game | 3-Advanced | +| [Survey App](./Projects/Survey-App.md) | Define, conduct, and view a survey | 3-Advanced | ## Plans for the future From c8802cc4557c3597a9b2a2a2069b1857d6632da6 Mon Sep 17 00:00:00 2001 From: jdmedlock Date: Thu, 25 Apr 2019 13:03:56 -0500 Subject: [PATCH 2/9] Feature: Add GitTweet app specification Add GitTweet app specification Resolves: N/a See also: N/a --- Projects/GitTweet-App.md | 72 ++++++++++++++++++++++++++++++++++++++++ README.md | 1 + 2 files changed, 73 insertions(+) create mode 100644 Projects/GitTweet-App.md diff --git a/Projects/GitTweet-App.md b/Projects/GitTweet-App.md new file mode 100644 index 00000000..f41ab5c7 --- /dev/null +++ b/Projects/GitTweet-App.md @@ -0,0 +1,72 @@ +# GitTweet + +**Tier:** 3-Advanced + +In the [GitHub Timeline](./GitHub-Timeline-App.md) app you used GitHub's API to +create a timeline of your repos. What could be more powerful that using an API +such as this? Why using two API's, of course. + +The goal of GitTweet is to create a GitHub app to tweet when a pull requst +is created for one of your repos. + +## User Stories + +- [ ] User can see an input area tabular display prepopulated with rows for +each of the GitHub repos she owns and a selection checkbox next to each repo +name, a single input date field, and a 'Scan' button. +- [ ] User can click the checkboxes in the repo list to select or deselect +repos for processing. +- [ ] User can enter a date into the date field. This defines the point after +which any new PR requests will be tweeted. +- [ ] User can click the 'Scan' button to identify repos that have had a new +PR created that has not been previously tweeted. In other words. Consecutively +entering the same date to scan from should only generate tweets for PR's that +have not yet been tweeted. +- [ ] User can see an error message if no date was entered, if it is not a +valid date, or if it is a future date. +- [ ] User can see repos highlighted if a tweet will be generated for them +and the 'Scan' button will change to 'Tweet'. +- [ ] User may deselect a repo by clicking on its checkbox. Doing this will +change the button back to 'Scan' and clicking it will repeat the search for +repos that have had new PR's (not yet tweeted) created since the scan date +entered by the user. +- [ ] User may enter an new scan date at this point which also changes the +button back to 'Scan'. +- [ ] User may click the 'Tweet' button to send a tweet bearing the following +message - `Pull Requst # created for repo - `. +- [ ] User can see this tweet send from her Twitter account. + +## Bonus features + +- [ ] User does not need to manually enter a scan date. If omitted the scan +will resume from the last scan date which must persist across sessions. +- [ ] User may enter a custom tweet message +- [ ] User repo selections will persist across sessions so they do not have +to be reselected each time. + +## Useful links and resources + +- [Twitter Developer Docs](https://developer.twitter.com/en.html) +- [GitHub Apps](https://developer.github.com/apps//) +- GitHub offers two API's you may use to access repo data. You may also choose + to use an NPM package to access the GitHub API. Documentation for the GitHub + API can be found at: + + - [GitHub REST API V3](https://developer.github.com/v3/) + - [GitHub GraphQL API V4](https://developer.github.com/v4/) + + Sample code showing how to use the GitHub API's are: + + - [GitHub REST API client for JavaScript ](https://github.com/octokit/rest.js/) + - [GitHub GraphQL API client for browsers and Node](https://github.com/octokit/graphql.js) + + You can use this CURL command to see the JSON returned by the V3 REST API for + your repos: + + ``` + curl -u "user-id" https://api.github.com/users/user-id/repos + ``` + +## Example projects + +[Zapier GitHub Integration](https://zapier.com/apps/github/integrations/twitter) diff --git a/README.md b/README.md index 8a50a649..1adc9cac 100644 --- a/README.md +++ b/README.md @@ -103,6 +103,7 @@ required to complete them. | [Fast Food Simulator](./Projects/FastFood-App.md) | Fast Food Restaurant Simulator | 3-Advanced | | [🌟Instagram Clone](./Projects/Instagram-Clone-App.md) | A clone of Facebook's Instagram app | 3-Advanced | | [GitHub Timeline](./Projects/GitHub-Timeline-App.md) | Generate a timeline of a users GitHub Repos | 3-Advanced | +| [🌟GitTweet](./Projects/GitTweet-App.md) | Automatically Tweet your repo milestones | 3-Advanced | | [Kudos Slackbot](./Projects/Kudos-Slackbot.md) | Give recognition to a deserving peer | 3-Advanced | | [🌟MyPodcast Library](./Projects/MyPodcast-Library-app.md) | Create a library of favorite podcasts | 3-Advanced | | [Shell Game](./Projects/Shell-Game.md) | Animated shell game | 3-Advanced | From c6b92264514dae44434d06d231bd918539e833da Mon Sep 17 00:00:00 2001 From: jdmedlock Date: Fri, 26 Apr 2019 16:36:33 -0500 Subject: [PATCH 3/9] Feature Add Pearson Regression app specification Add Pearson Regression app specification Resolves: N/a See also: N/a --- Projects/Pearson-Regression-App.md | 63 ++++++++++++++++++++++++++++++ README.md | 1 + 2 files changed, 64 insertions(+) create mode 100644 Projects/Pearson-Regression-App.md diff --git a/Projects/Pearson-Regression-App.md b/Projects/Pearson-Regression-App.md new file mode 100644 index 00000000..b1467f08 --- /dev/null +++ b/Projects/Pearson-Regression-App.md @@ -0,0 +1,63 @@ +# Pearson Regression + +**Tier:** 1-Beginner + +There are few, if any, applications that don't require some form of +cross-disciplinary knowledge in order to implement useful functionality for +a user. In the case of an app for the medical profession it might be domain +expertise in biology or pharmacology. A paint manufacturer or a crop science +business might rely on apps with an intimate knowledge of chemistry. And, a +payroll application will certainly incorporate HR and accounting concepts. + +Regardless of the industry segement an app is developed for one cross domain +expertise in common with them all is mathematics. As an application developer +you don't have to be a mathemetician, but it's useful to have an understanding +of how to apply mathematical concepts to the problems you are trying to solve. + +The objective of this app is to apply the Pearson Correlation Coefficient +against two sets of data to provide the user with the degree to which they +may or may not be related. For example, given a set of temperatures and another +set of car prices this would let the user test whether or not they are related +(spoiler alert: they are unrelated!). + +### Constraints + +- The Developer must program all calculations without relying on a package. + +## User Stories + +- [ ] User can see an input panel with two input fields allowing entry of `x` +and `y` coordinates, and 'Add' and 'Calculate' buttons. +- [ ] User can enter numbers into these boxes where `x` and `y` are observations +from the two data sets. +- [ ] User can click the 'Add' button to add the `x` and `y` to a tabular +output area listing the pairs of observations. +- [ ] User can see and error message if either of the two input fields are +empty or do not contain valid real numbers. +- [ ] User can see the 'Calculate' button is disabled until errors have been +corrected. +- [ ] User can click the 'Calculate' button to perform the regression analysis +and to display its results. +- [ ] User can see results of the calculation which include: + - Arithmetic means for both the `x` and `y` observations + - Standard deviations for both the `x` and `y` observations + - Pearson correlation coefficient with one of the following interpretations: + - No correlation + - Neutral + - Some correlation + +## Bonus features + +- [ ] User can see a scatter plot of the observations +- [ ] User can upload observations from a file on the local machine. +- [ ] User can see a regression line overlaying the scatter plot + +## Useful links and resources + +- [Pearson Correlation Coefficient (Wikipedia)](https://en.wikipedia.org/wiki/Pearson_correlation_coefficient) +- [Linear Regression](https://en.wikipedia.org/wiki/Linear_regression) +- [Pearson's Correlation Coefficient](http://www.code-in-javascript.com/pearsons-correlation-coefficient-in-javascript/) + +## Example projects + +[Correlation](https://memory.psych.mun.ca/tech/js/correlation.shtml) diff --git a/README.md b/README.md index 1adc9cac..9f74fab5 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,7 @@ required to complete them. | [🌟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 | | [Notes App](./Projects/Notes-App.md) | Create an online note pad | 1-Beginner | +| [🌟Pearson Regression](./Projects/Pearson-Regression-App.md) | Calculate the correlation coefficent for two sets of data | 1-Beginner | | [Pomodoro Clock](./Projects/Pomodoro-Clock.md) | Task timer to aid personal productivity | 1-Beginner | | [:star2: Product Landing Page](./Projects/Product-Landing-Page.md) | Showcase product details for possible buyers | 1-Beginner | | [Quiz App](./Projects/Quiz-App.md) | Test your knowledge by answering questions | 1-Beginner | From 48be89f92848eef1e2c1b4a3b033823fabe5f62e Mon Sep 17 00:00:00 2001 From: jdmedlock Date: Sat, 27 Apr 2019 19:49:36 -0500 Subject: [PATCH 4/9] Feature: Add Charity Finder app specification Add Charity finder app specification Resolves: N/a See also: N/a --- Projects/Charity-Finder-App.md | 150 +++++++++++++++++++++++++++++++++ README.md | 1 + 2 files changed, 151 insertions(+) create mode 100644 Projects/Charity-Finder-App.md diff --git a/Projects/Charity-Finder-App.md b/Projects/Charity-Finder-App.md new file mode 100644 index 00000000..136a8920 --- /dev/null +++ b/Projects/Charity-Finder-App.md @@ -0,0 +1,150 @@ +# Charity Finder + +**Tier:** 2-Intermediate + +With the Charity Finder app you'll not only get to refine your Web Developer +skills, but you will also have an opportunity to see how you can do good. The +objective of this app is to utilize the [Global Giving](https://www.globalgiving.org/) organizations API to provide your users with a list of global charities they +can search to find a charity that matches their philanthropic interests. + +### Constraints +- Since the app is asking the user to choose and contribute to a charitable +cause it's important that the presentation of information be clear and consise. +Just as important is the need for the UI/UX to be polished and engaging to use. + +Although this is true of all apps, its even more the case here since each +user that abandons the site represents the loss of an opportunity to do good +(see ['What is Web Site Conversion?](##useful-links-and-resources)) below. + +## User Stories + +- [ ] User can see a page heading containing the application name. +- [ ] User can see an overview of what the app is intended for in 'splash' +page format. +- [ ] User can see a search area containing an set of drop down boxes that +allow the user to specify search criteria for charitable organizations +including: + - Organization name + - Organizations home country + - Countries the organization serves +- [ ] User can see a 'Search' button +- [ ] User can click on the 'Search' button to display information cards +for the matching organizations in a search results area. +- [ ] User can see organization information cards in the search results area +containing: + - ID + - Name + - Address + - Logo +- [ ] User can click the logo in the organizations information card to open a +new window to that organizations home page. +- [ ] User can see a page footer with links to your GitHub and social media +accounts including social media icons (like the Twitter icon). + +## Bonus features + +- [ ] User can see a search dropdown for themes the charity focuses on. +- [ ] User can select multiple options in the search dropdowns. +- [ ] User can see a project link (e.g. 'PROJECT') on the organization +information card. +- [ ] User can click on the project link to display a page with information +describing the Global Giving project the organization is associated with. +Hint: examine the structure of the JSON returned from the API to understand +the relationship between projects and organizations. + +## Useful links and resources + +- [What is Web Site Conversion?](https://www.marketing91.com/what-is-website-conversion/) +- [Global Giving API](https://www.globalgiving.org/api/) +- Sample JSON for a project returned through the API: +``` + + + true + 367 + + false + To fund the training of health professionals including nurses, psychologists, and social workers, and buy medicine and equipment. + https://www.globalgiving.org/pfil/359/projdoc.doc + 2004-06-01T12:43:27-04:00 + 28 Pine Street + Mechanic Falls + United States + 04256 + Maine + http://groups.yahoo.com/group/FOCUSonCambodia + Cambodia + 8239.33 + 55000.00 + 359 + + + https://www.globalgiving.org/pfil/359/pict_grid1.jpg + + + https://www.globalgiving.org/pfil/359/pict_thumbnail.jpg + + + https://www.globalgiving.org/pfil/359/pict_med.jpg + + + https://www.globalgiving.org/pfil/359/pict_grid7.jpg + + + https://www.globalgiving.org/pfil/359/pict_large.jpg + + + https://www.globalgiving.org/pfil/359/pict_original.jpg + + Improving the Health of Children in Cambodia + + 1 + https://www.globalgiving.org/pfil/359/pict.jpg + KH + This project will help improve the mental and physical health of orphaned children in Cambodia. This project will also ensure the sustainability of the Nutrition Center in Child Mental Health Center. + Our beneficiaries will be orphaned children suffering from AIDS/HIV and other diseases and children with mental health problems whose parents do not know how to cope because they were deprived of family experiences by the forced separations of the Pol Pot regime. At the Nutrition Center in Phnom Penh, we will help urban orphans from brothels and hospitals that have abandoned them. At the Child Mental Health Center, we will help families, largely the working poor, from all over Cambodia. + 102 + + 0 + 1062 Lewiston Road + + 5824171103 + New Gloucester + + + KH + Cambodia + + + United States + 10 + US + The mission of FOCUS is to pursue humanitarian programs that include medical aid, school construction and supplies, distribution of rice and rice seeds, road improvements, agricultural improvements, fish farms, basic housing, hospital restoration, school scholarships, and loans for infrastructure improvements. We want to help disadvantaged youth and their families, if they have any, in a country where the infrastructure is still weak due to Khmer Rouge depredations. + Friends of Cambodia in the U.S. (FOCUS) + 4260 + Maine + + + health + Health + + + 2 + + + https://www.globalgiving.org/projects/educating-children-of-cambodia/updates/ + https://www.globalgiving.org/projects/educating-children-of-cambodia/ + Asia and Oceania + 46760.67 + funded + To help abandoned children, many afflicted with HIV/AIDS, and children with mental health problems. We want to address lack of food, medicine and staff training. + Health + Improving the Health of Children in Cambodia + project + + +``` + +## Example projects + +[Playing with card layout](https://codepen.io/bradjdouglas/pen/xOZJRz) diff --git a/README.md b/README.md index 788afd2b..e63c9342 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,7 @@ required to complete them. | [🌟Bit Masks](./Projects/Bit-Masks-App.md) | Using Bit Masks for Conditions | 2-Intermediate | | [Book Finder App](./Projects/Book-Finder-App.md) | Search for books by multiple criteria | 2-Intermediate | | [Card Memory Game](./Projects/Card-Memory-Game.md) | Memorize and match hidden images | 2-Intermediate | +| [🌟Charity Finder App](./Projects/Charity-Finder-App.md) | Find a Global Charity to donate to | 2-Intermediate | | [🌟Drawing App](./Projects/Drawing-App.md) | Create digital artwork on the web | 2-Intermediate | | [🌟Emoji Translator App](./Projects/Emoji-Translator-App.md) | Translate sentences into Emoji | 2-Intermediate | | [Flashcards App](./Projects/FlashCards-App.md) | Review and test your knowledge through Flash Cards | 2-Intermediate | From 6e49212f50d64b22570c87192f2b981ce03d4a31 Mon Sep 17 00:00:00 2001 From: jdmedlock Date: Sat, 27 Apr 2019 20:28:40 -0500 Subject: [PATCH 5/9] Fix: Remove merge conflict boundary flag lines Remove merge conflict boundary flag lines Resolves: N/a See also: N/a --- README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/README.md b/README.md index e293914b..962cf9f1 100644 --- a/README.md +++ b/README.md @@ -75,14 +75,9 @@ required to complete them. | [🌟Bit Masks](./Projects/Bit-Masks-App.md) | Using Bit Masks for Conditions | 2-Intermediate | | [Book Finder App](./Projects/Book-Finder-App.md) | Search for books by multiple criteria | 2-Intermediate | | [Card Memory Game](./Projects/Card-Memory-Game.md) | Memorize and match hidden images | 2-Intermediate | -<<<<<<< HEAD | [🌟Charity Finder App](./Projects/Charity-Finder-App.md) | Find a Global Charity to donate to | 2-Intermediate | | [🌟Drawing App](./Projects/Drawing-App.md) | Create digital artwork on the web | 2-Intermediate | | [🌟Emoji Translator App](./Projects/Emoji-Translator-App.md) | Translate sentences into Emoji | 2-Intermediate | -======= -| [Drawing App](./Projects/Drawing-App.md) | Create digital artwork on the web | 2-Intermediate | -| [Emoji Translator App](./Projects/Emoji-Translator-App.md) | Translate sentences into Emoji | 2-Intermediate | ->>>>>>> fa2c511d7d9966d9b1874baba9812316f2935a7e | [Flashcards App](./Projects/FlashCards-App.md) | Review and test your knowledge through Flash Cards | 2-Intermediate | | [HighStriker Game](./Projects/HighStriker-Game.md) | Highstriker strongman carnival game | 2-Intermediate | | [Markdown Previewer](./Projects/Markdown-Previewer.md) | Preview text formatted in GitHub flavored markdown | 2-Intermediate | From c2ae4f87ecd484fc915ca191d39735d8590edf50 Mon Sep 17 00:00:00 2001 From: jdmedlock Date: Sat, 27 Apr 2019 20:31:19 -0500 Subject: [PATCH 6/9] Fix: Correct formatting error in Constraints section Correct formatting error in Constraints section Resolves: N/a See also: N/a --- Projects/Charity-Finder-App.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Projects/Charity-Finder-App.md b/Projects/Charity-Finder-App.md index 136a8920..ba4e1580 100644 --- a/Projects/Charity-Finder-App.md +++ b/Projects/Charity-Finder-App.md @@ -12,7 +12,7 @@ can search to find a charity that matches their philanthropic interests. cause it's important that the presentation of information be clear and consise. Just as important is the need for the UI/UX to be polished and engaging to use. -Although this is true of all apps, its even more the case here since each + Although this is true of all apps, its even more the case here since each user that abandons the site represents the loss of an opportunity to do good (see ['What is Web Site Conversion?](##useful-links-and-resources)) below. From c62e2e89bded156e8a7196f973a6a2afec2f4960 Mon Sep 17 00:00:00 2001 From: jdmedlock Date: Sun, 28 Apr 2019 15:23:32 -0500 Subject: [PATCH 7/9] Feature: Add Contribution Tracker app specification Add Contribution Tracker app specification Resolves: N/a See also: N/a --- Projects/Contribution-Tracker-App.md | 110 +++++++++++++++++++++++++++ README.md | 1 + 2 files changed, 111 insertions(+) create mode 100644 Projects/Contribution-Tracker-App.md diff --git a/Projects/Contribution-Tracker-App.md b/Projects/Contribution-Tracker-App.md new file mode 100644 index 00000000..769c3e30 --- /dev/null +++ b/Projects/Contribution-Tracker-App.md @@ -0,0 +1,110 @@ +# Contribution Tracker + +**Tier:** 3-Advanced + +In the [Charity Finder](./Charity-Finder-App.md) project you created an app to +help you locate a charity worthy of your contributions. Once a contribution +has been made the goal of the Contribution Tracker app is to track it so to +provide users with a record of all contributions for use in monitoring how +funds are being directed and to provide records for financial reporting +purposes. For example, for tax reporting. + +### Constraints + +- Developers may use Vanilla JS, or a framework of their choice (like React, +VueJS, etc.). + +- Developers should not use libraries for calculating and manipulating monetary +amounts. All calculation and formatting should be done in the language chosen +to develop the application. + +- Developers may use a graphics presentation library or service of their choice, +like [AMCharts](https://www.amcharts.com/). + +- Developers may choose to have transactions persist across sessions using +either files or databases. Sensitive data, like transactions, must not be +maintainined in local storage. Remember that although you can implement +protections it is impossible to totally secure browser applications. + +## User Stories + +- [ ] User can see a Navigation Bar at the top of each page containing the +application name and a "hamburger" menu with these option: + - Dashboard + - Transactions +- [ ] User can see a Footer Bar at the bottom of each page containing an +About link + +### Dashboard Page +- [ ] User can see the Dashboard page when the app is started containing +graphical summaries of the following key metrics. The graphical representation +for each is left up to the Developer. + - Contributions by month for the current year + - Total contributions by year + - Contribution increase/decrease by year + - Average contribution amount by month and year +- [ ] User can return to the Dashboard page, if currently on another page, by +clicking on the 'Dashboard' option in the hamburger menu in the Navigation Bar. + +### Transactions Page +- [ ] User can see a transaction input panel containing the following: + - Transaction date + - Payee name + - Amount + - Memo + - Action buttons - 'Clear', 'Add' +- [ ] User can see a tabular transaction ledger containing previously +entered transactions. Each row will also contain a 'Modify' and a 'Delete' +button. +- [ ] User can enter values describing the transaction into the input fields +- [ ] User can click the 'Clear' button to reset all input fields to an +empty state. +- [ ] User can click the 'Add' button to validate the input that has been +entered, add the validated entry to the transaction ledger, and clear the input +fields. +- [ ] User can see a consolidated error message detailing any errors detected +in input fields, including: + - Invalid date + - Blank Payee name + - Non-numeric amount field +- [ ] User can click on the 'Update' button to modify a previously entered +transaction. The transaction details will be copied to the transaction input +panel and the 'Add' button will change to 'Modify'. +- [ ] User can change values in the input fields and click the 'Modify' to +validate the input and update that transactions entry in the ledger. If +successful the 'Modify' button will change back to 'Add' and the input fields +will be cleared. +- [ ] User can click the 'Delete' button to remove a previously entered +transaction. A popup dialog will be displayed containing 'Cancel' and 'Okay' +buttons to cancel or confirm the delete. If the delete is confirmed the +transaction will be removed from the ledger. +- [ ] User can return to the Transactions page, if currently on another page, +by clicking on the 'Transactions' option in the hamburger menu in the Navigation +Bar. + +### About Page +- [ ] User can click the About link in the Footer Bar to display information +about the Developer. +- [ ] User can see links to the Developers GitHub and social media accounts +including social media icons (like the Twitter icon). + +## Bonus features + +- [ ] User can click in the transaction date field to display a calendar +the date can be selected from rather than manually entering it. +- [ ] User can see alternating row background colors in the transaction ledger. +- [ ] User can click on a column heading in the transaction ledger to toggle +the sort sequence on the values in that column. +- [ ] User can see a PDF option near the Transaction Ledger to create a PDF +of all transactions (Hint: checkout how this capability can be implemented via +[Puppeteer](https://github.com/GoogleChrome/puppeteer)). + +## Useful links and resources + +[How to Handle Monetary Values in Javascript](https://frontstuff.io/how-to-handle-monetary-values-in-javascript) +- [How to Format Number as Currency](https://flaviocopes.com/how-to-format-number-as-currency-javascript/) +- [Mintalble (GitHub)](https://github.com/kevinschaich/mintable) + +## Example projects + +N/a diff --git a/README.md b/README.md index 962cf9f1..e3bb4d59 100644 --- a/README.md +++ b/README.md @@ -101,6 +101,7 @@ required to complete them. | [🌟Bug Race Game](./Projects/Bug-Race-Game.md) | Create a Bug Race game to show off your animation skills | 3-Advanced | | [🌟Calorie Counter](./Projects/Calorie-Counter-App.md) | Calorie Counter Nutrion App | 3-Advanced | | [Chat App](./Projects/Chat-App.md) | Real-time chat interface | 3-Advanced | +| [🌟Contribution Tracker](./Projects/Contribution-Tracker-App.md) | Track your charitable contributions | 3-Advanced | | [Elevator](./Projects/Elevator-App.md) | Elevator simulator | 3-Advanced | | [Fast Food Simulator](./Projects/FastFood-App.md) | Fast Food Restaurant Simulator | 3-Advanced | | [🌟Instagram Clone](./Projects/Instagram-Clone-App.md) | A clone of Facebook's Instagram app | 3-Advanced | From 822a95543a62e973183f71e7af6494279875669b Mon Sep 17 00:00:00 2001 From: jdmedlock Date: Sun, 28 Apr 2019 15:25:35 -0500 Subject: [PATCH 8/9] Fix: Correct formatting of first bullet in Useful Links section Correct formatting of first bullet in Useful Links section Resolves: N/a See also: N/a --- Projects/Contribution-Tracker-App.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Projects/Contribution-Tracker-App.md b/Projects/Contribution-Tracker-App.md index 769c3e30..e056e21d 100644 --- a/Projects/Contribution-Tracker-App.md +++ b/Projects/Contribution-Tracker-App.md @@ -101,7 +101,7 @@ of all transactions (Hint: checkout how this capability can be implemented via ## Useful links and resources -[How to Handle Monetary Values in Javascript](https://frontstuff.io/how-to-handle-monetary-values-in-javascript) +- [How to Handle Monetary Values in Javascript](https://frontstuff.io/how-to-handle-monetary-values-in-javascript) - [How to Format Number as Currency](https://flaviocopes.com/how-to-format-number-as-currency-javascript/) - [Mintalble (GitHub)](https://github.com/kevinschaich/mintable) From f3c92a594768041b7744bd5bc35f749007cc5372 Mon Sep 17 00:00:00 2001 From: jdmedlock Date: Sun, 28 Apr 2019 15:27:04 -0500 Subject: [PATCH 9/9] Fix: Spelling error in Useful Links section Spelling error in Useful Links section Resolves: N/a See also: N/a --- Projects/Contribution-Tracker-App.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Projects/Contribution-Tracker-App.md b/Projects/Contribution-Tracker-App.md index e056e21d..09c65e94 100644 --- a/Projects/Contribution-Tracker-App.md +++ b/Projects/Contribution-Tracker-App.md @@ -103,7 +103,7 @@ of all transactions (Hint: checkout how this capability can be implemented via - [How to Handle Monetary Values in Javascript](https://frontstuff.io/how-to-handle-monetary-values-in-javascript) - [How to Format Number as Currency](https://flaviocopes.com/how-to-format-number-as-currency-javascript/) -- [Mintalble (GitHub)](https://github.com/kevinschaich/mintable) +- [Mintable (GitHub)](https://github.com/kevinschaich/mintable) ## Example projects