This repository contains an Android App created through an iterative process with a scrum team.
♨️ Java and Android Studio was used to program the app.
🦾 Team Members
This project is not intended to be open-source, feel free to use it as a reference but DO NOT FORK!
If used as reference, please cite by providing link to project and author name (see section below).
Watch quick demos of the project through the link below!
📼 Coin Flip Video Demo Link
📼 Take Breath Video Demo Link
This project is a group project for CMPT 276 (Dr. Brian Fraser). This project allowed team members to practice what it would be like to write an application in a scrum team.
This project runs an Android App that helps parents manage their family. It allows parents to help determine which child's turn it is to do a task, and helps with determining what's "fair" (through the flip coin feature) in tricky situations. The app keeps track of all children added on the front page and allows the user to add the child's name and image. There are more features explained below.
-
Timer ⏱️
- Play, pause, reset timer
- Timer still runs when navigated outside of feature
- Alarm rings when timer is up
- Banner notification shows when timer is running
- Graphical view of timer counting down
- Show remaining time
- Quick buttons that set timer without needing to input number (1,2,3,5,10 mins)
-
Coin Flip ⚖️
- On tap, the coin flips and a sound plays when flipped
- Results are pseudo-random
- Has queue of which child's turn it is to flip the coin
- Can override which child's turn; manually select child to flip coin
- Shows history of coin flip results and which child flipped the coin
- Child's profile picture can be shown
- Date, time, and result is recorded
-
Add Child 🧒
- Add, edit, configure a child - name and photo
- Add a profile picture to the child, general picture is used if there is none
- Can take picture with phone's camera, crop picture, or use picture from library
- Saves data of the child across all uses in app
-
Breathe ☁️
- Main button is held down to help user take deep breaths
- User can toggle number of breaths to take
- Calming music plays when the button is pressed down, paused when the button is released
- Main button increases/decreases in circumference as it is being held
- Words 'In'/'Out' are displayed to show if a breath needs to be taken or let out
-
Tasks ✔️
- Maintains a list of tasks that all children need to do, as each task is completed the next child in the queue is assigned the task
- Tasks are named on created
- Shows history of which child did what task in the past
- Updates as children are added or deleted
- Tasks can be cancelled, or child's turn can be skipped
- Shows picture of the child associated with task
-
App Info ❔
- References to external sources linked
- Developers credited
- Copyright information listed
See video demos for more comprehensive walkthrough.
App Features lists a lot of different skills we had to learn as a team in order to implement this app properly.
- Practiced using Shared Preferences extensively
- Utilized Java Threads for timer and alarms
- Practiced programming for both Light mode and Dark mode
- Utilized Singleton Design for app navigation (as opposed to fragments)
- Created a main menu that takes users to different features of the app
- Created a timer feature from scratch
- Created a digital coin flip feature with sound and graphics
- Practiced designing UI in Android Studio
- Practiced serializing and deserializing objects
- Practiced doing code reviews and using pull requests
- 🐞 There are minor bugs! Depending on which type of Android phone is used, vibrations from the timer may not always work.
- UI Visuals were not a priority in this project as the main goals were focused on developing something as a team.
This project was created for phones that run Android OS.
Unfortunately there is no Apple equivalent available.
- Android OS
- Use on Tablets is NOT recommended.
- Minimum APK 31
- Any lower APKs have not been tested with this app and is NOT recommended.
- Click into the practicalParentApp.apk file.
- Click 'Download' to download the file.
- Navigate your phone's directory to find the downloaded file.
- Check 'Internal storage' and then the 'Downloads' folder
- Click on the file to download
- Pop-up will appear, 'Allow 3rd-party download'
- This step will be different depending on the phone
- May need to toggle Settings in Files to allow download
- Click 'Install' and let the app download.
- The app will now be ready to use!
Most of the graphics in this app were created by the developers, the listed ones below are creative commons work found from open-source libraries online.
Example of citing this project as a reference:
Reference used for manifest issues in Android Studio: https://github.com/mrpthemrp/practical-parent-app/blob/master/app/src/main/AndroidManifest.xml
Date Accessed: December 2022
Developers: Haris Ahmad, Christopher Torunski, Michelle Vong, Deborah Wang
If using this project as a reference please copy and paste the following into your references/citations:
Reference for <code referenced>: <file/folder URL>
Date Accessed: <date accessed>
Developers: Haris Ahmad (https://github.com/HarisAhmad16), Christopher Torunski (https://github.com/cjtorunski), Michelle Vong (https://github.com/michvong), Deborah Wang (https://github.com/mrpthemrp)
Last Code Update Date: September 2022
Copyright October 2021, Deborah Wang