GSoC 2022 with GNOME: Final Report
•
This post marks the ending of my GSoC'22 journey with GNOME. I worked on the database migration and managing user model for the GNOME Health Application. Let's take a deep dive into the project.
Project Overview
Health is a Health and Fitness Tracking application. It helps the user to track and visualize their health indicators better. That means a user can track down their activities and weight progressions. The project is created and maintained by Rasmus Thomsen, who is also the mentor of my GSoC project.
Attached below is the screenshot of the Health MainView:
Project Goals
- Add the database version for the better migration of the database.
- Add the user model for the better management of the user data with the database.
- Add the sync model to improve the synchronization of the data with the third-party sync providers.
- Add Apple HealthKit and NextCloud Health as additional sync providers.
Project Contributions
I started my GSoC journey with the project by adding the database version to the database. The database version is used to migrate the database to the latest version. A static version is added to the code that depicts the current version of the database. A new property called `version is added to the database which depicts the current version of the database for the user. If the versions are same then migration is skipped, else we carry on the migration of the database. This slight change improved the startup time of the application by a huge margin.
Then I worked on designing a new model for the users. This helped in migrating the user data from the GSettings to the database so that multiple users can be supported. More information regarding this project can be found in my previous blog.
MR Link: https://gitlab.gnome.org/World/Health/-/merge_requests/174
I'm currently working on the implementation of the sync model and it will be finished soon.
Future Work
As I mentioned earlier, I'm currently working on the implementation of the sync model. I will be adding the Apple HealthKit and NextCloud Health as additional sync providers.
Apart from that, I'm also working on a new Habit Tracking application with Rust and GTK. I will update more about it later on. Stay tuned!
GUADEC 2022
This year I got to present my project at the GUADEC 2022. It was a great experience to present my project to the GNOME community. I got to learn a lot from the GNOME community and I'm really thankful to them for their support. This was my first time attending GUADEC and I hope to attend it again next year. You can find the recording of my presentation here.
Conclusion
Overall it was a great experience during the last 12 weeks. I learned a lot about the GNOME community and the GNOME development process. I'm really thankful to my mentor Rasmus Thomsen for his support and guidance throughout the project. I'm also thankful to the GNOME community for their support and feedback. I'm looking forward to contributing more to the GNOME community in the future. That will be all for now. Thank you for reading this post. See you in the next one.