Add Home
55
Home.md
Normal file
55
Home.md
Normal file
@ -0,0 +1,55 @@
|
||||
Welcome to the Wiki.
|
||||
|
||||
This page will now describe the desired functionality of Project Orion.
|
||||
|
||||
Project Orion is meant to be a project for the development of a free software Android app that should, at a bare minimum, display a screen that records how much of the user's timespan has elapsed, as of the moment of opening this screen.
|
||||
|
||||
Naturally, one's own lifespan is impossible to predict with any degree with certainty and, as such, this user will have to specify the predicted date of their own death, to use in calculations.
|
||||
|
||||
### Required features
|
||||
|
||||
1. The app must be compatible with Android 14 and newer.
|
||||
|
||||
2. It must display a screen on any form factor smartphone running Android that will show, represented in circles, the full number of weeks of the user's lifespan. Each week of that number must be represented by a separate circle. For example, if the user specifies a date of death and a date of birth interval that would cover a total of 942 weeks, there need to be 942 circles shown on the screen of the phone. Circles that have already elapsed (i.e. the weeks from the past as of today) will be shown in red, whereas circles representing the weeks into the future will be shown in green.
|
||||
|
||||
3. Upon starting the app for the first time, the app must ask the user for three key details about themselves: their full name (which should be a Unicode encoded string of no more than 100 code points), their date of birth and their date of assumed death. All of the three details mentioned should be editable in the future
|
||||
|
||||
4. The app should also allow the lifespan tracking of more than just one user. There should be a button that allows the user to create a new user, with their own full name, date of birth and date of assumed death. Once multiple users are created, simply swiping the screen from left to right or right to left should switch between views of lifespans of different users, with the order being looped once the end of the user list is reached. The user list will be ordered alphabetically, assuming Unicode alphabet order.
|
||||
|
||||
5. In the event that multiple users are saved, there must be a dot indicator at the bottom of the screen, indicating where in the list of users we currently are on, on the current screen. Likewise, the top of the page must indicate the full name of the current user whose lifespan is currently being shown.
|
||||
|
||||
6. As stated previously, all user details must be editable at any point in time. In the event that a user changes their date of birth or assumed date of death, the screen should recalculate the number of weeks in their lifespan again, updating the view accordingly.
|
||||
|
||||
7. The app must correctly handle leap years.
|
||||
|
||||
8. Dates of death into the past compared to the current day should be possible. A new user whose date of birth and death are into the past should be allowed to be created and their lifespan should be handled correctly. In such cases, the circles on the screen should all be red, obviously.
|
||||
|
||||
9. It should not be possible for the user to specify a date of birth that's later than the date of death. To prevent such a thing, the date pickers for the dates of birth and death should be on the same screen, and the user should not be allowed to be able to press the "Save" button if the dates are in the incorrect chronological order. An informative error message should also appear onscreen.
|
||||
|
||||
10. The lifespan screen must be zoomable using pinching with two or more fingers. The user should be able to zoom into the screen and out of it. The zoom level should always start out at 100%, in which case the full number of circles representing all the weeks within the lifespan should be viewed at once, without the need to scroll or zoom out. All circles should be of the same size, and their size will be calculated dynamically so that they can all fit on the screen at once.
|
||||
|
||||
11. Users should also be deleteable at any point in time
|
||||
|
||||
12. The first user that's created will be the default one (i.e. the one whose lifespan will be shown by default, each and every time the app is started). Non-default users should have a button on their lifespan screens that, when pressed, will make them the default user, instead.
|
||||
|
||||
13. The default user should not have a delete option or, if the delete option is pressed, an error message should pop up, letting the user know that they cannot delete a default user and that they should first mark a different user to be the default one, before attempting to delete the current one. Doing so should allow for user deletion, afterward.
|
||||
|
||||
14. The app should be eligible for backups, according to Android's backup system
|
||||
|
||||
15. The app must be built without Google Play Services integrated in it, so that it may be uploaded on F-Droid once development is finished.
|
||||
|
||||
16. The user list, as well as their information must be saved in a persistent manner. Rebooting the phone or shutting the phone down should not mean that the app will lose the user list or user settings
|
||||
|
||||
17. Lifespans may not exceed 1000 years. Biologically, such a thing is impossible for humans anyways, but any lifespan under 1000 years should be allowed, just for fun. Setting a date of death exceeding this upper limit should prevent the user from creating a new user with such settings, or editing the current user with such a bogus date of death (assuming the user is already created).
|
||||
|
||||
### Optional features
|
||||
|
||||
1. The app may support iOS and iPadOS as well
|
||||
|
||||
2. The app may allow for limited customization of colors and even themes, if so desired
|
||||
|
||||
3. The app may allow for manual backups of existing user lists and restoration from said backups. The backup file format should be JSON or XML
|
||||
|
||||
### Technologies
|
||||
|
||||
The app will be developed using Qt Quick. Nothing more.
|
Reference in New Issue
Block a user