Term Project - Milestone 4
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
- To add cloud serving of assets.
- To add another primary function that leverages searching, location services, camera/gallery, etc.
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
- 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.
- (5 pts) Offer Informative Feedback: for every user action, there should be an interface feedback.
- (5 pts) 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.
Instructions for Dr. Strayhorn-Carter’s Mindfulness Project
- Make a button on the Progress Screen that resets the current user’s progress back to the initial, default state for ease of testing.
- 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.
- 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.
- Four separate surveys are available:
- The Weekly Content screens must:
- Each week must include the following 4 steps to complete:
- An embedded video
- A reflective prompt and textbox response
- A second embedded video
- 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.
- Each week must include the following 4 steps to complete:
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 April 20.
- Information must be stored on a per-user basis, i.e., created posts, high scores, collections of tasks, etc.
- 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.