Google Summer of code — Final Evaluation
Final Submission of GSoC’18 for WorldBrain.io — Verifying the Internet.
My name is Subrat sahu, I have been working on Memex an web information management tool in the organisation WorldBrain.io — Verifying the Internet under my mentors Jonathan Poltak Samosir and Oliver Sauter.
What is Google Summer of Code?
Google Summer of Code is a global program focused on bringing more student developers into open source software development. Students work with an open source organization on a 3 month programming project during their break from school.
About Memex
Memex is a browser extension that lets you create, search and eventually share your personal web of knowledge. It provides multiple features like Full-Text-Search all websites you visited(except in icognito mode), you can filter data, make annotations and comments and many more exciting feature.
My contibutions
My work during GSoC period was to implement a new feature to Memex known as Collections(Custom lists), that enables users to sort their data(visited web pages) into lists and later can easily access them and also refactor the old filter UI with the new one.
Memex is majorly build using JavaScript(React.js), Redux and TypeScript. It used Indexed DB in browsers to store users data locally and Dexie.js as a wrapper on the indexedDB, we have created our own wrapper over Dexie.js for decreasing too much dependency on this library.
The GSoC period started with working on UI of the Collections feature. The UI is mainly contained in the sidebar of the overview page of memex extension. For building a cool and customisable sidebar I used React Burger Menu. The sidebar is a React container that contains all the other containers/components.
Important links
Pull requests:
- feature: https://github.com/WorldBrain/Memex/pull/401.
- tests: https://github.com/WorldBrain/Memex/pull/469
- documentation 1: https://github.com/WorldBrain/Memex/pull/487
- documentation 2: https://github.com/WorldBrain/Memex/pull/469
- fixes: https://github.com/WorldBrain/Memex/pull/473
Features implemented:
Overview
The directory src/custom-lists
contains the main code for the custom lists. The UI/UX part of the feature lives in the src/custom-lists/components
directory and the main database related parts lives in the src/custom-lists/background
directory. All the data is stored in the Indexed DB in various tables, the table for collections contained details on the collections, each collection had its own id. The pages associated also had their unique table. The data is fetched from the indexedDB and stored in redux state for maipulation.
Parting Thoughts
Working at WorldBrain has been a great experience for me. It has been really steep learning curve this summer under Google Summer of Code. This has further enhanced my interest towards open source.
Thanks to the community for their constant support and guidance, would not have been possible without the guidance of my mentors Jonathan Poltak Samosir and Oliver Sauter.
Really enjoyed this summer, Hoping for contibuting more, and giving back to the community. :)