Front-End:
All screens have a lock-in logo in the top left, which redirects to the lock-in page (this also can be accessed by pressing the lock-in button that is always in the bottom center)
- Initial Log-In:
- Handled using Firebase, authentication either through a native username/password or through a Google account
- If login has been saved through the app/Apple keychain/etc, this screen doesn't appear (unless manual logout occurs)
- Three Pages
- Archive
- Has three main pages:
- Monthly Calendar
- This holds all of the lock-ins engaged with on a daily basis (also includes failed lock-ins)
- A failed lock-in is populated if a day (+ grace period) has passed without a lock-in being recorded, this is automatically stored in the calendar
- Lock-Ins
- This holds each instance of a lock-in in a folder that has every instance of the lock-in, organized by date
- Also includes failed lock-ins, once again categorized by dates
- Failed Lock-Ins (Punishments)
- All failed lock-ins are organized here
- First categorization is by individual lock-in (e.g. gym), then by date
- All failed lock-ins are organized here
- Monthly Calendar
- Has three main pages:
- Lock-In (default)
- This is the main page that is opened when the user opens the app after logging in
- The top center of this page is a button to add new lock-ins
- Name of lock-in
- Optional description
- Frequency (once/week? twice/week? everyday? every other week?)
- Scheduled reminder times (default will be once every six hours on the day lock-in occurs)
- Below this will be filters that show three sections:
- Active
- Within this, the user can sort by lock-ins today, tomorrow, next week or next month
- Planned
- This will hold all lock-ins that don't have a set date to begin
- On Hold
- This will hold all lock-ins with the property "on hold"
- Active
- Feed:
- Populates as people that the user has added post their lock-ins
- Posts remain on the lock-in feed for 24 hours before disappearing from the screen
- Posts consist of a profile picture in the top left corner, a date on the top right corner, the name of the lock-in, the number of times this lock-in has occurred consecutively (with the total number in parentheses), an attachment of the lock-in occurring, and an optional caption
- Feed allows for accessing profiles:
- Each user profile has their profile picture, their name, when they joined Lock-In, and the lock-ins they're publicly tracking
- If a lock-in hasn't been engaged in by the allotted time, a "LOCK-IN!" button will appear, which a user (if mutually added) can press to send a push notification to the other user to remind them to engage in their lock-in
- If a lock-in hasn't been engaged in a day (+ grace period), the app will automatically post a failed lock-in message that will include:
- pfp
- name
- date
- FAILED {habit name}
- Text that says: "Sorry! I didn't lock-in today because I was busy being a bum. Please suggest punishments so this doesn't happen in the future"
- A punishment suggestion button
- This will redirect to a simple text field where users can suggest punishments
- This will populate in the original users post, where they will be prompted to select a punishment from the suggested list
- Once a punishment has been confirmed, this will create an apology form
- This will redirect to a simple text field where users can suggest punishments
- An apology form includes:
- pfp/name/date
- APOLOGY: FAILED {habit name}
- a MANDATORY caption, where the user will explain why they failed and what they're going to do to prevent this from occurring in the future
- An attachment of them doing the punishment
- Search bar
- Users can be searched by username, where their real name and date that they joined will appear, alongside an "add" button
- Clicking on this add button will send an add request to the other user
- This will appear in the requesting users "outgoing requests" page and the requested users "incoming requests" page
- If approved, the added user will appear in the original user's "friends" list
- Right sidebar:
- On every screen, there will be a small circular profile button that has the profile picture of the user. When clicked, this will open up a sidebar that has access to settings, options to change username, password, and customize the appearance of the application
- Archive
Screens
!IMG_0624.jpeg
!IMG_0625.jpeg