Skip to content

Instantly share code, notes, and snippets.

@shubhamdhama
Last active December 30, 2020 16:22
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save shubhamdhama/5057e5e008e7172f93b72efbcfa34bef to your computer and use it in GitHub Desktop.
Save shubhamdhama/5057e5e008e7172f93b72efbcfa34bef to your computer and use it in GitHub Desktop.
Google Summer of Code - 2018 with Zulip: Project completion report

Google Summer of Code - 2018 with Zulip: Project completion report

Final status

Summary: GSoC with Zulip have been a very much productive and great learning experience, I'm so lucky that Zulip has selected me for this golden opportunity. Here I would also mention that this is the end of the GSoC coding period but not the end of my journey with Zulip. I'll keep contributing to Zulip as here I always get to learn new things and this community have been so helpful for me and I want to give it back as much as possible from my side. And there are so many issues which tempts me to solve them, so I'm looking forward to keeping continuing this wonderful journey.

Now coming to work I've done in GSoC period

I've worked on various projects/issues during the whole summer and my main focus during the whole period was

  • Settings subsystem: I've worked a lot on this before and during GSoC period and I'm happy that restructure is completed and pretty stable. Being specific I've worked on improving the experience to add new feature and experience of the user while enabling and changing any feature.

  • Guest user project: Here we have completed most of the backend pieces of stuff and some important frontend changes which were essential for enabling the guest user in the coming future.

In addition to this, I've worked on fixing various bugs and issues, here is the brief of this:

  • Increased node-test coverage
  • Some code quality related PRs
    • Enabling some lint properties
    • Minor and major refactor of code
  • Fixed some jquery-upload related issue
  • translation.js/i18n: Fixed fronted races
  • INTEGRATION: Widget system issues
  • INTEGRATION: Worked on experimental zgram concept
  • Improving the experience with modals
  • emails: Working with email bugs and helped in adding stream missed message emails

Merged PRs

Total Number of commits merged: 49 (Application Review Period) + 16 (Community Bonding) + 104 (Coding period) = 169

Application Review Period (March 27, 2018 - April 23, 2018)

Commits Merged: 49

  • Fix exception when updating bot permissions. Link: #8855

  • org settings: Move function out of setup function. Link: #8865

  • settings: Focus "Add a new bot" tab when there is no active bot. Link: #8877

  • org settings: Add realm level default time format setting. Link: #8893

  • docs: Update new-feature-tutorial. Link: #8899

  • org settings: Unexport and rename some functions. Link: #8907

  • org settings: De-duplicate template content for checkboxes. Link: #8909

  • org settings: Change settings to dropdown. Link: #8920

  • markdown: Add @stream as an alias for @all. Link: #8938

  • org settings: Hide "disable" option when setting already disabled. Link: #8947

  • settings: Revert "loader" indicator from fontawesome to SVG. Link: #9001

  • org settings: Change default realm description to empty string. Link: #9008

  • settings: Fix label for message_content_in_email_notifications. Link: #9022

  • org settings: Change join org permissions to dropdown. Link: #9071

  • settings: Revert checkmark icon to fontawesome and checkbox-green. Link: #9075

  • upload: Fix stacking of progress bar on canceling the upload. Link: #9088

  • analytics: Make stats of all realms accessible to server admins. Link: #9099

  • node tests: Increase coverage for settings_org. Link: #9107

  • settings: Deduplicate the template code for checkboxes. Link: #9138

  • settings: Make saving spinner visible in night mode. Link: #9160

  • guest: Add a model field for the guest user and add guest user to populate_db. Link: #9173

  • org settings: Add frontend for allow_community_topic_editing. Link: #9176

  • notifications: Add stream email notifications. Link: #9181

Community Bonding (April 23, 2018 - May 14, 2018)

