xuebaunion@vip.163.com
3551 Trousdale Rkwy, University Park, Los Angeles, CA
留学生论文指导和课程辅导
无忧GPA:https://www.essaygpa.com
工作时间:全年无休-早上8点到凌晨3点
微信客服:xiaoxionga100
微信客服:ITCS521
Summary
Table of Contents
• Overview
• Part I: UI & Navigation
• Part II: OAuth
• Part III: Posting data to Github
• Part IV: Store data on your phone or a 3rd party service
• Part V: Testing
Objectives
• Interact with Github API and POST data
• Enhance UI
• Use a testing framework
• Implement back end of a mobile application
Resources
See the links posted in each section
Grading
Category Weight Scoring Requirements
Basic
Preparation 2 0-1
Ready to go at the start of
section
Cleverness 2 0-2
The hardest points on the
rubric
Code
Submission 4 0-2
Submitted correct content on
time and to the correct location
in the repository
Decomposition 4 0-2
Project is adequately
decomposed into different
classes and methods
Documentation 4 0-2
Comments for each class and
each function are clear and are
following style guides
Effort 2 0-2
Perform considerable amount
of work
Naming 2 0-2
Variable names and method
names are readable and are
following the naming
conventions of the language
you chose
Overall Design 5 0-2.5 Have nice approaches and
structures in overall. MVC!
Participation 5 0-2.5
Interact with the group 2 times
(ask a question, make a
comment, help answer a
question, etc.)
Presentation 4 0-2 Present the code clearly
Requirements –
Backend 5 0-2.5
• 2 points: Backend
Storage implemented.
• 2.5 points: Used a
clever schema to store
data
Requirements –
Github API –
POSTING
4 0-2
• 0 points: API
functionality not
working
• 2 points: Ability to
POST data on GitHub
Requirement –
OAuth 4 0-2
• 0 point: No OAuth
implementation
• 2 points: OAuth
implemented
Requirement –
UI 5 0-2.5
• 2 points – Improved last
week’s UI and
implemented follower
and following pages
• 2.5 points – The UI has
furnished design and
animated transitions.
Testing 4 0-2
• 0 points: No test cases
• 2 points: Used a testing
framework and wrote
comprehensive unit
tests
Total 56
Overview
For this week, we will continue working on the Github application that we started creating in
Assignment 3.0. You will be POSTing data to Github, implementing backend storage, adding
more UIs and navigations, and using a testing framework for this week.
Part I: UI & Navigation
You should make some considerable improvements to the user interface of your application.
Requirements:
• Polish the UI built in Assignment 3.0
• Follower List
o A list of GitHub users that followed you
o Can be opened either from your tab/drawer navigation or profile page
o List cell should:
▪ Contains user’s username and avatar image
▪ Be clickable: able to open up the profile page of that user (reuse your
profile page built in Assignment 3.0)
• Following List
o A list GitHub users that you followed
o Can be opened either from your tab/drawer navigation or profile page
o List cell should:
▪ Contains user’s username and avatar image
▪ Be clickable: able to open up the profile page of that user (reuse your
profile page built in Assignment 3.0)
The changes should be easily recognizable and should make the application look really polished.
You can include animated transitions or interactive forms. Some might be helpful:
• https://github.com/JStumpp/awesome-android
• https://github.com/vsouza/awesome-ios
• https://github.com/jondot/awesome-react-native
As you getting more experiences to the platform chosen, you should really think about
architectural patterns when you adding more views and logics. Therefore, MVC! (or other
patterns if you want to go advanced)
Part II: OAuth
Before POSTing data to GitHub, you have to let your API requests know that it’s you! You have
to make your application a registered OAuth application with Github.
https://developer.github.com/apps/building-integrations/setting-up-and-registering-oauth-apps/
Tips, three easy ways:
• username and password (Basic OAuth)
• access_token (OAuth 2)
• client_id and client_secret (OAuth 2)
For extra credit, you can build a login page to haveuserinput their username and password and
thenloginto GitHub, or you can open up GitHub web login flow and let GitHub take care of the
rest. It requires nontrivial efforts.
Part III: Posting data to Github
For this week you will be interacting with the Github API but instead of just fetching data, you
would have to post data to GitHub as well. For this week, add the ability to:
• follow/unfollow another user
• star/unstar a repository
For these tasks, the API is specified for just PUT.
You can just use that.
Part IV: Store data on your phone or a 3rd party service
For this week, instead of just fetching data and displaying data in your app, you will be storing
data as well locally or on a 3rd party service (eg: Firebase)
You will be storing:
• List of repositories
• Followers list
• Following list
• Your personal information (name, Github username, etc.)
Helpful links:
• iOS
o https://developer.apple.com/library/content/referencelibrary/GettingStarted/Devel
opiOSAppsSwift/PersistData.html
o https://www.raywenderlich.com/167743/sqlite-swift-tutorial-getting-started
o https://firebase.google.com/docs/ios/setup
o https://realm.io/products/realm-database/
• Android
o https://developer.android.com/guide/topics/data/data-storage.html
o https://firebase.google.com/docs/android/setup
o https://realm.io/products/realm-database/
• React Native
o https://facebook.github.io/react-native/docs/asyncstorage.html
o https://realm.io/products/realm-database/
Part V: Testing
For this week, you have to use a testing framework to test your code. Make sure your test cases
are comprehensive and well thought out.
Helpful links:
• https://bitbar.com/top-5-android-testing-frameworks-with-examples/
• https://bitbar.com/top-5-ios-testing-frameworks-with-examples/