ICON BY MADE X MADE ON THE NOUN PROJECT; © 2020 CC BY 3.0
There are so many mood tracker apps around, and for a reason: they're all different in character, features and purpose, and each of them is appealing in its own unique and stylish way.
Among all the different designs, however, we recognise a handful of essential features they all have in common:
- some kind of "mood out of x" rating
- the option to write down your thoughts and feelings as a note
Despite their fundamental similarities, transferring this extremely basic data between the various apps is often way too rough: they all export it in different formats and with different internal structures, and not all of them even support a truly user-owned backup in the first place.
Using different formats is okay -- given the natural massive differences between them, it's obvious that the optimal ways of storing the data they record will be multiple and diverse.
However, this makes switching from a mood tracker to another, or "hopping" (like distro-hopping, hence the name), much rougher than it should be: too often, it means giving up all your progress because of the incompatible formats. Plus, everyone is different and in continuous growth, and nobody expects any app to appeal to all the users all the time: people should be free to "hop" between mood trackers at their own discretion, all while still being able to retain at least some of their data.
That's why Femto-hopper exists: to enable users to translate that basic mood data so that they can keep it during their explorations of the mood tracker scene.
The project is functionally made up of two main elements:
- FEMTO itself, the common stanadard that specifies what data fields are retained throughout the conversion and how
- the scripts, which operate the conversions to and from the FEMTO standard
This "central" design (all formats to FEMTO, from FEMTO to all formats) was preferred over the "mesh" alternative (each format to each other format) for its uniformity and scalability, at the cost of thoroughness.
Otherwise, the number of individual scripts needed would increase quadratically, which would make scaling this project beyond a handful of apps a nightmare; instead, the two architectures even out at just 3 apps, and past that point the needed scripts only grow linearly, 2 more per each new app.
Plus, this allows for a common standard with a clear set of rules (specified in femto-spec.md
) and avoids the chaos that would result from having to come up with 10 new conversion strategies just to include the 6th app -- and, at any rate, some data loss is expected and unavoidable, given the innate differences between the apps.
The repository is composed of:
data
, a folder for the user to store file backups at their discretionsample
, which hosts all the sample exports we have collected for documenting the different formatsin
, for the files exported by the apps and to feed the programout
, for the files spit out by the program and to import to the apps
templates.md
is where we keep a detailed record of all the formats we've included
src
, divided in:femto-in
, storing the scripts that convert from the various export formats to the FEMTO standardfemto-out
, storing the scripts that convert from the FEMTO standard to the various import formatsfemto-spec.md
for the current FEMTO specifications
img
, with the images for this readme
This project is currently just a collection of scripts, and barely represents anything more than a simple proof of concept -- however, the first versions of the UI will be represented by a bare-bones command-line interface: feed the file to the program, then specify its origin and destination apps.
In this design, all the data-file handling would have to be operated by the user.
In the indefinite future, if the project gains enough track, it could be ported to Android and iOS apps for a more intuitive, natural and seamless in-place usage: simply export the data from the old app, convert it in a pinch, and import it to the new one.
Whether you're a user or a developer of a mood tracker, we look forward to including your app into our tool!
If you use a mood tracker app and you want it to be included in Femto-hopper, let us know by taking this Typeform Survey so that we can steer our efforts towards involving it.
The survey takes about 3 minutes to complete, and never asks you about any emotional data -- only about the apps themselves.
If you're developing or maintaining a mood tracker app, we're looking forward to welcoming it in our network.
As a general guideline, it will need a backup & restore feature relying on a clear file that's owned, accessible and handleable by the user.
We recommend making such a feature free, but we recognise it may require funding.
You can use whatever format you're most comfortable with, but we strongly suggest JSON
for its popularity, transparency and flexibility.
At any rate, make sure to get in touch with us so we can get you and your app involved!
Copyright (C) 2020 Giorgio Ciacchella, Darren Fielding, Zoltán Kiss
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License at COPYING
or https://www.gnu.org/licenses/#GPL for more details.