Merge pull request #63 from florinpop17/feature/tweet-github-app

Feature: Add GitTweet app specification
pull/64/head
Florin Pop 6 years ago committed by GitHub
commit 62581a4d2d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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)

@ -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 |

Loading…
Cancel
Save