Commits Merged: 16

  • settings: Fix escaping of HTML in checkbox labels. Link: #9235

  • settings: Make bot-settings tabs look better in dark mode. Link: #9236

  • org settings: Fix word-wrapping CSS in "users" section. Link: #9237

  • org setting: Add time limits for message deleting. Link: #9242

  • org settings: Handle floating point durations better. Link: #9256

  • org settings: Fix the spacing/indentation of dependent input elements. Link: #9257

  • org settings: Improve buttons and error handling status elements. Link: #9274

  • org settings: Change user joining invitation setting to dropdown. Link: #9275

  • Eliminate annoying frontend race conditions involving i18next Link: #9300

  • guest/streams: Limit access to public streams for guest users. Link: #9302

  • upload/jquery-filedrop: Fix progress bar for paste upload. Link: #9317

Coding period (May 14, 2018 - August 10, 2018)

Commits Merged: 104

  • org settings: Show pointer on hovering labels of checkboxes. Link: #9494

  • org settings: Use do_settings_change for auth method checkboxes. Link: #9498

  • stream: Deduplicate template code for stream privacy types. Link: #9523

  • messages: Allow "no topic" topics editable indefinitely. Link: #9524

  • message: Limit message access for guest users. Link: #9538

  • Removing ensure_i18n and its followups. Link: #9584

  • eslint: Enable "no-whitespace-before-property". Link: #9598

  • Improve "change stream privacy" form Link: #9607

  • stream: Change gather_subscriptions_helper for guest users. Link: #9638

  • digest: Make newly registered users data inaccessible to guest users. Link: #9643

  • streams: Handle guest user ids for stream settings changes' events. Link: #9653

  • Fix bugs in landing page carousel. Link: #9655

  • Enable space-infix-ops and space-unary-ops rule. Link: #9662

  • streams: Send peer events to subscribed guest users also and followups. Link: #9673

  • attachment: Fix handling of stream history. Link: #9693

  • [Try] eslint: Enable no-extra-parens rule. Link: #9696

  • profile: Fix glitch when exiting custom profile display UI. Link: #9706

  • Disable appropriate features for guest. Link: #9714

  • left-sidebar: Fix opening of compose box on narrowing using hotkeys. Link: #9720

  • search: Fix "Enter to search" while using an input method. Link: #9721

  • message: Fix opening of compose box on mobile webapp. Link: #9728

  • populate_db: Include populating analytics database. Link: #9738

  • message_edit: Add coverage for get_deletability function. Link: #9741

  • guest: Restrict guest users access to user group creation and updation. Link: #9749

  • sockets: Remove redundant defering in _setup_sockjs_callbacks. Link: #9752

  • settings_org: Increase node test coverage. Link: #9759

  • scroll_bar: Initialize scroll_bar in ui_init.js. Link: #9773

  • list_render: Make list creation logic as an export in list_render module. Link: #9787

  • search: Add 100% coverage for search.js. Link: #9800

  • widgets: Fix empty message_content of "All messages" widgets. Link: #9832

  • settings: Fix focusing of your-account prior complete loading. Link: #9843

  • bugdown: Improve exception handler for BugdownRenderingException. Link: #9862

  • widgets: Increase node tests coverage to 100%. Link: #9873

  • voting_widget: Increase node test coverage to 100%. Link: #9891

  • invitations: Send 'invites_changed' event for invitations events. Link: #9909

  • notifications: Fix leaking of private stream msgs sent before subscribing. Link: #10086

  • Change user role edit form to modal. Link: #10097

  • User info form modal remaining work Link: #10141

  • forms: Fix accounts listed in password_reset email to active accounts. Link: #10186

  • test_event_queue: Refactor database property change more readable. Link: #10241

  • zulip_bots: Fix get_storage request arguments in StateHandler. Link: #446
  • docs: Make "listening to network interface" step clear. Link: #2731

Currently open PRs

All these PRs are complete except two [WIP] PRs which are created for experimental purpose.

  • org settings: Enforce unsigned integers on input elements. Link: #9695

  • bugdown: Extract common function from __init__.py. Link: #9793

  • [WIP] Add prototype of /giphy command. Link: #9962

  • Improve invite modal to include pills and dropdown. Link: #9992

  • (refactor) Make explicit call for narrow change event handlers. Link: #10215

  • [WIP] Add giphy zgram handler. Link: #458
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment