OK. Sunday. The kids were staying with grandpa this afternoon. I am on a healthy second day of everyman-3 schedule. The perfect time to push the uberman project forward.
I did mainly play with eclipse and built some little apps which I tested on my LG Optimus 3D / Android Smart Phone (Picture above). After I was content that I could solve all potential technical problems, I sat down and wrote a little doc with a description of all the features I have in mind for the first version.
This is a first rough design of what I am heading for right now. The application will consist of
- a web (browser) application for evaluation and administrative purposes and
- a mobile app which will be available for all major smartphone os (android, iOS, Windows Phone).
I am very glad for any reasonable suggestion / any feedback.
Also: If you dare to lay hands on this tool very early, please let me know. It will be months before this is publically released and several weeks before there is any stable beta. But I will certainly use the very first versions of this tool myself and so you might too if you can stand the risk to loose data, live with server downtimes or severe bugs (I will take care that none of these happen, but its always risky during development).
1 Features / Use cases
1.1 Web Application
1.1.1 Register new user
New users can register by simply choosing a nickname and a user password.
1.1.2 Edit user profile
Users can edit their profiles (Nickname, Password, Email) at any time.
1.1.3 Delete user
Users can delete their personal data. The sleep tracks (if any) remain as anonymous tracks for statistical purposes.
1.1.4 Add /Edit sleeping plan
User can add / delete a sleeping plan. A sleeping plan consists of a list of planned sleep times (Start/End). If a user chooses a known plan like uberman, everyman3 or such with fixed nap lengths and nap counts, the system will generate the plan for the user automatically (after querying some details).
A user creates an “Uberman” sleeping plan. This is defined as 6 equidistant naps of about 20 minutes length. The system asks the user for the start time of one nap (no matter which) and the planned length of the naps (allowed values: 15 minutes – 30 minutes, default: 20 minutes). It then generates all the naps with a gap of 4 hours between each).
The user can also choose a “custom plan”. She is then responsible to add all planned naps herself.
All naps are displayed in a timeline and as a list. Users can select/edit/delete and add naps at will.
As soon as the plan is finished, the user “activates” it. There can always be only one active plan per user.
1.1.5 Manually add/edit nap
If the user does not use the mobile app or has missed to enter some sleep times, he can enter them manually: Start and End time of nap / sleep and some information about the nap (How fast fell asleep? Was it refreshing? Did you dream? …)
1.1.6 Manually add/edit alertness timestamp
Alertness is just one value that is normally tracked by the mobile app by asking the question: “How tired do you feel now?” The answer is a value from 0 = “Zombie mode” to 9 = “Maximum alertness, flow”. This value is tracked with a timestamp.
1.1.7 Review progress
This is where all the effort is condensed to a few informative charts and metrics:
The main tracking view will look like this:
This is a timeline which can be scrolled left and right and zoomed in / out.
The vertical orange line is the “NOW” line. To the right is the future, to the left is the past.
In the top row the system displays the sleep plan (gray boxes are planned naps). Below the plan is the actual sleep time. If the user slept during a planned nap time, the box will be “blue”. If he slept outside planned time it will be “purple” (oversleep). If he did not sleep in planned times it will be light red (“missed nap”).
Below is the actual development of the “tiredness” (values from 0 to 9). Values below “5” are displayed in red color (=more and more tired / sleep deprived), above 5 are displayed in green (=functional).
1.1.8 Export data
The user can export all his data into a documented XML File for further processing.
1.1.9 Import data
The user can also import sleep data from a defined CSV (Text File) Format. This is to be used in order to add existing data that was not tracked with the tool.
1.2 Mobile Application
1.2.1 Main Screen
The main screen will look like above: The timeline is displayed and scrolls slowly left automatically. From the right the user sees “upcoming naps”, to the left he can see how he is doing.
1.2.2 Nap Reminders / Alarms
Users can choose to let the application raise an alarm x minutes before a scheduled nap as a reminder to prepare for sleep.
1.2.3 Nap Support / Nap Execution (Sounds / Alarms)
Once the user goes to sleep, he presses “Start nap!” and the nap gets tracked. The planned end of the nap will be automatically set to the end of the current planned nap (if it exists). The user can also vote to sleep longer or shorter by changing the “end time” of the nap.
During nap he can choose to play a sound file (i.e. “white noice”, “brown noice” or such) which automatically ends after the nap is ended.
He can also add a sound file which will be played as a “alarm” at the end of the nap.
1.2.4 Nap Logging
After the user wakes up again, he hits the button „nap ended“ and is asked some question regarding the quality of his nap, such as “how fast did you fall asleep? did you dream? do you feel refreshed?”
This data is then stored alongside the nap data.
It is also possible to enter data from a zeo device if one owns such: Amount of REM / Deep Sleep, etc.). For the moment, this data is only stored but will be evaluated in a later version.
1.2.5 Alertness logging („How do you feel?“)
Finally the user can hit the button “How do you feel right now?” at any time and enter his level of alertness with a simple slider with 10 Positions (Ranging from “Zombie” to “Flow”). This value can then be saved with the current time by hitting the “Log” button.
The user can also choose to let the system remind him every “x” minutes to enter this value. The app then displays a requester and plays a little reminding sound. The app takes care that these reminders never occur during naps.