SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
"Mutibo" 
Android Capstone Project 
University of Maryland / Vanderbilt University via Coursera 
Nate Betz
2 
Mutibo Project Description 
"Do you really like movies? Do you think you have a knack 
for solving puzzles? Test your movie trivia knowledge and 
puzzle solving abilities with Mutibo, a game in which you are 
asked to identify which movie in a group of movies is the 
odd one. After making your guess, the game will tell you 
the correct answer, explain the link between the movies, 
and let you rate the group of movie!" 
Application Architecture 
The application consists of a native Android application 
developed with Android Studio v0.8.14, REST-based server 
components developed in Java with Eclipse Luna and hosted 
by a local Tomcat server, with data persisted to a SQL 
Server 2012 RDMS instance. 
Application Tools, API's, and Components Utilized: 
Client Server Common 
Android Studio Eclipse Luna Git 
Google Play Services Spring Security HTTP/S 
Retrofit Spring Data REST MVC JSON 
Spring JPA JUnit 
Apache Tomcat OAuth2 
JTDS JDBC Driver Gradle 
SQL Server 2012
3 
Basic Project Requirements [BPR] and 
Implementation Details 
BPR-1: App supports multiple users via individual user accounts. 
Implementation: The application supports multiple users via individual 
user accounts that are authenticated with the Google Authentication API. 
Code References 
Client 
• SecuredRestBuilder.java 
• LoginScreenActivity.java 
Server 
• OAuth2SecurityConfiguration.java 
• ClientAndUserDetailsService.java 
BPR-2: App contains at least one user facing function available only 
to authenticated users. 
Implementation: Only authenticated users may start a new game. 
Code References 
Client 
• LoginScreenActivity.java 
(onConnected and updateUI) 
Server 
• OAuth2SecurityConfiguration.java 
(ResourceMapper and 
OAuth2Config) 
BPR-3: App comprises at least 1 instance of each of at least 2 of 
the following 4 fundamental Android components: 
• Activity 
• BroadcastReceiver 
• Service 
• ContentProvider 
Implementation: The application includes three Activity instances for 
the UI and one BroadcastReceiver instance. The BroadcastReceiver 
instance utilizes the system timer to provide a 10-second "bonus period" 
after a question is displayed, during which the player receives more points 
for a correct answer.
4 
Code References 
Client 
• LoginScreenActivity 
• ScoreboardActivity 
• QuestionActivity 
• MyBroadcastReceiver 
Server 
BPR-4: App interacts with at least one remotely-hosted Java 
Spring-based service. 
Implementation: The application interacts with a remotely-hosted Java 
Spring-based service for all game activities. See Appendix I for REST API. 
Code References 
Client 
• GameSvc 
• Common.GameSvcAPI 
Server 
• GameController 
BPR-5: App interacts over the network via HTTP. 
Implementation: All interactions between the client and server and 
conducted over the network via HTTP/S. 
Code References 
Client 
• GameSvc 
• Common.GameSvcAPI 
Server 
• GameController 
BPR-6: App allows users to navigate between 3 or more user 
interface screens at runtime. 
Implementation: The client application consists of 3 interface screens: 
Main/Login screen, Question screen, and Scoreboard screen, each 
implemented as Activities. 
Code References 
Client 
• LoginScreenActivity 
• QuestionActivity 
Server
5 
• ScoreboardActivity 
BPR-7: App uses at least one advanced capability or API from the 
following list (covered in the MoCCA Specialization): multimedia 
capture, multimedia playback, touch gestures, sensors, animation. 
Implementation: The application utilizes touch gestures, allowing the 
user to like or dislike a question by swiping up or down, and proceeding to 
the next question by swiping to the right. 
Code References 
Client 
• QuestionActivity 
(MyGestureDetector()) 
Server 
BPR-8: App supports at least one operation that is performed off 
the UI Thread in one or more background Threads of Thread pool. 
Implementation: All server requests are invoked by the client off the 
main UI thread via the use of AsyncTasks. 
Code References 
Client 
• CallableTask 
• TaskCallback 
• QuestionActivity, LoginscreenActivity 
Server 
•
6 
Mutibo App Functional Requirements [MFR] 
and Implementation Details 
MFR-1: A Set is a unit of data that contains four movie titles, 
optional associated images for each movie, information identifying 
the one movie that is not like the other three, and accompanying 
text, explaining the relationship between the three related movies. 
Implementation: As described. See screeshots and video walkthrough 
for more details. 
Code References 
Client 
• QuestionActivity 
• (Common) QSet.java 
Server 
• QSetRepository 
MFR-2: A User should be able to log into the game using an 
authenticated user account. (Login & session cookie, Basic Auth, 
HMAC auth, or OAuth 2.0 bearer token required along with/HTTPS 
to access the game.) 
Implementation: A user logs into the game using Google Sign-in, which 
provides an OAuth2 token and username that are passed to the service over 
HTTPS. 
Code References 
Client 
• LoginScreenActivity 
• GameSvc 
Server 
• OAuth2SecurityConfiguration 
(EmbeddedServletContainerCustomizer 
and keystore file for HTTPS) 
MFR-3: A single game presents a series of Sets and guesses, until 
the User has made three Incorrect Guesses. 
Implementation: As described, the game ends after 3 incorrect guesses. 
Code References 
Client 
• QuestionActivity 
Server 
•
7 
MFR-4: After viewing a Set, a User will be able to rate a Set based 
on the explanation of the link between the movies. 
Implementation: The user may Like a question set by swiping up, or 
Dislike a question set by swiping down. 
Code References 
Client 
• QuestionActivity 
Server 
• GameController (likeQSet() and 
dislikeQSet()) 
MFR-5: If a Set receives a large number of poor ratings, it can be 
removed from the game. 
Implementation: Question ratings are persisted to the database by the 
server. The query to retrieve the next question for any users will exclude 
questions for which the net rating (Likes minus Dislikes) is below a 
configuration threshold. 
Code References 
Client 
Server 
• GameController(nextSet()) 
• QSet NamedNativeQuery: 
QSet.GetRandomQSet 
• GetRandomQSet stored procedure 
MFR-6: For each successfully completed Set, the user will get 
Points. 
Implementation: Players receive points for each correct answer: 200 
points if within the "bonus" period, otherwise 100 points. 
Code References 
Client 
• QuestionActivity (processAnswer()) 
Server 
• 
MFR-7: All data (questions, answers, points, etc.) are stored to and 
retrieved from a web-based service accessible in the cloud.
Implementation: All data are stored to and retrieved from a web-based 
8 
service accessible via http and persisted to a SQL Server database. 
Code References 
Client 
• GameSvcAPI 
• GameSvc 
• SecuredResetBuilder 
Server 
• GameController 
• GameRepository 
Appendix I: REST API 
Path Method Function 
/oauth/token GET For OAuth authentication 
/mutibo/qset/scores GET Get high scores 
/mutibo/qset/next GET Get next QSet 
/mutibo/qset/getplayer GET Get player info 
/mutibo/qset/start GET Start new game 
/mutibo/qset/like/{id} GET Like the current QSet 
/mutibo/qset/dislike/{id} GET Dislike the current QSet 
/mutibo/qset/update POST Send game update to server
Appendix II: UUII SSccrreeeenn CCaappttuurreess 
9
10
11

