CSCI 448 - Mobile Application Development (Android)

Spring 2020 - Final Project - There's An App For That

Quick Links: Canvas | CS @ Mines | Mines | Piazza

|   Home |  Syllabus |  Assignments |  Schedule |  Resources   |

Quick Links

· Elevator Pitch · Shark Tank · Team Formation · Proposal · Storyboards ·
· Alpha Release · Alpha Feedback ·
· Final Release · Website & Video · Final Report · Team Feedback · Final Presentation ·
· Deploy to Play Store · Sales Pitch ·

· Deliverables & Deadlines · Grading Rubric · Submission Process ·

For the Final Project, you and a team will create the app you've always dreamed of. The app content is completely open-ended and up to you. As the semester progresses, more information will be added to this page.


Part I - Elevator Pitch


The time is now! You've had this idea for a killer app that will make millions, but you never knew how to make it. This will be your chance. Unfortunately, your idea is too grand for you to implement it yourself. But don't worry, we have a team of developers at your disposal. The only catch, you need to convince them that you have the coolest app.

To do so, create two powerpoint slides that explain your idea. The first slide should have just your name on it. The second slide then has the pitch for your app. Upload these slides to Canvas by Thursday, January 16, 2020 11:59 PM. It is OK if there is already an existing app that does what you want to do. Try to improve it, add features you wish it had, etc. However, your app should not be a clone of the existing app. Make yours different and standout (something beyond a new color scheme).


Part II - Shark Tank


In class on Friday, January 17, 2020 you will have 30 seconds to pitch your idea to the class. In that 30 seconds, you are trying to convince everyone that they should want to be a part of your team.


Part III - Team Formation


Now that everyone has heard all the ideas, the Sharks have decided that they will only fund 20 apps. You must now get together into teams of 3 and decide which of your three apps you will implement.

Each member of your team needs to submit a text document with the following information:
  1. Team Name
  2. Team Members
  3. Whose app you are creating
  4. App Name
  5. One paragraph description of what app the will do
You will expand upon this document in the next deliverable.


Part IV - Proposals


Your team should come up with a company name and a catchy and/or punny name for your app. The team must submit an app proposal that states the following:
  1. Company Name
  2. Team Members
  3. App Name
  4. Description of the App - What does it do? How will a user interact with the app? What service does it provide?
  5. Database Usage - What information will need to persist? Is this data needed only for a single user and can be stored locally or is it needed across devices and needs to be stored in the cloud?
  6. Components/Features of the App - What Android features/functionality does the app make use of? (see list below)
  7. Planned distribution of labor - who will do what?
  8. Road map - how will you implement this app? What steps must be accomplished? Do these steps need to be performed in a specific order? Start thinking how you will build this.
  9. Anticipated Challenges
  10. Sources - if any outside ideas contributed to the app idea, if you are using any 3rd party libraries. Give credit where credit is due.
Your app must meet the following specifications:
  • Minimum SDK Version: API 21 (Lollipop)
  • Target SDK Version: API 24 (Nougat)
  • Proper Permissions checked at runtime
  • Local or Cloud Database
Your app must include at least three (3) of the following components:
  • 2D Canvas Graphics
  • 3D OpenGL ES Graphics
  • Animation of Properties
  • Background Services
  • Bluetooth (not covered in class)
  • Camera (not covered in class)
  • Custom Views
  • Maps / Location
  • Microphone (not covered in class)
  • Network
  • Near Field Communication (not covered in class)
  • Notifications
  • Sensors
  • Sound
  • Gestures & Touch Events
  • Other features not on this list with instructor permission
Your team needs to submit a PDF document that contains the above information. It should be at least two pages in length. Full credit will only be given for a well written and professional report.


Part V - Storyboards


It's time to begin designing your app - specifically the look and feel of the app. You must create a storyboard showing the following aspects of your app:
  • The layout of each screen. Where do you want your text boxes? Where will buttons go? Is this a list of items that the user can scroll through?

  • How the user moves through your app. If a user clicks on a button, what screen do they go to? How does that screen look?

  • Will portrait/landscape orientations differ? Do components of the screen need to be placed differently to accomodate the change in screen area?
This step will not involve any code writing. It is all planning. You may start to get an idea of what your Activities will be and what your Fragments will be.

Your team needs to submit a PDF document that contains all the screens/states/transitions your app will contain. It can be hand drawn and scanned, or more professionally done.


