Term Project - Final Deliverables
Objectives
- To add cloud serving of assets.
- To add another primary function that leverages searching, location services, camera/gallery, etc.
- To prepare a summary slide deck and video of your application.
Collaboration
Work with your project partner(s), if any, on this assignment. The GitHub history must show approximately equal amounts of code contribution from both partners.
Due
May 8 @ 11:59pm
- Code pushed to GitHub
- slides and demo uploaded to Canvas
Implementation Instructions
The following instructions are for your mobile app’s implementation.
General Requirements
- Your app will be tested on a phone. Make sure that you are testing in either the emulator or a real phone.
- Put a file in the root of your project named
TESTER.txt
and inside it put the login and password for an account that will work with your app. - (10 pts) Pervasive requirements:
- Each Screen must have an appropriate title.
- The App Bar must have backward navigation.
- The project must be free of warnings and errors. These are reported in the “Problems” tab. You may not ignore warnings without instructor permission.
- Code must be formatted according to Dart conventions. VS Code’s formatting tool will do this for you.
- Adhere to the 8 Golden Rules of Interaction Design. Your grade will be impacted by
- (5 pts) Violations of Rule #3 - Offer Informative Feedback. For every user action, there should be an interface feedback.
- (5 pts) Violations of Rule #5 - Prevent errors. You are responsible for testing for and preventing the silly things that users will do.
-
(5 pts) Your app must not have runtime errors, including crashes and RenderFlex overflow errors.
- For those working in pairs: the GitHub history must show approximately equal amounts of code contribution from both partners.
Instructions for the Default Project
The term site refers to UNCW buildings, landmarks, or any other point of interest.
- All of the features from Milestones 1–3 must be correctly implemented:
- An About page
- A Home Screen that displays a list/grid of UNCW sites including pictures.
- A Detail Screen that displays additional information for a selected UNCW site.
- “Sign Up” and “Login” functionality that allows a user to register for the app with an email and password using Firebase Authentication. These functions are only accessible when the user is logged out.
- “Logout” functionality that is only accessible once the user is logged in.
- UNCW site data is read from the Cloud Firestore.
- The user can “favorite” and subsequently “unfavorite” a site. This “favorite” information is written to the Cloud Firestore.
- All user input forms (e.g., email, password) are validated and display appropriate error messages.
- (5 pts) “Favorite” information must be on a per-user basis, i.e., favorites are not shared among all users.
- (10 pts) You must implement two of the following. The others are worth extra credit.
- Search integration: The user must be able to search sites in some way and view the search results.
- Location integration: You must incorporate location polling into the app, and the location data must provide a benefit to the user. Simply displaying the user’s coordinates or site coordinates is not sufficient. You may want to calculate the user’s distance from a site, drop pins on a map, or sort the site list by distance.
- Picture upload or camera integration: Users must be able to upload pictures of something, e.g., their own pictures of sites or a profile picture. The uploaded pictures must be displayed somewhere in the app, and the picture files must be stored in Firebase.
- Animation: Use animations in a meaningful way. Approved meaningful animations are:
- Transitions between screens using Hero animations,
- Providing feedback on favoriting/unfavoriting a site using Implicit Animations
- Drawing the user’s attention to errors in specific form fields.
- Other uses of animation must be approved by the instructor.
Instructions for Custom Projects
- Your project must be “feature complete”, meaning that all approved functionality in your original project proposal must be completed. Reductions in project scope must be approved by the instructor prior to May 1.
- (5 pts) Information must be stored on a per-user basis, i.e., created posts, high scores, collections of tasks, etc.
- (10 pts) You must integrate two of the following. The others are worth extra credit. If these are not sensible for your project, you may obtain approval from the instructor prior to December 1 to substitute other functionality.
- Search integration: The user must be able to search your apps in some way and view the search results.
- Location integration: You must incorporate location polling into the app, and the location data must provide a benefit to the user. Simply displaying coordinates is not sufficient.
- Picture upload or camera integration: Users must be able to upload pictures of something, e.g., their own pictures of sites or a profile picture. The uploaded pictures must be displayed somewhere in the app, and the picture files must be stored in Firebase.
- Animation: Use animations in a meaningful way. Approved meaningful animations are:
- Transitions between screens using Hero animations,
- Providing interaction feedback using Implicit Animations
- Drawing the user’s attention to errors in specific form fields.
- Other uses of animation must be approved by the instructor.
App Submission
Commit and push your project to GitHub.
Summary Slides and 5-minute Demo
In addition to your final functionality, you must prepare short summary materials that demonstrate what you have accomplished. You will not be presenting anything – only creating documentation.
Summary Slide instructions
The slides should be minimalist – I really just want you to capture screenshots with some context. Slides must be saved in Microsoft Powerpoint .pptx
format..
(10 pts) Provide the following:
- A title slide with the name of your project and the people who authored it.
- 4-5 slides that show screenshots of your running app, where each screenshot is captioned with a brief statement of the functionality it implements. You can have multiple screenshots and multiple functions on a slide, just ensure that everything is legible. The iOS Simulator, the Android Emulator, and all phones have the capability to capture screenshots.
- Save the slides in Microsoft Powerpoint
.pptx
format. If converting from another format, e.g., Keynote, ensure that the content is still properly formatted.
5-minute Demo instructions
(10 pts) Record a maximum 5-minute screen recording of your application that demonstrates its primary features. The iOS Simulator, Android Emulator, and most smartphones are capable of screen recordings. Adding voice narration is optional.
Verify that the recording saves to a file and is complete, correct, and clear.
Submission instructions for summary slides and 5-minute demo
Upload your slides and demo recording to Canvas.