Mais conteúdo relacionado

Mais procurados

PPT on Android Applications
PPT on Android ApplicationsPPT on Android Applications
PPT on Android ApplicationsAshish Agarwal
 
Campus portal for wireless devices
Campus portal for wireless devicesCampus portal for wireless devices
Campus portal for wireless devicesShiladitya Mandal
 
Basic of Android App Development
Basic of Android App DevelopmentBasic of Android App Development
Basic of Android App DevelopmentAbhijeet Gupta
 
android app development training report
android app development training reportandroid app development training report
android app development training reportRishita Jaggi
 
Android : Architecture & Components
Android : Architecture & ComponentsAndroid : Architecture & Components
Android : Architecture & ComponentsAkash Bisariya
 
Android application structure
Android application structureAndroid application structure
Android application structureAlexey Ustenko
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application DevelopmentRamesh Prasad
 
R2D2- Personal assistant on android.
R2D2- Personal assistant on android.R2D2- Personal assistant on android.
R2D2- Personal assistant on android.Mohd Nazim
 
Intro To Android App Development
Intro To Android App DevelopmentIntro To Android App Development
Intro To Android App DevelopmentMike Kvintus
 
Android basic principles
Android basic principlesAndroid basic principles
Android basic principlesHenk Laracker
 
Android before getting started
Android before getting startedAndroid before getting started
Android before getting startedAhsanul Karim
 
