An app that helps to implement the Pomodoro technique while working.
- Category: Productivity
- Mobile: This app would be only developed for mobile
- Story: The app allows the user to set a desired amount of time on their mobile, when the timer starts a small graphic of a plant pops up and it grows with time on the screen. If the user uses their phone while the timer is on, the plant dies. There would also be a leaderboard where friends can keep track of each others productivity.
- Market: Any individual could choose to use this app, and to keep it healthy work environment, there would be a friend's leaderborad available for usage. Any individual could choose to use this app, the main target group is for individuals who would like
- Habit: This app could be used as often or unoften as the user wanted depending on how well they need to increase their productivity and stay focused on their work.
- Scope: This app can be integrated into the operating systems like ios/android in future to reduce screentime in general use.
Required Must-have Stories
- User logs in to access preference settings
- App will play a pleasent sound when timer is running
- users can change password
- Profile pages for each user
- Settings (Accesibility, Notification, General, etc.)
Optional Nice-to-have Stories
- App will display a motivational quote after their time goal is achieved
- User can see leaderboard
- Login
- Register - User signs up or logs into their account
- Upon Download/Reopening of the application, the user is prompted to log in to gain access to their profile information.
- Main screen - gives option to the users
- users can click on leaderboard or set a goal to be achieved
- Work screen - screen that shows up when the person would be working
- It will display the timer with the growth of the tree
- Profile Screen
- Allows user to upload a photo and fill in information that is interesting to them and others
- Leaderboard Screen.
- Allows user to compete and see the points of their friends
- Settings Screen
- Lets people change language, and app notification settings. Users can change their profile pictures and password.
Tab Navigation (Tab to Screen)
- Home Screen
- Profile
- Settings
- Work Screen
- Leaderboard
- Add friends
- Upload profile pics
Flow Navigation (Screen to Screen)
- Forced Log-in -> Account creation if no log in is available
- Main Screen (User can set timer) -> Jumps to Setting, Leaderboard and Work Screen
- Settings -> Toggle settings, change profile picture (Jumps to Change Profile Screen)
Here's a walkthrough of implemented user stories:
Property | Type | Description |
---|---|---|
userId | String | unique username for the user |
password | String | password of the account |
scoreCount | Number | score the user has achieved |
- Log In Screen
- (Read/Get) User's credentials
- (Create/POST) New users' credentials
- Main Screen
- (Create/POST) Users input their desired amount of time
- Profile Screen
- Add friends
- (Update/PUT) Update user profile image
- Work Screen
- (Read/GET) Countdown timer
- Leaderboard
- (Read/GET) Amount of time user's friends has accomplished
- (Read/GET) Query all scores where user is author
let query = PFQuery(className:"Leaderboard") query.whereKey("author", equalTo: currentUser) query.order(byDescending: "createdAt") query.findObjectsInBackground { (scores: [PFObject]?, error: Error?) in if let error = error { print(error.localizedDescription) } else if let scores = scores { print("Successfully retrieved \(scores.count) posts.") // TODO: Do something with posts... } }