Part VI - Alpha Release


It's now time to start coding up your app! The main target of the Alpha Release is to turn your Storyboards into a working & navigatable app. Convert each storyboard into a layout. Hook up the buttons and events to allow the user to move through the app.

There does not need to be any domain functionality at this point. It is perfectly acceptable to have the following:
  • Normally pressing a button causes a large calculation to take place, a call to the web, and a pin dropped on a map.
  • At this point, pressing the button displays a toast stating "Your location will be plotted on a Google Map".
Your team will not have the knowledge yet to complete all the functionality. The Alpha Release is targeting creating the structure of your app. We will discuss in class that you need to hook up your app to Crashlytics reporting.

At a minimum, you must have an Alpha Release that serves as a proof of concept focusing on basic UI and functionality. A user should be able to navigate through the flow of the app and view the different screens. No backend functionality need be, or should be, present.

Your team needs to submit the apk for your app, an icon if you created a custom one, and a README. The README should document the following items:
  • Any usage instructions
  • Known bugs
  • Areas you would like feedback on
These three items should be zipped together and submitted to Canvas.


Part VII - Alpha Feedback


Each student will be randomly assigned three apps to review the Alpha Release of. Fill out this form for each app to provide helpful feedback to the development team. As you fill out the form, think about what sort of helpful feedback you would like to receive and let the other teams know. Try to break their app. If you succeed, then let the team know in a gentle manner. Also provide the steps to reproduce what you did. Examples of feedback will include:
  • Usage problems - e.g. buttons don't do what is expected, tried to do X but it wasn't supported
  • Errors - how to reproduce a nonfatal/fatal error
  • Suggestions - it would be cool to add Y
Every development team will receive feedback from 8-10 students.

Instructions for performing reviews will follow.

To install an APK, with your device connected to Android Studio open up a terminal and run the following command
For physical device: adb -d install path/to/your_app.apk
For emulator: adb -e install path/to/your_app.apk (you may also be able to drag-n-drop the apk to the emulator)

There is additional information to locate where adb is installed on your machine in the class slides and lab writeups.


Part X - Final Release


Take into account the feedback you received and address the errors/concerns that were raised. By this point you should have a polished app that not only accomplishes what you set out to do, but looks pretty slick as well. Your app should now be free of any bugs and does not unexpectedly crash. All functionality should be in place.