Know all about android development
Know all about android developmentKnow all about android development
Know all about android developmentDeepika Chaudhary
 
Chat Application [Full Documentation]
Chat Application [Full Documentation]Chat Application [Full Documentation]
Chat Application [Full Documentation]Rajon
 
How Good is Java for Mobile Game Development
How Good is Java for Mobile Game DevelopmentHow Good is Java for Mobile Game Development
How Good is Java for Mobile Game DevelopmentMetaDesign Solutions
 

Mais procurados (20)

PPT on Android Applications
PPT on Android ApplicationsPPT on Android Applications
PPT on Android Applications
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Anjali Choubey
Anjali ChoubeyAnjali Choubey
Anjali Choubey
 
Android presentation slide
Android presentation slideAndroid presentation slide
Android presentation slide
 
Campus portal for wireless devices
Campus portal for wireless devicesCampus portal for wireless devices
Campus portal for wireless devices
 
Basic of Android App Development
Basic of Android App DevelopmentBasic of Android App Development
Basic of Android App Development
 
Windows mobile
Windows mobileWindows mobile
Windows mobile
 
android app development training report
android app development training reportandroid app development training report
android app development training report
 
Android : Architecture & Components
Android : Architecture & ComponentsAndroid : Architecture & Components
Android : Architecture & Components
 
Android application structure
Android application structureAndroid application structure
Android application structure
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
 
Major project srs
Major project srsMajor project srs
Major project srs
 
Android basics
Android basicsAndroid basics
Android basics
 
R2D2- Personal assistant on android.
R2D2- Personal assistant on android.R2D2- Personal assistant on android.
R2D2- Personal assistant on android.
 
Intro To Android App Development
Intro To Android App DevelopmentIntro To Android App Development
Intro To Android App Development
 
Android basic principles
Android basic principlesAndroid basic principles
Android basic principles
 
Android before getting started
Android before getting startedAndroid before getting started
Android before getting started
 
Know all about android development
Know all about android developmentKnow all about android development
Know all about android development
 
Chat Application [Full Documentation]
Chat Application [Full Documentation]Chat Application [Full Documentation]
Chat Application [Full Documentation]
 
How Good is Java for Mobile Game Development
How Good is Java for Mobile Game DevelopmentHow Good is Java for Mobile Game Development
How Good is Java for Mobile Game Development
 

Semelhante a Android Capstone Project, Final Deliverable Documentation

Freelance Project - Java
Freelance Project - JavaFreelance Project - Java
Freelance Project - JavaSIN KANG TAN
 
Microsoft AZ-204 Exam Dumps
Microsoft AZ-204 Exam DumpsMicrosoft AZ-204 Exam Dumps
Microsoft AZ-204 Exam DumpsStudy Material
 
Building Your First App with MongoDB Stitch
Building Your First App with MongoDB StitchBuilding Your First App with MongoDB Stitch
Building Your First App with MongoDB StitchMongoDB
 
Case study on Movie Quiz App For IPhone and IPad – Facebook Enabled
Case study on Movie Quiz App For IPhone and IPad –  Facebook Enabled Case study on Movie Quiz App For IPhone and IPad –  Facebook Enabled
Case study on Movie Quiz App For IPhone and IPad – Facebook Enabled Grey Matter India Technologies PVT LTD
 
Real time Communication with Signalr (Android Client)
Real time Communication with Signalr (Android Client)Real time Communication with Signalr (Android Client)
Real time Communication with Signalr (Android Client)Deepak Gupta
 
Paul Lammertsma: Account manager & sync
Paul Lammertsma: Account manager & syncPaul Lammertsma: Account manager & sync
Paul Lammertsma: Account manager & syncmdevtalk
 
