- Name : Nanduni Indeewaree Nimalsiri
- From : Sri Lanka
- Email : [email protected]
- KDE user name : nandunin
- Freenode IRC Nick : Nanduni
Improve categorization and search on Inqlude web site
Inqlude is an open, crowd sourced archive of Qt libraries which helps developers to find, install and use Qt libraries easily. A public version of Inqlude runs at http://inqlude.org/. The current website has few options to search libraries under several categories. Hence this requires more use cases tailored to the data collected on Inqlude. The intended project task is to improve categorization and search on Inqlude website in order to offer a better user experience.
Description in detail
The project mainly targeted on developing a complete UX/UI and functionality overhaul for the website by redesigning the interfaces to provide a better display of library metadata and developing new functionalities to sort libraries under different topics. This was more kind of a design oriented project and we followed an approach called `product design sprint` which was a 6-phase exercise that uses design thinking to reduce the inherent risks in successfully bringing the website to the production. The objective of following this kind of an approach was to find solutions that offer a better user experience to the Qt audience.
The major part of the project lied in design thinking. The goal of the design phase was to derive designs to the website by analysing data based on user feedback. Design solutions had been derived by considering user feedback. As part of implementing the design process, I had to go through the different stages of the creation of user interface from need finding, over quick prototyping, to designing, implementing and testing of the user interfaces. This had lots of interesting and challenging tasks like recording observations from the actual audience, carrying out usability tests, gathering inspiration from similar tools, incremental sketching, storyboarding, heuristic evaluation, prototyping and then finally implementing the proposed solution. Most of the limitations and shortcomings of the website are addressed in the new design.
After completing each phase, I updated the wiki page of my project at GitHub project repository. This wiki is a central landing page where I documented how I approached the project and referenced other pages and tools I used.
GSoC is awesome
Everything about GSoC had been awesome from the day one until the end. I feel that’s the best thing that ever happened to me, contributing to an open source project while learning tons of things regarding new technologies and best principles of coding, gathering remarkable experiences and and getting into the community. All of them had been very useful to me. On the other hand, I am glad that my effort had been really merged in to the production. So I am satisfactory to a great extent that I have produced something tangible which all of you would really be able to access and get the use of it.
I like doing UX stuff and so I really loved working in this project. It was more challenging because this was the very first time that I did this type of a design oriented project.
Another important thing that I find with GSoC is that I had been working and contributing to an existing project, so I had to undergo a learning phase first to understand the code base, then adhere to those coding styles, technologies and tools to proceed with the project. That is something challenging than developing something from scratch, but that’s the key of open source projects.
The other most important thing that I really feel very happy is to work under the guidance of a great mentor who has taught me lots of very useful things which are technical as well as non technical. My project would not have been successful if I had not received my mentor’s support and guidance. His motivation let me think out of box, made me more encouraging and at the end of the day, I learned lots of things. He wanted me to do every little thing in a very precious manner. I believe that having a very generous, supportive and interactive mentor is a key factor for GSoC. The last few months had been a wonderful internship for me and I am really grateful to KDE community and Google for offering me this opportunity.
What I learnt
The journey up to now has not been easy because I had to learn a bunch of new technologies and have met up with a number of issues during coding and integration.
The main thing that I learnt is doing a design oriented project using an approach that uses more design thinking. While doing this project, I improved myself day by day by learning tons of new things. Now I understand how important it is to pay attention for even little things like selecting a name for a variable or adding a very descriptive and clear commit message. Not only that, I even learnt broader concepts like application of HCI principles. It had been really interesting to get the ideas and suggestions from the actual audience that use the website, which in turn taught me lots of valuable things.
UX is something which I love to learn. During this project, I learnt lots of things about front end web development. I also had to learn about testing, which is a very important part of every project. I underwent behavioral driven development with unit testing and integration testing. There I had to learn about Rspec, Nokogiri, Capybara etc. Then I learnt about inqlude command line client and contributed to that as well.
Some very important additional things that I learnt during this project are using the Inqlude workboard in Phabricator, using Git for version controlling, documenting the work, maintaining a blog, communicating with the mentor using emails, video calls etc.
My works is merged to the following master repositories.
- Blog (Contains all the posts that I wrote from the project proposal period until the pencils down)
- In future, the website needs more improvements in improving the search results.
- Inqlude metadata needs improvements in terms of acurate content and updating.
Apart from these, there is a set of issues listed at https://github.com/cornelius/inqlude/issues that needs to be fixed.