For this submission, you must now zip together your entire Android Studio project and upload all of your source code. Again include a README that states:
  • Any usage instructions (should be self-explainatory by this point. Ideally your users don't need a tutorial to use your app)
  • Known bugs (should be none)
These items should be zipped together and submitted to Canvas.


Part XI - Website & Video


Make a company webpage that advertises your app. If someone was to visit this page, then convince them to download your app. Show off its features, show screenshots, tell them about all the cool stuff it does.

Additionally, make a short video advertisement for your app. While it does not need to be professional in quality, it needs to be professional in content. You should include it on your webpage. Android Studio allows you take take a screen cast of your app running. You can see examples of videos from last year's apps in the App Store.

Zip together all the files for your webpage, along with your video (if it's not on YouTube or Vimeo), and upload to Canvas.


Part XII - Final Report


Your final report must include all documents turned in to this point (proposal, storyboards, alpha release notes, final release notes). In addition, be sure your report addresses these points:
  • A Tutorial/Guide/Walkthrough how to use your app. Walk a user through all the cool stuff your app does.
  • Describe the technical aspects of your app. What is going on behind the scenes?
  • Describe the components you added to your app. Why was each necessary? What do they add to the user experience?
  • How did your final design differ from your original concept? Why were you forced to make these changes?
  • Address the challenges your team faced during the development process. How did you overcome these hurdles?
  • Include screenshots that exhibit the feature being discussed for each section above.
Upload a single PDF containing all of the above to Canvas.



Part XIII - Team Feedback


Each Team Member will provide feedback on the team experience. This will include division of labor and division of effort. How well did your team work together? Did everyone contribute equally towards the project? Did any problems arise throughout the process?


Part XIV - Final Presentation


Your website and video will serve as your final presentation. The other teams will be reviewing your submission. Criteria will include:
  • Quality of Presentation - clarity, enthusiasm, etc.
  • Quality of App - is app complete, is it free of bugs, etc.
Additional details will follow.


Part XCI - Deploy to Play Store


Register as a Google developer and submit your app to the Play Store. Advertise your app everywhere! Extra points will be given based on the number of downloads your app receives. More downloads == more points!


Deliverables & Deadlines


Below is the timeline of deliverables. If Submission Type is listed as "Individual", then every team member is expected to provide a submission to Canvas. If Submission Type is listed as "Team", then the full submission only needs to be done by one team member Canvas. There are no late extensions on any of the final project deliverable deadlines. These are hard deadlines, penalties will be applied for late submissions. As we approach each deadline, additional details will be given as needed.

Deliverable ID Deliverable Item Due Date Submission Type
EP Elevator Pitch Thursday, January 16, 2020
11:59 PM
Individual
ST Shark Tank Friday, January 17, 2020
2:00 PM
(in class)
Individual
TF Team Formation Wednesday, January 22, 2020
11:59 PM
Individual
AP App Proposal Friday, January 31, 2020
11:59 PM
Team
SB Storyboards Monday, February 10, 2020
11:59 PM
Team
AR Alpha Release Monday, March 09, 2020
11:59 PM
Team
AF Alpha Release Feedback Friday, March 13, 2020
11:59 PM
Individual
FR Final Release Wednesday, May 06, 2020
11:59 PM
Team
WV Website & Video Thursday, April 30, 2020
11:59 PM
Team
FT Final Report Wednesday, May 06, 2020
11:59 PM
Team
FP Final Presentation Review Wednesday, May 06, 2020
11:59 PM
Individual
FB Team Feedback Wednesday, May 06, 2020
11:59 PM
Individual
PS Extra Credit: Deploy to Play Store Wednesday, May 06, 2020
11:59 PM
Team


Documentation


With this and all future assignments, you are expeced to appropriately document your code. This includes writing comments in your source code - remember that your comments should explain what a piece of code is supposed to do and why; don't just re-write what the code says in plain English. Comments serve the dual purpose of explaining your code to someone unfamiliar with it and assisting in debugging. If you know what a piece of code is supposed to be doing, you can figure out where it's going awry more easily.

Proper documentation also means including a README.txt file with your submission. In your submission folder, always include a file called README.txt that lists:
  • Your Name / email
  • Assignment Number / Project Title
  • A brief, high level description of what the program is / does
  • A usage section, explaining how to run the program, which keys perform which actions, etc.
  • Instructions on compiling your code
  • Notes about bugs, implementation details, etc. if necessary


Grading Rubric


Your submission will be graded according to the following rubric.

Component Percentage Requirement Description
Deliverables

15%
1% Elevator Pitch submitted on time
1% Shark Tank Presentation performed
1% Team Formation submitted on time
1% App Proposal submitted on time
1% Storyboards submitted on time
2% Alpha Release submitted on time
1% Alpha Release Feedback submitted on time
3% Final Release submitted on time
1% Website & Video submitted on time
1% Final Report submitted on time
1% Team Feedback submitted on time
1% Final Presentation submitted on time
App Content of Final Release

55%
5% App runs without errors
5% App accomplishes task it was designed to do. Activites & Fragments used properly
5% App supported on API 21 (Lollipop) device. App runs properly on API 24 (Nougat) device
5% Permissions properly checked at runtime
5% Database present and used properly
30% App contains three or more of necessary components. Components are used properly
Reporting

25%
2% Documentation provided with Alpha & Final Releases.
2% Helpful feedback given on Alpha Release as determined by development teams.
5% Report well written, technically sound, accurate to project, well organized, documents design, and complete.
4% Website advertises your app
4% Promo video advertises your app
8% Final Presentation is of high quality, demonstrates a polished app, and sells your app.

Team Evaluation

5%

5% Feedback as provided by team members regarding contributions, effort, team player, etc.
Extra Credit

Up To 7%
3% App deployed to the Play Store and available for download. App downloads and runs without error.
Up To 4% Points awarded for number of downloads reached at presentation time. More downloads mean more points!


Submission


When you are completed with each deliverable, compile a file named

<NAME>_FP_<DELIVERABLE_ID>.<EXT>

where NAME is either your name (if individual submission) or your team name (if team submission), DELIVERABLE_ID is the ID of the current deliverable, and EXT is the file type expected for the given submission. Upload this file to Canvas under the appropriate deliverable section of the Final Project.


Last Updated: 04/19/20 20:40


Valid HTML 4.01 Strict Valid CSS! Level Triple-A conformance, W3C WAI Web Content Accessibility Guidelines 2.0