Google Summer of Code @Zulip work report
This document is a summary of the work that I did as a student developer at the Zulip open source project, as part of Google Summer of Code 2023. During this year's Google Summer of Code, my primary focus at Zulip was the upload area. My tasks included working on the design aspects of Zulip, addressing different issues related to upload area, and adding new and innovative features.
The majority of the GitHub pull requests listed below provide explanations of the modifications in their descriptions or commit messages. Additionally, you can discover mentions of the issues they resolve and conversations related to those modifications on https://chat.zulip.org.
uploads: Chunk upload support using TusD service. #26004 Zulip Discussion
Description - This is the main pull request (PR) of my GSoC project. Initially, I created a draft pull request to implement the feature on our own. However, upon realizing the complexity and cost this would entail, we decided to utilize an open-source library. Among the options we considered, the one that stood out the most was "tusd" from Transloadit. Given that our frontend is already utilizing the Uppy library, which includes a plugin for tus upload, we concluded that moving forward with tusd was the best choice. After going through the documentation and conducting some research, we discovered that tusd lacked certain features that we would require for successful implementation. We initiated discussions with the maintainers of tusd and learned that they were in the process of incorporating all the necessary features in tusd v2, which were absent in v1. Despite this, we opted to make some patches in order to make it compatible with v1, resulting in the current state of the pull request. Now, with v2 of tusd nearly ready for release and the pull request still pending merge, we decided to migrate our code to tusd v2.
uploads: Uploads: Show modal to delete detached attachments after message edit. #25764 Zulip Discussion
uploads: Support drag and dropping files anywhere on message viewport. #26041
compose: Wildcard mention throwing error on send later. #25882
stream: change ID in selector to match updated one. #25601
compose: Check posting policy for direct messages. #25572
previewable_url: Show titles of GitHub issues on hover. #22368
compose: Disable send button while uploads are in progress. #21166
message_feed: Improve edited/moved tooltip. #25883
stream_settings: Add not-subscribed tab to stream settings. #26049
upload_banner: Add a cancel button. #25848
Contributing to Zulip through Google Summer of Code has been an incredible experience, marked a pivotal juncture in my learning and skill development journey, greatly enhancing my skill set and expertise. The most engaging part of the summer was reviewing pull requests of fellow and new contributors, which is an excellent way to acquire more knowledge in a shorter duration. The involvement of the community was really important, and I learned a lot from mentors. Getting feedback through code reviews was crucial, and the valuable insights I received during this process significantly contributed to my personal growth over time. I'm motivated to contribute more to Zulip and open-source projects. At last I'd like to thank Tim Abbott, Alex Vandiver, and Vaibhav Rabber for continious support during the program.
Post the program, First and foremost, I will continue to work on pending tasks and take open pull requests to merged state. Later, as I stated in my proposal, I would love to take up the issue Create topic ids in the database #1191. I am delighted to grow with Zulip and be a part of its future growth.