View Single Post
Posts: 262 | Thanked: 315 times | Joined on Jun 2010
#1
Hi all,

I've been developing a PyGTK app called Habit Jewel (the name is a homophone of 'habitual') for a few weeks now, and it's available in extras-devel.

Habit Jewel tracks your habits for each day, motivating you to reach your goals by recording how often you fulfill the habits you have set up for yourself. The idea is that with the knowledge that you are recording the results you will be motivated to make time to do the habits.

Basically you define some habits and for each one specify how many times per week you want to do it, i.e. a quota. Until you reach this quota for the current week, the habit will display in Habit Jewel every day. Once you reach it it will drop to the bottom of your habits list (with any other fulfilled or missed habits) until the next week.

Also, habits can be partially completed in increments of 25%.

To set a habit's completion status for a given day, tap and hold on the checkbox icon at the far right of the habit and then select 'Done', 75%, 50%, 25%, 'Missed' (meaning you didn't do it), or 'Clear' ...

The difference between 'Clear' and 'Missed' is that clear resets the habit back to an unknown status - you may have done the habit but not gone back and updated it in Habit Jewel.

On top of this, for habits with a target duration (e.g. 'Practise violin for 20 minutes') there is a built-in countdown timer that will use the selected habit's duration by default. You can also change the countdown time to do more or less. If the timer is started it will count down and then play a sound to notify you.

The daily habits view, which is the main screen, shows some mini bar graphs beside each habit, showing how many times you've completed the habit in the last 7 days. There are also some numbers alongside the habit description: the overall completion total for the habit for the current week / the quota you'd like to reach : the day number of the day currently displayed (Monday = 1, Tuesday = 2, etc).

Tap and holding on the habit description itself allows you to edit the habit, pause it (make it go away - e.g. if you are on holiday), delete the habit (but nothing is really every deleted - see the Master Habits List), etc.

I plan to build the Stats page that is on the main menu soon, which will show some numbers and graphs.

I also have a plan for each habit to be linked to a specific goal, so you can create the goals and then link the habits that support them. This will mostly be useful for stats purposes, and will be optional.

I've also pondered going in the direction of gamification later, whereby you might get some kind of meaningless but fun virtual 'gifts' or gold coins or other score in the application as you keep doing your habits.

It's somewhat beta at this stage, but should be fairly stable. I have made code changes so that the database schema should be automatically backed up and then upgraded to the version appropriate for the running code without any data loss.

IN CASE OF EMERGENCY ONLY!
Now that the schema upgrades automatically on startup if it's out of date, nobody should have to do this, but just in case.

If you have any issues starting the application after upgrading from a previous version, one thing you could do is to rename your database so that a new one is created.

Code:
mv ~/.habitjewel/database ~/.habitjewel/database.bak
CHANGELOG
## [0.7.5] - 2016-09-19
### Changed
- Ditched gstreamer for calling aplay via os.system() to try to fix battery drain issue

## [0.7.4] - 2016-09-18
### Changed
- Tweaks to timer to address potential battery drain issue

## [0.7.3] - 2016-09-15
### Changed
- Changed wording of Target time label on timer page to be less ambiguous

## [0.7.2] - 2016-09-15
### Changed
- Fixed crash when exiting timer that is running

## [0.7.1] - 2016-09-13
### Added
- Icon on timer start/stop button

### Changed
- Nicer formatting and colouring of habits in day habits list
- Other display tweaks
- Moved change log from main script to CHANGELOG.md (this file)

## [0.7.0] - 2016-09-12
### Added
- Countdown timer with audible alarm, accessible for time-based habits on current date only

## [0.6.1] - 2016-09-11
### Changed
- Refactored history gathering
- Tweaked mini bar graph display
- Disabled main menu Stats button (for now)

## [0.6.0] - 2016-09-11
### Added
- Mini bar-graphs next to each habit which display completion status for previous days

### Changed
- Created HabitJewelDB class and moved all database functions there
- Added schema version check and upgrade script for schema vers 0.4 and 0.5
- Bumped minor version number due to schema changes
Attached Images
    

Last edited by Xagoln; 2016-09-19 at 23:41.
 

The Following 15 Users Say Thank You to Xagoln For This Useful Post: