Hi everyone, I am Prabal Singh currently studying in Indian Institute of Technology, Guwahati. This summer I participated in Google Summer of Code and developed a new feature – User Collections – for the project BookBrainz.
I was mentored by Nicolas Pelletier (Mr_Monkey on IRC) during this period. This post summarizes my contributions to the project.
I started contributing to BookBrainz in January 2020. Before GSoC (January–April), I mainly worked on improving revision pages (Editor Revision, Entity Revision, All Revisions), adding Editor Activity Graph and some minor bug fixes.
For the GSoC, I made a proposal that was aimed at developing a User Collection feature. User collections allow users to create, organize and retrieve collections, as well as add items and collaborate with multiple users on one collection.
First Coding Period
I started with creating tables in the database and writing models for the BookBrainz ORM.
I also modified ElasticSearch (our search engine) index to allow searching for other editors which was going to be needed while adding collaborators in a collection.
Later I developed the create collection route which allows users to create and edit a collection.
I also developed the delete collection route which allows users to delete their collections.
Second Coding Period
I also started writing tests using Chai and Mocha during this time which helped me find bugs and vulnerabilities in the code and made the developed feature robust.
Final Coding Period
We also deployed the User Collection feature on the BookBrainz test site. Everyone is invited to test it and provide your feedback. 🙂 We plan to release this feature on the BookBrainz beta site pretty soon.
This was the first time I did a big project and I enjoyed it thoroughly and had lots of fun developing it. I plan to further improve the project and will try to complete my stretch goals.
I had a wonderful time working with Mr_Monkey and learned a lot working with him. He helped me whenever I was stuck and his multiple PR reviews really helped improve the code quality. Couldn’t have asked for a better mentor! 🙂
All the PRs can be found here: UserCollection Project.