https://github.com/srid/felicity
A dumb mood tracker app
https://github.com/srid/felicity
Last synced: about 1 year ago
JSON representation
A dumb mood tracker app
- Host: GitHub
- URL: https://github.com/srid/felicity
- Owner: srid
- License: mit
- Created: 2023-10-07T14:10:30.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-11-04T18:12:47.000Z (over 2 years ago)
- Last Synced: 2025-02-09T21:31:51.292Z (over 1 year ago)
- Language: Rust
- Size: 513 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# felicity
Felicity is a extremely simple mood tracker app with the goal of ultimately *becoming useless* to the user. It is a work-in-progress and is **not ready for general use** yet.
The basic idea is to track, as often as possible, whether one is [feeling good](https://srid.ca/feeling-good) or not (nothing more complicated than that) over time, and thereon effectuate [a beneficial modification to one's habitual mood](https://srid.ca/affective-awareness) which modification when perfected (wherein one is feeling good 99% of the time alive) leads to the app becoming useless.
WIP
- [x] Render moods list
- [x] Ability to enter moods in UI
- [ ] Mood 'calendar' view
- Clicking the day should toggle the list below the calendar month
- [ ] Make it a menubar app
- The meubar icon can change over time to remind me to register the current mood. As well as show the general 'climate' of the mood of the day/week.
- Recording frequency
- Must register at least every hour, from ~9am to ~9pm
- Count the hours which received moods
- [x] Remindes & Nudgers
- Figure out UX to nudge the user to enter mood on a consistent basis such that the calendar view statistics are meaningful.
- Mood progression
1. Record every day at regular frequency (see above)
1. Achieve days of 100% feeling good
1. Achieve day *streaks* of feeling good
- Collapse the view to show streaks as single entry (only expand if registering feeling-bad again)
1. Achieve a week of 100% feeling good
- Give 'levels' to such streaks.
Before public release,
- [x] Auto-create `~/.felicity.db` if it does not exist
## Getting Starred
In the `nix develop` shell, run:
```
just watch
```
### Creating macOS app bundle
```
just bundle
```
### Running via Nix
(Broken on macOS: https://github.com/srid/felicity/issues/2)
```
nix run github:srid/felicity
# Or just `nix run` in the project directory
```
## Bootstrapping
In order to utilize [sqlx's compile-time verification](https://github.com/launchbadge/sqlx#compile-time-verification) offline in Nix, the following was run on the seed db to initialize the sqlx query metadata:
```
cargo sqlx prepare --database-url sqlite://$HOME/.felicity.db
```
This creates a `.sqlx` directory that is then checked into git.