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
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”
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
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