This blog constitutes the final progress of the work done in Google Summer of Code 2022 under the organization Freifunk and project Retroshare Web Interface.
About me
I am Sukhamjot Singh, a 4th-year undergraduate in Computer Science at International Institute of Information Technology Bangalore. I love 2 things – Table Tennis and Open Source development. The fact that my contribution, however small or big, will be a part of something huge and useful, motivates me to work further.
Anyone having any queries regarding GSOC or the project can contact me anytime through email – sukhamjot2001@gmail.com
Objectives
The development of a web interface for the communication platform Retroshare was the major objective of this project. The goal was to provide as many features in the web interface by making use of the existing JSON API and provide a user friendly experience for the same.
Tech Stack : Mithril (Javascript) [A lightweight Frontend Framework]
Relevant Links
- Retroshare Web Interface Repository with instructions to run the project – https://github.com/RetroShare/RSNewWebUI
- My fork – https://github.com/Sukhamjot-Singh/RSNewWebUI
- Major Pull Requests including work on Mail Tab, Channels Tab, Forums Tab, Files Tab – https://github.com/RetroShare/RSNewWebUI/pulls?q=is%3Apr+author%3ASukhamjot-Singh
Development
With the help of my mentors Cyril Soler and Gio, I have provided some major functionalities in the web interface. One thing to note is that the priority was to provide the relevant functionality first with some focus on the design part.
The major contributions include:
Channels Tab
This tab is developed for using the Channel related features of Retroshare.
We can subscribe to specific channels and then have access to the content.
Search functionality is also provided for Channels and Posts.
Post View has functionality to download files as well.
We can comment on Posts, reply to the comments and upvote/downvote comments.
Forums Tab
This tab is developed to use the Forums features of Retroshare.
Functionalities for subscribing to a forum to have access to their threads and searching forums is also provided.
Functionalities – Create a new thread, reply to a thread, mark a thread unread and view all the messages.
Files Tab
Under Files tab I provided some additional facilities such as directory searching and some Download options.
In the Friends Files, the download option for each file is also added.
Boards Tab: The Boards Tab has similar functionality as the Channels Tab. Due to the structured and modular code of the Channels Tab, it is also being reused to build the Boards Tab. Along with community member defnax, Boards Tab is also under progress.
Work to be done
The progress of the project was satisfactory and achieved expected milestones. But there is still a lot of work to be done in the web interface to have comparable functionalities with the QT interface.
Some of the issues that need work in the future:
- Search in Files Tab
- Uploaded Files in Files Tab
- Uploading attachments in Posts in Channels Tab
- Pending Options in Config Tab.
Along with this, some of the Github Issues also need attention. I will be sure to work on these issues and functions in the future.
Concluding Thoughts
I would like to thank my mentors Cyril Soler and G104hck for the amazing support and constant feedback on the project. The weekly meetings with Cyril for the progress of the project have helped a lot to track the shortcomings and gain knowledge on writing good quality code. Also, the community members especially @defnax and @rottencandy have helped a lot with their continuous inputs.
I hope I can continue this journey in the coming months and can see this project being deployed with all its features and the user friendly UI.