Term Project - Milestone 4

  1. Project Milestones
  2. Objectives
  3. Collaboration
  4. Due
  5. Implementation Instructions
    1. General Requirements
    2. Instructions for Dr. Strayhorn-Carter’s Mindfulness Project
    3. Instructions for Custom Projects
    4. Submission

Project Milestones

Due Title
  Term Project Description
March 16 Milestone 1: Prototypes, User Flow Diagram, and Starter Code
March 23 Milestone 2: Primary and Secondary Display
April 6 Milestone 3: Authentication and Cloud Data
April 27 Milestone 4: Minimum Viable Product (this page)
May 7 Final deliverables

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

April 27 @ 11:59pm

Implementation Instructions

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

General Requirements

Instructions for Dr. Strayhorn-Carter’s Mindfulness Project

  1. Make a button on the Progress Screen that resets the current user’s progress back to the initial, default state for ease of testing.
  2. The statuses and user interactivity on the Progress Screen must accurately implement time-based logic.
    • Code weeks 1-6 in the Firestore as becoming available sometime in the past, say April 1 2025.
    • Code weeks 7-8 in the Firestore as available May 30 2025.
    • Weeks 1-6 should be “available”, but whether they are in progress or locked because the user has not completed the preceding weeks should be determined by the individual user’s interactions.
    • Weeks 7-8 should be “locked” and unavailable due to the time constraint.
  3. A Survey Screen or interactive pop-up is displayed automatically when the following conditions are met:
    • Four separate surveys are available:
      • At the start of Week 1
      • At the start of Week 4 (after completion of all Week 3)
      • At the start of Week 6 (after completion of week 5)
      • At the completion of Week 8
    • The Survey Screen displays a URL link to the survey and a text field to enter a completion code. The URL and completion code will be different for each of the surveys. This data must be in the Firestore.
    • The Survey Screen must automatically pop-up when available and the user has not completed the survey.
    • The Survey Screen will validate the code and display an error if the incorrect code is entered.
    • The user can dismiss the screen, but the content of the Progress Screen is disabled until they complete the survey.
    • The user must have the ability to manually display the Survey Screen from the Progress Screen.
  4. The Weekly Content screens must:
    • Each week must include the following 4 steps to complete:
      1. An embedded video
      2. A reflective prompt and textbox response
      3. A second embedded video
      4. A second reflective prompt and textbox response.
    • The embedded videos must be stored in Firebase Cloud Storage. You can find video player Flutter libraries on https://pub.dev/packages?q=video+player.
    • The textbox responses must prepulate with the user’s previous answer.
    • Do not allow users to change their responses once a week is completed.
    • All responses and weekly progress must be recorded on a per-user basis, i.e., Alice’s progress is different from Bob’s.

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 April 20.
  2. Information must be stored on a per-user basis, i.e., created posts, high scores, collections of tasks, etc.
  3. 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 April 20 to substitute other functionality.
    • Search integration: The user must be able to search your app 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.

Submission

Commit and push your project to GitHub.