Merge branch 'master' of https://github.com/florinpop17/app-ideas into feature/charity-finder-app
Refactor: Resolve merge conflicts with README.md on the `master` branchpull/65/head
commit
a73027667e
@ -0,0 +1,79 @@
|
|||||||
|
# Bug Race
|
||||||
|
|
||||||
|
**Tier:** 3-Advanced
|
||||||
|
|
||||||
|
In this project you will test your animation skills by creating a game that
|
||||||
|
lets the user race bugs while trying to guess the winner. As part of this
|
||||||
|
you'll need to provide the user with various controls that allow the game to
|
||||||
|
be customized including bug icons, assigning names to the bugs, making a choice
|
||||||
|
of who the winner might be, and bug speed.
|
||||||
|
|
||||||
|
### Constraints
|
||||||
|
- The developer will need to select the bug icons to be used in the game
|
||||||
|
- The developer should randomly adjust the speed of each bug before a race
|
||||||
|
starts so they travel at different rates within the speed selected by the
|
||||||
|
user (slow, normal, or fast).
|
||||||
|
- It is up to the developer to define the speed ranges associated with the slow,
|
||||||
|
normal, and fast speed setting.
|
||||||
|
- You may use an animation library, but you'll get more out of this project
|
||||||
|
if you try to implement it using native language features.
|
||||||
|
|
||||||
|
## User Stories
|
||||||
|
|
||||||
|
- [ ] User can see:
|
||||||
|
- An input panel containing controls to configure the game's UI and
|
||||||
|
operation.
|
||||||
|
- A race track consisting of four horizontal lanes the bugs will travel in
|
||||||
|
- A radio button associated with each lane to allow the user to select a
|
||||||
|
potential winner
|
||||||
|
- A 'Start' button.
|
||||||
|
|
||||||
|
### Game Controls
|
||||||
|
- [ ] User can see the following controls in the input panel.
|
||||||
|
- A list of race lane numbers with radio buttons for each showing
|
||||||
|
thumbnails for three unique bugs, and a text box the user can use to
|
||||||
|
give the bug a name.
|
||||||
|
- An Speed selection control with three radio buttons - Slow, Normal, Fast
|
||||||
|
- [ ] User can click a radio button to select the bug icon to be assigned
|
||||||
|
to a lane.
|
||||||
|
- [ ] User can see an warning message if the same icon is selected for more
|
||||||
|
than one lane.
|
||||||
|
- [ ] User can enter a name for the bug in each lane.
|
||||||
|
- [ ] User can see an error message if the same name is repeated for more than
|
||||||
|
one bug.
|
||||||
|
- [ ] User can select the bug speed by clicking one of the Speed radio buttons
|
||||||
|
|
||||||
|
### Racing
|
||||||
|
|
||||||
|
- [ ] User can select a potential winner by clicking on the radio button on
|
||||||
|
any lane.
|
||||||
|
- [ ] User can start a race by clicking on the 'Start' button
|
||||||
|
- [ ] User can see the 'Start' button is disabled until the race is over
|
||||||
|
- [ ] User can see an error message if no winner was selected.
|
||||||
|
- [ ] User can see bugs race across their assigned lane to the finish line
|
||||||
|
- [ ] User can see all bugs stop moving when the first one reaches the finish
|
||||||
|
line
|
||||||
|
- [ ] User can see game metrics updated to show the number of races run in
|
||||||
|
this session.
|
||||||
|
|
||||||
|
## Bonus features
|
||||||
|
|
||||||
|
- [ ] User can see race metrics for each bug showing the number of races
|
||||||
|
run, number of wins, and number of losses.
|
||||||
|
- [ ] User can see the winning bug bounce when it wins a race
|
||||||
|
- [ ] User can see loosing bugs flip on their backs when they loose a race
|
||||||
|
- [ ] User can hear unique sounds played when the race starts and ends.
|
||||||
|
|
||||||
|
## Useful links and resources
|
||||||
|
|
||||||
|
- [3D Bug Images](https://www.google.com/search?q=3d+bug+drawings&tbm=isch&source=hp&sa=X&ved=2ahUKEwjxkNT7--jhAhUI-6wKHW3_CgQQsAR6BAgHEAE&biw=1279&bih=550)
|
||||||
|
- [Basic Animations (MDN)](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_animations
|
||||||
|
)
|
||||||
|
- [How to build a simple Sprite animation in Javascript](https://medium.com/dailyjs/how-to-build-a-simple-sprite-animation-in-javascript-b764644244aa)
|
||||||
|
- [Javascript Animations](https://javascript.info/animation)
|
||||||
|
|
||||||
|
## Example projects
|
||||||
|
|
||||||
|
- [Arcade Game](https://jdmedlock.github.io/arcadegame/)
|
||||||
|
- [Drag Race Animation](https://codepen.io/Delime/pen/IyuAr)
|
||||||
|
- [Horse Race](https://codepen.io/nathanielzanzouri/pen/jVgEZY)
|
@ -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 #<pr-number> created for repo <repo name> - <repo description>`.
|
||||||
|
- [ ] 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)
|
@ -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)
|
Loading…
Reference in new issue