Term Project - Final Deliverables

  1. Objectives
  2. Collaboration
  3. Due
  4. Implementation Instructions
    1. General Requirements
    2. Instructions for the Default Project
    3. Instructions for Custom Projects
    4. App Submission
  5. Summary Slides and 5-minute Demo
    1. Summary Slide instructions
    2. 5-minute Demo instructions
    3. Submission instructions for summary slides and 5-minute demo

Objectives

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

  1. Code pushed to GitHub
  2. slides and demo uploaded to Canvas

Implementation Instructions

The following instructions are for your mobile app’s implementation.

General Requirements

Instructions for the Default Project

The term site refers to UNCW buildings, landmarks, or any other point of interest.

  1. 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.
  2. (5 pts) “Favorite” information must be on a per-user basis, i.e., favorites are not shared among all users.
  3. (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

  1. 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.
  2. (5 pts) Information must be stored on a per-user basis, i.e., created posts, high scores, collections of tasks, etc.
  3. (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:

  1. A title slide with the name of your project and the people who authored it.
  2. 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.
  3. 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.