.NET Core Apps: Design & Development
.NET Core Apps: Design & Development.NET Core Apps: Design & Development
.NET Core Apps: Design & DevelopmentGlobalLogic Ukraine
 
Mobile game architecture on GCP
Mobile game architecture on GCPMobile game architecture on GCP
Mobile game architecture on GCP명근 최
 
Performance Testing using Jmeter and Capacity Testing
Performance Testing using Jmeter and Capacity TestingPerformance Testing using Jmeter and Capacity Testing
Performance Testing using Jmeter and Capacity TestingAkshay Patole
 
Research Inventy : International Journal of Engineering and Science
Research Inventy : International Journal of Engineering and ScienceResearch Inventy : International Journal of Engineering and Science
Research Inventy : International Journal of Engineering and Scienceresearchinventy
 
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...MongoDB
 
Google Cloud Platform monitoring with Zabbix
Google Cloud Platform monitoring with ZabbixGoogle Cloud Platform monitoring with Zabbix
Google Cloud Platform monitoring with ZabbixMax Kuzkin
 
Game server development in node.js in jsconf eu
Game server development in node.js in jsconf euGame server development in node.js in jsconf eu
Game server development in node.js in jsconf euXie ChengChao
 
Automatizacion de Procesos en Modelos Tabulares
Automatizacion de Procesos en Modelos TabularesAutomatizacion de Procesos en Modelos Tabulares
Automatizacion de Procesos en Modelos TabularesGaston Cruz
 
Microsoft identity platform community call-May 2020
Microsoft identity platform community call-May 2020Microsoft identity platform community call-May 2020
Microsoft identity platform community call-May 2020Microsoft 365 Developer
 
Introduction to Titanium and how to connect with a PHP backend
Introduction to Titanium and how to connect with a PHP backendIntroduction to Titanium and how to connect with a PHP backend
Introduction to Titanium and how to connect with a PHP backendJoseluis Laso
 
Tutorial: Building Your First App with MongoDB Stitch
Tutorial: Building Your First App with MongoDB StitchTutorial: Building Your First App with MongoDB Stitch
Tutorial: Building Your First App with MongoDB StitchMongoDB
 
Neeraj Kumar_Resume
Neeraj Kumar_ResumeNeeraj Kumar_Resume
Neeraj Kumar_ResumeNeeraj Kumar
 

Semelhante a Android Capstone Project, Final Deliverable Documentation (20)

Freelance Project - Java
Freelance Project - JavaFreelance Project - Java
Freelance Project - Java
 
Microsoft AZ-204 Exam Dumps
Microsoft AZ-204 Exam DumpsMicrosoft AZ-204 Exam Dumps
Microsoft AZ-204 Exam Dumps
 
Building Your First App with MongoDB Stitch
Building Your First App with MongoDB StitchBuilding Your First App with MongoDB Stitch
Building Your First App with MongoDB Stitch
 
Case study on Movie Quiz App For IPhone and IPad – Facebook Enabled
Case study on Movie Quiz App For IPhone and IPad –  Facebook Enabled Case study on Movie Quiz App For IPhone and IPad –  Facebook Enabled
Case study on Movie Quiz App For IPhone and IPad – Facebook Enabled
 
Real time Communication with Signalr (Android Client)
Real time Communication with Signalr (Android Client)Real time Communication with Signalr (Android Client)
Real time Communication with Signalr (Android Client)
 
Paul Lammertsma: Account manager & sync
Paul Lammertsma: Account manager & syncPaul Lammertsma: Account manager & sync
Paul Lammertsma: Account manager & sync
 
.NET Core Apps: Design & Development
.NET Core Apps: Design & Development.NET Core Apps: Design & Development
.NET Core Apps: Design & Development
 
Mobile game architecture on GCP
Mobile game architecture on GCPMobile game architecture on GCP
Mobile game architecture on GCP
 
Performance Testing using Jmeter and Capacity Testing
Performance Testing using Jmeter and Capacity TestingPerformance Testing using Jmeter and Capacity Testing
Performance Testing using Jmeter and Capacity Testing
 
ProjectReport_Subhayu
ProjectReport_SubhayuProjectReport_Subhayu
ProjectReport_Subhayu
 
