Quick Links
· Elevator Pitch · Shark Tank · Team Formation · App Proposal · Storyboards ·· Alpha Release · Alpha Feedback · Beta Release · Beta 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 by 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 a 30-second video that sells your idea. Be sure to state your name, the app name, and describe what the app does. Display some sort of mockup/visual that teases the content of the app. Upload this video to Canvas by Friday, January 20, 2023 11:59 PM. (NOTE: The video does not need to be professionally done but should be polished. You can do a voiceover PowerPoint slides, capture a whiteboard drawing, etc.)
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
After the elevator pitches have been submitted, you will be randomly assigned 40 videos to view. (You are encouraged to view more to see a wider variety of proposed apps.) For each video, you will need to provide feedback/suggestions on the idea.
Part III - Team Formation
Now that everyone has heard about the ideas, the Sharks have decided that they will only fund 25 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:
- Team Name
- Team Members
- Whose app you are creating
- App Name
- One paragraph description of what the app will do
You will expand upon this document in the next deliverable.
Part IV - App Proposal
Your team needs to come up with a company name and a catchy name for your app. The team must submit an app proposal that states the following:
- Company Name
- Team Members
- App Name
- Description of the App - What does it do? How will a user interact with the app? What service does it provide?
- Database Usage - What information will need to be persisted across sessions? 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? Include an ER or UML diagram describing the Model layer of your app.
- Components/Features of the App - What Android features/functionality does the app make use of? Where will they be used? Why are they necessary? (see list below)
- Planned distribution of labor - who will do what?
- 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 app.
- Deliverable Leaders - look below at all of the future deliverables that are team deliverables. There are six team deliverables to be submitted before the final presentation. Each team member will be the deliverable lead who is responsible for making the team's submission of that deliverable. If the team deliverable is late or missing, then the lead will be docked the penalty (not the entire team). State who will be the lead for each deliverable. Each team member must be responsible for two deliverables.
- Anticipated Challenges - what could go wrong? What difficulties lie ahead?
- 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 29
- Proper Permissions checking at runtime
- Local or Cloud Database
- Multiscreen Navigation using NavGraphs with SafeArgs
- Single Activity with Compose UI
Your app must include at least three (3) of the following components:
- 2D Canvas Graphics (programmatic graphical drawings, not drawable images that are displayed - not covered in class)
- 3D OpenGL ES Graphics (not covered in class)
- Animation of UI Properties
- Audio
- Background Services (e.g. Alarms, JobScheduler, Services, WorkManager - not all covered in class)
- Bluetooth (not covered in class)
- Camera (not covered in class)
- Maps and/or Location
- Microphone (not covered in class)
- Network
- Near Field Communication (not covered in class)
- Notifications
- Sensors (not covered in class)
- Gestures (e.g. pinch/swipe - not covered in class)
- 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 three 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 accommodate the change in screen area?
This step will not involve any code writing. It is all planning and will form the basis of your NavGraph. You will start to get an idea of what your Screens 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 NavGraph. Convert each storyboard into a Screen with corresponding 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 business logic. The Alpha Release is targeting creating the structure of your app. We will discuss in class that you should 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 flow and functionality. A user should be able to navigate through 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 document must contain the following items:
- Any usage instructions
- Known bugs
- Areas you would like feedback on
These three items will 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 the provided 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 for your app and let the other teams know. Try to gracefully 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)
Part VIII - Beta Release
After receiving your first round of feedback, it is now your opportunity to respond to the comments left and fix any bugs that were discovered.
You must have a Beta Release that is an improvement upon your Alpha Release. This should include bug fixes, refactoring, modifications, improvements, and there should be SOME domain functionality in place.
Your team needs to submit the apk for your app, an icon if you created a custom one, and a README. The README document must contain the following items:
- Any usage instructions
- Known bugs
- Current areas you would like feedback on
- A list of the feedback you received for the Alpha Release and a comment stating how you addressed the comment
These three items will be zipped together and submitted to Canvas.
Part IX - Beta Feedback
Each student will be randomly assigned three apps to review the Beta Release of. Fill out the provided 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 for your app and let the other teams know. Try to gracefully 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.
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-explanatory by this point. Ideally your users don't need a tutorial to use your app)
- Known bugs (should be none)
These items will 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 a screencast 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, beta release notes, final release notes). In addition, be sure your report addresses these points:
- A Tutorial/Guide 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. Where are they present? 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 Members 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
During the Final Exam Time Slot, each team will give a 5-minute presentation demonstrating and selling their app. Your goal is to show off how cool your app is. Demo all of its features. Also give the audience an insight to the back-end, what's going on behind the scenes? What are the cool features and implementation details you included?
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!
Part XCII - Sales Pitch
On (Wednesday, May 03, 2023 6:00 PM - 7:30 PM), the Department of Computer Science will be holding a Computing Innovation Fair. For extra credit, you can choose to present at or attend the Fair. Read on for details of each.
For three points of extra credit (enough to cancel one late submission), you can simply attend the Fair. To receive credit, submit to Canvas a picture of yourself next to your favorite poster. This picture must be uploaded by 11:59pm the night of the Fair.
For six points of extra credit (enough to cancel two late submissions), you will agree to present a poster about your project at the Fair. You are encouraged to bring a device and demo your app as well. There will be two milestones during this process:
- Wednesday, April 05, 2023 2:00 PM - complete Canvas survey confirming your intent to present at the Fair
- Date TBD - submit poster for printing for the Fair
To receive credit, submit to Canvas a picture of yourself next to your poster. This picture must be uploaded by 11:59pm the night of the Fair.
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 the deliverable lead member to 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 | Friday, January 20, 2023 | Individual |
ST | Shark Tank | Tuesday, January 24, 2023 | Individual |
TF | Team Formation | Friday, January 27, 2023 | Individual |
AP | App Proposal | Friday, February 03, 2023 | Team |
SB | Storyboards | Friday, February 10, 2023 | Team |
AR | Alpha Release | Monday, March 13, 2023 | Team |
AF | Alpha Release Feedback | Friday, March 17, 2023 | Individual |
BR | Beta Release | Monday, April 10, 2023 | Team |
BF | Beta Release Feedback | Thursday, April 13, 2023 | Individual |
SP | Extra Credit: Sales Pitch | Wednesday, May 03, 2023 6:00 PM - 7:30 PM |
Individual |
FR | Final Release | Sunday, May 07, 2023 | Team |
WV | Website & Video | Sunday, May 07, 2023 | Team |
FT | Final Report | Sunday, May 07, 2023 | Team |
FP | Final Presentation | Monday, May 08, 2023 3:15 PM |
Individual |
FB | Team Feedback | Monday, May 08, 2023 3:15 PM |
Individual |
PS | Extra Credit: Deploy to Play Store | Monday, May 08, 2023 3:15 PM |
Team |
Grading Rubric
Your submission will be graded according to the following rubric.
Component | Points | Requirement Description |
Deliverables 48 points |
4 | Elevator Pitch completed and submitted on time |
4 | Shark Tank Presentations reviewed on time | |
4 | Team Formation completed and submitted on time | |
4 | App Proposal completed and submitted on time | |
4 | Storyboards completed submitted on time | |
6 | Alpha Release UI Logic completed and submitted on time | |
6 | Alpha Release Feedback reviewed on time | |
6 | Beta Release Presentation/Model Logic completed and submitted on time | |
6 | Beta Release Feedback reviewed on time | |
2 | Website & Video submitted on time | |
2 | Final Report submitted on time | |
-3 | Late deduction for any Deliverable that is submitted late. Team will receive 0 submission points AND Deliverable Lead will receive a 3 point deduction | |
App Content of Final Release 120 points |
10 | App runs without errors |
10 | App accomplishes task it was designed to do and is complete. | |
5 | App supported and runs properly on API 29 or above device | |
20 | Database implemented as appropriate | |
10 | MVVM implemented with Activities, Compose UI, ViewModels, and Entities as appropriate | |
20 | Navigation implemented with NavGraphs, SafeArgs, and Deep Links as appropriate | |
45 | App contains three or more of necessary components. Components are used as appropriate | |
Reporting 22 points |
8 | Report well written, technically sound, accurate to project, well organized, documents design, and complete. |
4 | Website and Promo Video advertise your app | |
10 | Final Presentation is of high quality, demonstrates a polished app, and sells your app while giving technical detail. | |
Team Evaluation 10 points |
10 | Feedback as provided by team members regarding contributions, effort, team player, etc. |
Extra Credit Up To 12 points |
3 | App deployed to the Play Store and available for download. App downloads and runs without error. |
Up To 3 | Points awarded for number of downloads reached at presentation time. More downloads mean more points! | |
Up To 6 | Sales Pitch Participated In. |
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.