Wow, it’s been so looooong since my last post. Time really flies when you are busy with school and work :'( .
I plan on writing more interesting stuff on this blog, news, tutorials etc.
I just need to work better on my time management.
Since “Google Summer of Code 2014″ is fast approaching I want to encourage every reader of my blog to participate in the program since it is AWSOME ! And good luck to all !
I’ve successfully passed the final evaluation of my Google Summer of Code 2013 ! :-)
I am extremely extremely happy and this was one of the best news of my life !!!
I want to thank a lot Google, the entire DHIS2 team and especially Morten and Bob (my mentors) for an incredible summer that I will never forget !
Thank you for this life changing opportunity !
District Health Information System: http://www.dhis2.org
Code branch: https://code.launchpad.net/~rosu-ovi
The project is pretty much done and the last minor bugs have been fixed.
I am really proud of my work ! :-)
Now comes the final evaluation.
I will write after a blog post about my entire experience and project.
In these last few days I’ve mainly worked on fixing bugs and improving the existing code.
The project has reached a pretty polished stage and the output file that is generated by the Filtered Meta-Data Export seems correct.
I’ve really grown attached to the project and I’m a little sad that there is only one week remaining of the GSOC 2013 program.
I will spend the last week writing documentation and wrapping up the project.
Pictures from the Detailed Export user interface:
1. Main menu.
2. Filter list.
3. Create a new Filter.
4. Export with dependencies.
In the last few weeks I’ve mainly worked on improving the Export Detailed MetaData user interface.
It has radically changed since its last iteration.
- create and manage an entire list of filters (CRUD functionality)
- create an ad hoc filter
- sorting functionality
- visual improvements
- less clicks to achieve the same goal :-)
- Export MetaData with dependencies
Most of my time was spent implementing, testing and improving the Export MetaData with dependencies algorithm.
I’ve used recursion combined with the Reflection API in order to achieve this goal.
How it works ?
Lets say the user want to export an “Indicator”.
In order to use that Indicator, its dependencies also need to be exported, otherwise it will not work correctly.
What the algorithm does is, it gets the dependencies of that Indicator ( DataElements, IndicatorType etc.) and adds them to the export list, then computes the dependencies of those elements and so on until it reaches the base element which no longer has any dependency to any other exportable objects.
These weeks where really productive because I’ve learned tons of new stuff, tricks and I’ve really improved my Java skill.
Thanks for reading.
P.S. I will come back with screenshots in a later post.
In the last few weeks I’ve mainly focused on improving the Export user interface.
The UI needs to respect the dhis2 application design paradigms and make it as user friendly and intuitive as possible. I’ve made lots of improvements to the way the user interacts with the Export UI.
I will post some new pictures with the new UI when it is ready in the following days.
Also I’ve started implementing the logic behind computing dependencies. For example when an user wants to export a metadata item, all the dependencies to other metadata items need to be computed and exported as well.
This part is challenging so it is still “Work in progress”.
I will come back with more details on this when I will finish the algorithm behind this issue.
Thanks for reading.