Research Inventy : International Journal of Engineering and Science
Research Inventy : International Journal of Engineering and ScienceResearch Inventy : International Journal of Engineering and Science
Research Inventy : International Journal of Engineering and Science
 
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
 
Google Cloud Platform monitoring with Zabbix
Google Cloud Platform monitoring with ZabbixGoogle Cloud Platform monitoring with Zabbix
Google Cloud Platform monitoring with Zabbix
 
Game server development in node.js in jsconf eu
Game server development in node.js in jsconf euGame server development in node.js in jsconf eu
Game server development in node.js in jsconf eu
 
Automatizacion de Procesos en Modelos Tabulares
Automatizacion de Procesos en Modelos TabularesAutomatizacion de Procesos en Modelos Tabulares
Automatizacion de Procesos en Modelos Tabulares
 
Microsoft identity platform community call-May 2020
Microsoft identity platform community call-May 2020Microsoft identity platform community call-May 2020
Microsoft identity platform community call-May 2020
 
Introduction to Titanium and how to connect with a PHP backend
Introduction to Titanium and how to connect with a PHP backendIntroduction to Titanium and how to connect with a PHP backend
Introduction to Titanium and how to connect with a PHP backend
 
Tutorial: Building Your First App with MongoDB Stitch
Tutorial: Building Your First App with MongoDB StitchTutorial: Building Your First App with MongoDB Stitch
Tutorial: Building Your First App with MongoDB Stitch
 
Android101
Android101Android101
Android101
 
Neeraj Kumar_Resume
Neeraj Kumar_ResumeNeeraj Kumar_Resume
Neeraj Kumar_Resume
 

Último

Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...PsychoTech Services
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...fonyou31
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024Janet Corral
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingTeacherCyreneCayanan
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 

Último (20)

Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 

Android Capstone Project, Final Deliverable Documentation

  • 1. "Mutibo" Android Capstone Project University of Maryland / Vanderbilt University via Coursera Nate Betz
  • 2. 2 Mutibo Project Description "Do you really like movies? Do you think you have a knack for solving puzzles? Test your movie trivia knowledge and puzzle solving abilities with Mutibo, a game in which you are asked to identify which movie in a group of movies is the odd one. After making your guess, the game will tell you the correct answer, explain the link between the movies, and let you rate the group of movie!" Application Architecture The application consists of a native Android application developed with Android Studio v0.8.14, REST-based server components developed in Java with Eclipse Luna and hosted by a local Tomcat server, with data persisted to a SQL Server 2012 RDMS instance. Application Tools, API's, and Components Utilized: Client Server Common Android Studio Eclipse Luna Git Google Play Services Spring Security HTTP/S Retrofit Spring Data REST MVC JSON Spring JPA JUnit Apache Tomcat OAuth2 JTDS JDBC Driver Gradle SQL Server 2012
  • 3. 3 Basic Project Requirements [BPR] and Implementation Details BPR-1: App supports multiple users via individual user accounts. Implementation: The application supports multiple users via individual user accounts that are authenticated with the Google Authentication API. Code References Client • SecuredRestBuilder.java • LoginScreenActivity.java Server • OAuth2SecurityConfiguration.java • ClientAndUserDetailsService.java BPR-2: App contains at least one user facing function available only to authenticated users. Implementation: Only authenticated users may start a new game. Code References Client • LoginScreenActivity.java (onConnected and updateUI) Server • OAuth2SecurityConfiguration.java (ResourceMapper and OAuth2Config) BPR-3: App comprises at least 1 instance of each of at least 2 of the following 4 fundamental Android components: • Activity • BroadcastReceiver • Service • ContentProvider Implementation: The application includes three Activity instances for the UI and one BroadcastReceiver instance. The BroadcastReceiver instance utilizes the system timer to provide a 10-second "bonus period" after a question is displayed, during which the player receives more points for a correct answer.
  • 4. 4 Code References Client • LoginScreenActivity • ScoreboardActivity • QuestionActivity • MyBroadcastReceiver Server BPR-4: App interacts with at least one remotely-hosted Java Spring-based service. Implementation: The application interacts with a remotely-hosted Java Spring-based service for all game activities. See Appendix I for REST API. Code References Client • GameSvc • Common.GameSvcAPI Server • GameController BPR-5: App interacts over the network via HTTP. Implementation: All interactions between the client and server and conducted over the network via HTTP/S. Code References Client • GameSvc • Common.GameSvcAPI Server • GameController BPR-6: App allows users to navigate between 3 or more user interface screens at runtime. Implementation: The client application consists of 3 interface screens: Main/Login screen, Question screen, and Scoreboard screen, each implemented as Activities. Code References Client • LoginScreenActivity • QuestionActivity Server
  • 5. 5 • ScoreboardActivity BPR-7: App uses at least one advanced capability or API from the following list (covered in the MoCCA Specialization): multimedia capture, multimedia playback, touch gestures, sensors, animation. Implementation: The application utilizes touch gestures, allowing the user to like or dislike a question by swiping up or down, and proceeding to the next question by swiping to the right. Code References Client • QuestionActivity (MyGestureDetector()) Server BPR-8: App supports at least one operation that is performed off the UI Thread in one or more background Threads of Thread pool. Implementation: All server requests are invoked by the client off the main UI thread via the use of AsyncTasks. Code References Client • CallableTask • TaskCallback • QuestionActivity, LoginscreenActivity Server •
  • 6. 6 Mutibo App Functional Requirements [MFR] and Implementation Details MFR-1: A Set is a unit of data that contains four movie titles, optional associated images for each movie, information identifying the one movie that is not like the other three, and accompanying text, explaining the relationship between the three related movies. Implementation: As described. See screeshots and video walkthrough for more details. Code References Client • QuestionActivity • (Common) QSet.java Server • QSetRepository MFR-2: A User should be able to log into the game using an authenticated user account. (Login & session cookie, Basic Auth, HMAC auth, or OAuth 2.0 bearer token required along with/HTTPS to access the game.) Implementation: A user logs into the game using Google Sign-in, which provides an OAuth2 token and username that are passed to the service over HTTPS. Code References Client • LoginScreenActivity • GameSvc Server • OAuth2SecurityConfiguration (EmbeddedServletContainerCustomizer and keystore file for HTTPS) MFR-3: A single game presents a series of Sets and guesses, until the User has made three Incorrect Guesses. Implementation: As described, the game ends after 3 incorrect guesses. Code References Client • QuestionActivity Server •
  • 7. 7 MFR-4: After viewing a Set, a User will be able to rate a Set based on the explanation of the link between the movies. Implementation: The user may Like a question set by swiping up, or Dislike a question set by swiping down. Code References Client • QuestionActivity Server • GameController (likeQSet() and dislikeQSet()) MFR-5: If a Set receives a large number of poor ratings, it can be removed from the game. Implementation: Question ratings are persisted to the database by the server. The query to retrieve the next question for any users will exclude questions for which the net rating (Likes minus Dislikes) is below a configuration threshold. Code References Client Server • GameController(nextSet()) • QSet NamedNativeQuery: QSet.GetRandomQSet • GetRandomQSet stored procedure MFR-6: For each successfully completed Set, the user will get Points. Implementation: Players receive points for each correct answer: 200 points if within the "bonus" period, otherwise 100 points. Code References Client • QuestionActivity (processAnswer()) Server • MFR-7: All data (questions, answers, points, etc.) are stored to and retrieved from a web-based service accessible in the cloud.
  • 8. Implementation: All data are stored to and retrieved from a web-based 8 service accessible via http and persisted to a SQL Server database. Code References Client • GameSvcAPI • GameSvc • SecuredResetBuilder Server • GameController • GameRepository Appendix I: REST API Path Method Function /oauth/token GET For OAuth authentication /mutibo/qset/scores GET Get high scores /mutibo/qset/next GET Get next QSet /mutibo/qset/getplayer GET Get player info /mutibo/qset/start GET Start new game /mutibo/qset/like/{id} GET Like the current QSet /mutibo/qset/dislike/{id} GET Dislike the current QSet /mutibo/qset/update POST Send game update to server
  • 9. Appendix II: UUII SSccrreeeenn CCaappttuurreess 9
  • 10. 10
  • 11. 11