2018-12-08 01:28:07 +01:00
|
|
|
|
# Google Summer of Code
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
|
|
|
|
## About us
|
|
|
|
|
|
2022-01-21 22:09:28 +01:00
|
|
|
|
[Zulip](https://zulip.com) is the only modern team chat app that is ideal for both
|
2022-01-19 02:14:03 +01:00
|
|
|
|
live and asynchronous conversations. Zulip has a web app, a cross-platform
|
|
|
|
|
mobile app for iOS and Android, cross-platform desktop and terminal apps, and
|
|
|
|
|
over 100 native integrations. The entire Zulip codebase is 100% open source.
|
|
|
|
|
|
|
|
|
|
Zulip has been gaining in popularity since it was [released as open source
|
|
|
|
|
software][oss-release] in late 2015, with code contributions from [over 700
|
|
|
|
|
people](https://zulip.com/team) from all around the world. Thousands of people
|
|
|
|
|
use Zulip every day, and your work on Zulip will have meaningful impact
|
|
|
|
|
on their experience.
|
2018-12-08 01:28:07 +01:00
|
|
|
|
|
|
|
|
|
[oss-release]: https://blogs.dropbox.com/tech/2015/09/open-sourcing-zulip-a-dropbox-hack-week-project/
|
|
|
|
|
|
2022-01-19 02:14:03 +01:00
|
|
|
|
As an organization, we value engaged, responsive mentorship and making sure our
|
|
|
|
|
product quality is extremely high. You can expect to receive disciplined code
|
|
|
|
|
reviews by highly experienced engineers. Since Zulip is a team chat product,
|
|
|
|
|
your GSoC experience with the Zulip project will be highly interactive.
|
|
|
|
|
|
|
|
|
|
> _“The experience of working with Zulip for the summer was really phenomenal and
|
|
|
|
|
> taught me a lot about software development and working with a community. Zulip
|
|
|
|
|
> has one of the best open source communities out there who are super friendly
|
|
|
|
|
> and welcoming. You learn a lot just by watching others work and talk.”_ – Sai
|
|
|
|
|
> Rohitth Chiluka, Zulip GSoC 2021 participant
|
2019-10-30 00:06:59 +01:00
|
|
|
|
|
2022-01-19 02:14:03 +01:00
|
|
|
|
As part of our commitment to mentorship, Zulip has over 160,000 words of
|
2019-10-30 00:06:59 +01:00
|
|
|
|
[documentation for
|
2022-01-19 02:14:03 +01:00
|
|
|
|
developers](../index.html#welcome-to-the-zulip-documentation), much of it
|
|
|
|
|
designed to explain not just how Zulip works, but why Zulip works the way that
|
|
|
|
|
it does. To learn more about our mission and values, check out [this blog
|
|
|
|
|
post](https://blog.zulip.com/2021/04/28/why-zulip-is-on-github-sponsors/)!
|
|
|
|
|
|
|
|
|
|
## The Zulip GSoC experience
|
|
|
|
|
|
2022-01-21 22:09:28 +01:00
|
|
|
|
Zulip has been a GSoC mentoring organization since 2016, and we accept 15-20
|
2022-01-19 02:14:03 +01:00
|
|
|
|
GSoC participants each summer. We have also mentored several interns through the
|
|
|
|
|
[Outreachy](https://www.outreachy.org/) program, and hundreds of Google Code-In
|
|
|
|
|
participants.
|
|
|
|
|
|
|
|
|
|
Zulip operates under a **group mentorship** model. While you will have an
|
|
|
|
|
assigned mentor, you will also get lots of feedback from other members of the
|
|
|
|
|
[Zulip development community](https://zulip.com/development-community/) by
|
|
|
|
|
posting your questions and ideas in public streams. We encourage GSoC
|
|
|
|
|
participants to help each other out as well!
|
|
|
|
|
|
|
|
|
|
Many GSoC participants stay involved with the project past the official end of
|
|
|
|
|
the program. A number of folks who get started with GSoC go on to mentor the
|
|
|
|
|
next cohort of participants, and several have joined Zulip's team of core
|
|
|
|
|
maintainers.
|
|
|
|
|
|
|
|
|
|
To learn more about the experience of doing GSoC with Zulip, check out our
|
|
|
|
|
[Zulip's Google Summer of Code 2021 blog
|
|
|
|
|
post](https://blog.zulip.com/2021/09/30/google-summer-of-code-2021/). Our [guide
|
|
|
|
|
for having a great summer with Zulip](../contributing/summer-with-zulip.md) will
|
|
|
|
|
also give you a feel for what it's like to do GSoC with us.
|
|
|
|
|
|
|
|
|
|
> _“It has been the best summer I've ever had! I'm thankful to my mentors, my
|
|
|
|
|
> peers, Zulip, and Google for providing me an opportunity of getting involved
|
|
|
|
|
> in the community! You have helped and supported me to become a better software
|
|
|
|
|
> developer and a passionate open-source contributor.”_ – Sarthak Garg, Zulip
|
|
|
|
|
> GSoC 2021 participant
|
2018-12-08 01:28:07 +01:00
|
|
|
|
|
2018-01-23 09:33:37 +01:00
|
|
|
|
## Getting started
|
|
|
|
|
|
docs: Add missing space to compound verbs “log in”, “set up”, etc.
Noun: backup, checkout, cleanup, login, logout, setup, shutdown, signup,
timeout.
Verb: back up, check out, clean up, log in, log out, set up, shut
down, sign up, time out.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-04-25 23:05:38 +02:00
|
|
|
|
We have an easy-to-set-up development environment, and a library of
|
2018-01-23 09:33:37 +01:00
|
|
|
|
tasks that are great for first-time contributors. Use
|
2019-04-06 02:58:44 +02:00
|
|
|
|
[our first-time Zulip developer guide](../overview/contributing.html#your-first-codebase-contribution)
|
2018-01-23 09:33:37 +01:00
|
|
|
|
to get your Zulip development environment set up and to find your first issue. If you have any
|
2022-01-19 02:14:03 +01:00
|
|
|
|
trouble, please speak up in the
|
|
|
|
|
[#GSoC](https://chat.zulip.org/#narrow/stream/14-GSoC) stream on the
|
|
|
|
|
[Zulip development community server](https://zulip.com/development-community/)
|
2018-01-23 09:33:37 +01:00
|
|
|
|
(use your name as the topic).
|
|
|
|
|
|
2022-01-19 02:14:03 +01:00
|
|
|
|
## Application tips, and how to become a strong candidate
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
2022-01-19 02:14:03 +01:00
|
|
|
|
Zulip has some of the highest standards of any GSoC organization. The most
|
|
|
|
|
important component of a strong application is to demonstrate your ability to
|
|
|
|
|
contribute to a large codebase. Accepted applicants generally have five or more
|
|
|
|
|
merged (or nearly merged) pull requests, including at least a couple of
|
|
|
|
|
significant changes (on the order of 100+ lines).
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
2022-01-19 02:14:03 +01:00
|
|
|
|
The quality of your best work is more important than the quantity, so be
|
|
|
|
|
sure to follow our coding guidelines and test your work before submitting it for
|
|
|
|
|
review. Don't worry if you make mistakes in your first few
|
|
|
|
|
contributions! Everyone makes mistakes getting started — just make sure you don't
|
|
|
|
|
make the same mistakes next time.
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
2022-01-19 02:14:03 +01:00
|
|
|
|
It's best to get started with Zulip early, so that you have time to learn, make
|
|
|
|
|
contributions, and put together a strong proposal. However, we recommend waiting
|
|
|
|
|
until the last few weeks to formally write up and submit your application.
|
|
|
|
|
|
|
|
|
|
The GSoC 2022 application deadline is April 19, 2022. Please follow [GSoC's application process
|
|
|
|
|
instructions](https://google.github.io/gsocguides/student/). Your application should include the following:
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
2021-11-19 15:11:08 +01:00
|
|
|
|
- Details on any experience you have related to the technologies used
|
|
|
|
|
by Zulip, or related to our product approach.
|
|
|
|
|
- Links to materials which help us evaluate your level of experience and
|
2018-01-23 09:33:37 +01:00
|
|
|
|
how you work, such as personal projects of yours, including any
|
|
|
|
|
existing open source or open culture contributions you've made and
|
|
|
|
|
any bug reports you've submitted to open source projects.
|
2021-08-20 21:45:39 +02:00
|
|
|
|
- Some notes on what you are hoping to get out of your project.
|
|
|
|
|
- A description of the project you'd like to do, and why you're
|
2018-01-23 09:33:37 +01:00
|
|
|
|
excited about it.
|
2021-08-20 21:45:39 +02:00
|
|
|
|
- Some notes on why you're excited about working on Zulip.
|
2021-11-19 15:11:08 +01:00
|
|
|
|
- A link to your initial contribution(s).
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
|
|
|
|
We expect applicants to either have experience with the technologies
|
2018-12-08 01:28:07 +01:00
|
|
|
|
relevant to their project or have strong general programming
|
2021-08-20 21:53:28 +02:00
|
|
|
|
experience. We also expect applicants to be excited about learning
|
2018-12-08 01:28:07 +01:00
|
|
|
|
how to do disciplined, professional software engineering, where they
|
|
|
|
|
can demonstrate through reasoning and automated tests that their code
|
|
|
|
|
is correct.
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
2022-01-19 02:14:03 +01:00
|
|
|
|
For all of our projects, an important skill to develop is a good
|
|
|
|
|
command of Git; read [our Git guide](../git/overview.md) in full to
|
|
|
|
|
learn how to use it well. Of particular importance is mastering using
|
2022-01-21 22:09:28 +01:00
|
|
|
|
`git rebase` so that you can construct commits that are clearly correct
|
2022-01-19 02:14:03 +01:00
|
|
|
|
and explain why they are correct. We highly recommend investing in
|
|
|
|
|
learning a [graphical Git client](../git/setup.md) and learning to
|
|
|
|
|
write good commit structures and messages; this is more important than
|
|
|
|
|
any other single skill for contributing to a large open source
|
|
|
|
|
project like Zulip.
|
|
|
|
|
|
|
|
|
|
We are excited about candidates who submit good contributions to Zulip projects,
|
|
|
|
|
help other applicants on [GitHub](https://github.com/zulip/zulip) and on
|
|
|
|
|
[chat.zulip.org](https://zulip.com/development-community), learn from our
|
|
|
|
|
suggestions, [try to solve their own obstacles and then ask well-formed
|
|
|
|
|
questions](https://www.mattringel.com/2013/09/30/you-must-try-and-then-you-must-ask/),
|
|
|
|
|
and develop well thought out project proposals.
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
2022-01-19 02:14:03 +01:00
|
|
|
|
For the first time in 2022, being a student is not required in order to apply to
|
|
|
|
|
GSoC. We are happy to accept both student and non-student participants.
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
2022-01-19 02:14:03 +01:00
|
|
|
|
Our documentation on [what makes a great Zulip
|
|
|
|
|
contributor](../overview/contributing.html#what-makes-a-great-zulip-contributor)
|
|
|
|
|
offers some additional helpful information. We also recommend reviewing the
|
|
|
|
|
[official GSoC
|
|
|
|
|
resources](https://developers.google.com/open-source/gsoc/resources/),
|
|
|
|
|
especially the [Contributor/Student
|
|
|
|
|
Guide](https://google.github.io/gsocguides/student/).
|
|
|
|
|
|
|
|
|
|
## Questions are important
|
2021-11-19 15:11:08 +01:00
|
|
|
|
|
|
|
|
|
A successful GSoC revolves around asking well-formed questions.
|
|
|
|
|
A well-formed question helps you learn, respects the person answering,
|
|
|
|
|
and reduces the time commitment and frustration level of everyone
|
|
|
|
|
involved. Asking the right question, to the right person, in the right
|
|
|
|
|
way, at the right time, is a skill which requires a lifetime of
|
|
|
|
|
fine-tuning, but Zulip makes this a little bit easier by providing a
|
|
|
|
|
general structure for asking questions in the Zulip community.
|
|
|
|
|
|
|
|
|
|
This structure saves time answering common questions while still
|
|
|
|
|
providing everyone the personal help they need, and maintains balance
|
|
|
|
|
between stream discussion and documentation. Becoming familiar and
|
|
|
|
|
comfortable with this rhythm will be helpful to you as you interact
|
|
|
|
|
with other developers on
|
2021-12-09 20:15:18 +01:00
|
|
|
|
[chat.zulip.org](https://zulip.com/development-community). It is always
|
2021-11-19 15:11:08 +01:00
|
|
|
|
better (and Zulip’s strong preference) to ask questions and have
|
|
|
|
|
conversation through a public stream rather than a private message or
|
|
|
|
|
an email. This benefits you by giving you faster response times and
|
|
|
|
|
the benefit of many minds, as well as benefiting the community as
|
|
|
|
|
other contributors learn from reading the conversation.
|
|
|
|
|
|
2021-12-09 20:15:18 +01:00
|
|
|
|
- Stick to the [community norms](https://zulip.com/development-community/).
|
2021-11-19 15:11:08 +01:00
|
|
|
|
- Read these three blog posts
|
|
|
|
|
- [Try, Then Ask](https://www.mattringel.com/2013/09/30/you-must-try-and-then-you-must-ask/)
|
|
|
|
|
- [We Aren’t Just Making Code, We’re Making History](https://www.harihareswara.net/sumana/2016/10/12/0)
|
|
|
|
|
- [How to Ask Good Questions](https://jvns.ca/blog/good-questions/)
|
|
|
|
|
- Understand [what makes a great Zulip contributor](../overview/contributing.html#what-makes-a-great-zulip-contributor)
|
|
|
|
|
|
|
|
|
|
This is a typical question/response sequence:
|
|
|
|
|
|
|
|
|
|
1. You [try to solve your problem until you get stuck, including
|
|
|
|
|
looking through our code and our documentation, then start
|
|
|
|
|
formulating your request for
|
|
|
|
|
help](https://www.mattringel.com/2013/09/30/you-must-try-and-then-you-must-ask/).
|
|
|
|
|
1. You ask your question.
|
|
|
|
|
1. Someone directs you to a document.
|
|
|
|
|
1. You go read the document to find the answer to your question.
|
|
|
|
|
1. You find you are confused about a new thing.
|
|
|
|
|
1. You ask another question.
|
|
|
|
|
1. Having demonstrated your the ability to read,
|
|
|
|
|
think, and learn new things, someone will have a longer talk with
|
|
|
|
|
you to answer your new, specific question.
|
|
|
|
|
1. You and the other person collaborate to improve the document you
|
|
|
|
|
read in step 3. :-)
|
|
|
|
|
|
|
|
|
|
As a final note on asking for help, please make use of [Zulip's
|
|
|
|
|
Markdown](https://zulip.com/help/format-your-message-using-markdown)
|
|
|
|
|
when posting questions; code blocks are nicer for reading terminal
|
|
|
|
|
output than screenshots. And be sure to read the traceback before
|
|
|
|
|
posting it; often the error message explains the problem or hints that
|
|
|
|
|
you need more scrollback than just the last 20 lines.
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
|
|
|
|
## Project ideas
|
|
|
|
|
|
2022-01-19 02:14:03 +01:00
|
|
|
|
Once you have several PRs merged (or at least one significant PR merged), you
|
|
|
|
|
can start developing a specific project plan. We recommend discussing your ideas
|
|
|
|
|
in the [#GSoC](https://chat.zulip.org/#narrow/stream/14-GSoC) stream in the Zulip
|
|
|
|
|
development community, in order to get quick feedback from whoever is online.
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
2022-01-19 02:14:03 +01:00
|
|
|
|
This section contains the seeds of project ideas; you will need to do research
|
|
|
|
|
on the Zulip codebase, read issues on GitHub, and talk with developers to put
|
|
|
|
|
together a complete project proposal. It's also fine to come up with your own
|
|
|
|
|
project ideas. As you'll see below, you can put together a great project around
|
|
|
|
|
one of the [area labels](https://github.com/zulip/zulip/labels) on GitHub; each
|
|
|
|
|
has a cluster of problems in one part of the Zulip project that we'd love to
|
|
|
|
|
improve.
|
|
|
|
|
|
|
|
|
|
We don't believe in labeling projects by difficulty, because the level of
|
|
|
|
|
difficulty is highly dependent on your particular skills. To help you find
|
|
|
|
|
a great project, we list the skills needed, and try to emphasize where strong
|
|
|
|
|
skills with particular tools are likely to be important for a given project.
|
2021-02-16 03:08:30 +01:00
|
|
|
|
|
2022-01-19 02:14:03 +01:00
|
|
|
|
We will never reject a strong applicant because their project idea was
|
|
|
|
|
not a top priority. On the flip side, we often reject applicants proposing
|
|
|
|
|
valuable projects when we haven't seen compelling work from the applicant.
|
2021-02-16 03:08:30 +01:00
|
|
|
|
|
|
|
|
|
More important to us than specific deliverables in a project proposal
|
2022-01-19 02:14:03 +01:00
|
|
|
|
is a clear body of work to focus on. E.g., if we see a proposal with 8
|
|
|
|
|
Markdown processor issues, we'll interpret this as an applicant excited
|
2021-04-25 23:11:21 +02:00
|
|
|
|
to work on the Markdown processor for the summer, even if the specific
|
2021-02-16 03:08:30 +01:00
|
|
|
|
set of 8 issues may not be the right ones to invest in.
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
|
|
|
|
### Focus areas
|
|
|
|
|
|
2022-01-19 02:14:03 +01:00
|
|
|
|
For 2022, we are particularly interested in GSoC contributors who have
|
2018-12-08 01:28:07 +01:00
|
|
|
|
strong skills at visual design, HTML/CSS, mobile development,
|
2022-01-19 02:14:03 +01:00
|
|
|
|
performance optimization, or Electron. So if you're an applicant with
|
2018-12-08 01:28:07 +01:00
|
|
|
|
those skills and are looking for an organization to join, we'd love to
|
|
|
|
|
talk to you!
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
|
|
|
|
The Zulip project has a huge surface area, so even when we're focused
|
2022-01-19 02:14:03 +01:00
|
|
|
|
on something, a large amount of essential work goes into other parts of
|
2021-08-20 21:53:28 +02:00
|
|
|
|
the project. Every area of Zulip could benefit from the work of a
|
2022-01-19 02:14:03 +01:00
|
|
|
|
contributor with strong programming skills, so don't feel discouraged if
|
2018-01-23 09:33:37 +01:00
|
|
|
|
the areas mentioned above are not your main strength.
|
|
|
|
|
|
|
|
|
|
As a data point, in Summer 2017, we had 4 students working on the
|
|
|
|
|
React Native mobile app (1 focused primarily on visual design), 1 on
|
2021-05-14 00:16:30 +02:00
|
|
|
|
the Electron desktop app, 2 on bots/integrations, 1 on web app visual
|
2018-01-23 09:33:37 +01:00
|
|
|
|
design, 2 on our development tooling and automated testing
|
|
|
|
|
infrastructure, and the remaining 4 on various other parts of the
|
2021-05-14 00:16:30 +02:00
|
|
|
|
backend and core web app.
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
2022-01-19 02:14:03 +01:00
|
|
|
|
**Please note that the project ideas described below have not yet been updated
|
|
|
|
|
for GSoC 2022.**
|
|
|
|
|
|
2018-01-23 09:33:37 +01:00
|
|
|
|
### Full stack and web frontend focused projects
|
|
|
|
|
|
|
|
|
|
Code: [github.com/zulip/zulip -- Python, Django, JavaScript, and
|
|
|
|
|
CSS](https://github.com/zulip/zulip/).
|
|
|
|
|
|
2021-02-19 02:41:36 +01:00
|
|
|
|
- Zulip's [REST API documentation](https://zulip.com/api), which is an
|
|
|
|
|
important resource for any organization integrating with Zulip.
|
|
|
|
|
Zulip has a [nice framework](../documentation/api.md) for writing
|
|
|
|
|
API documentation built by past GSoC students based on the OpenAPI
|
|
|
|
|
standard with built-in automated tests of the data both the Python
|
2021-08-20 21:53:28 +02:00
|
|
|
|
and curl examples. However, the documentation isn't yet what we're
|
2021-02-19 02:41:36 +01:00
|
|
|
|
hoping for: there are a few dozen endpoints that are missing,
|
|
|
|
|
several of which are quite important, the visual design isn't
|
|
|
|
|
perfect (especially for e.g. `GET /events`), many template could be
|
2021-08-20 21:53:28 +02:00
|
|
|
|
deleted with a bit of framework effort, etc. See the [API docs area
|
|
|
|
|
label][api-docs-area] for many specific projects in the area. Our
|
2021-02-19 02:41:36 +01:00
|
|
|
|
goal for the summer is for 1-2 students to resolve all open issues
|
|
|
|
|
related to the REST API documentation.
|
|
|
|
|
|
|
|
|
|
[api-docs-area]: https://github.com/zulip/zulip/issues?q=is%3Aopen+is%3Aissue+label%3A%22area%3A+documentation+%28api+and+integrations%29%22
|
|
|
|
|
|
|
|
|
|
- Finish important full-stack features for open source projects using
|
|
|
|
|
Zulip, including [default stream
|
|
|
|
|
groups](https://github.com/zulip/zulip/issues/13670), [Mute
|
|
|
|
|
User](https://github.com/zulip/zulip/issues/168), and [public
|
2021-08-20 21:53:28 +02:00
|
|
|
|
access](https://github.com/zulip/zulip/issues/13172). Expert: Tim
|
|
|
|
|
Abbott. Many of these issues have open PRs with substantial work
|
2021-02-19 02:41:36 +01:00
|
|
|
|
towards the goal, but each of them is likely to have dozens of
|
|
|
|
|
adjacent or follow-up tasks.
|
|
|
|
|
|
|
|
|
|
- Fill in gaps, fix bugs, and improve the framework for Zulip's
|
2021-08-20 21:53:28 +02:00
|
|
|
|
library of native integrations. We have about 100 integrations, but
|
|
|
|
|
there are a handful of important integrations that are missing. The
|
2021-02-19 02:41:36 +01:00
|
|
|
|
[the integrations label on
|
|
|
|
|
GitHub](https://github.com/zulip/zulip/labels/area%3A%20integrations)
|
2018-12-08 01:28:07 +01:00
|
|
|
|
lists some of the priorities here (many of which are great
|
|
|
|
|
preparatory projects); once those are cleared, we'll likely have
|
2021-08-20 21:53:28 +02:00
|
|
|
|
many more. **Skills required**: Strong Python experience, will to
|
|
|
|
|
do careful manual testing of third-party products. Fluent English,
|
2018-12-08 01:28:07 +01:00
|
|
|
|
usability sense and/or technical writing skills are all pluses.
|
|
|
|
|
Expert: Eeshan Garg.
|
|
|
|
|
|
2021-02-19 02:41:36 +01:00
|
|
|
|
- Optimize performance and scalability, either for the web frontend or
|
2021-08-20 21:53:28 +02:00
|
|
|
|
the server. Zulip is already one of the faster web apps out there,
|
2021-02-19 02:41:36 +01:00
|
|
|
|
but there are a bunch of ideas for how to make it substantially
|
2021-08-20 21:53:28 +02:00
|
|
|
|
faster. This is likely a particularly challenging project to do
|
2021-02-19 02:41:36 +01:00
|
|
|
|
well, since there are a lot of subtle interactions to understand.
|
|
|
|
|
**Skill recommended**: Strong debugging, communication, and code
|
2021-08-20 21:53:28 +02:00
|
|
|
|
reading skills are most important here. JavaScript experience; some
|
2021-02-19 02:41:36 +01:00
|
|
|
|
Python/Django experience, some skill with CSS, ideally experience
|
|
|
|
|
using the Chrome Timeline profiling tools (but you can pick this up
|
2021-08-20 21:53:28 +02:00
|
|
|
|
as you go) can be useful depending on what profiling shows. Our
|
2021-02-19 02:41:36 +01:00
|
|
|
|
[backend scalability design doc](../subsystems/performance.md) and
|
|
|
|
|
the [production issue label][prod-label] (where
|
|
|
|
|
performance/scalability issues tend to be filed) may be helpful
|
2021-08-20 21:53:28 +02:00
|
|
|
|
reading for the backend part of this. Expert: Steve Howell.
|
2021-02-19 02:41:36 +01:00
|
|
|
|
|
|
|
|
|
[prod-label]: https://github.com/zulip/zulip/issues?q=is%3Aopen+is%3Aissue+label%3A%22area%3A+production%22
|
|
|
|
|
|
2021-05-14 00:16:30 +02:00
|
|
|
|
- Extract JavaScript logic modules from the Zulip web app that we'd
|
2021-08-20 21:53:28 +02:00
|
|
|
|
like to be able to share with the Zulip web app. This work can have
|
2021-02-19 02:41:36 +01:00
|
|
|
|
big benefits it terms of avoiding code duplication for complex
|
2021-08-20 21:53:28 +02:00
|
|
|
|
logic. We have prototyped for a few modules by migrating them to
|
2021-02-19 02:41:36 +01:00
|
|
|
|
`static/shared/`; this project will involve closely collaborating
|
2021-08-20 21:53:28 +02:00
|
|
|
|
with the mobile team to prioritize the modules to migrate. **Skills
|
2021-02-24 05:51:59 +01:00
|
|
|
|
recommended**: JavaScript experience, careful refactoring, API
|
2021-02-19 02:41:36 +01:00
|
|
|
|
design, React.
|
|
|
|
|
|
2021-02-24 05:51:59 +01:00
|
|
|
|
Experts: Greg Price, Steve Howell.
|
2020-03-05 01:24:31 +01:00
|
|
|
|
|
2020-08-11 01:47:54 +02:00
|
|
|
|
- Make Zulip integrations easier for nontechnical users to set up.
|
2018-12-08 01:28:07 +01:00
|
|
|
|
This includes adding a backend permissions system for managing bot
|
|
|
|
|
permissions (and implementing the enforcement logic), adding an
|
2019-11-28 01:17:30 +01:00
|
|
|
|
OAuth system for presenting those controls to users, as well as
|
2018-12-08 01:28:07 +01:00
|
|
|
|
making the /integrations page UI have buttons to create a bot,
|
2021-08-20 21:53:28 +02:00
|
|
|
|
rather than sending users to the administration page. **Skills
|
2018-12-08 01:28:07 +01:00
|
|
|
|
recommended**: Strong Python/Django; JavaScript, CSS, and design
|
2021-08-20 21:53:28 +02:00
|
|
|
|
sense helpful. Understanding of implementing OAuth providers,
|
2018-12-08 01:28:07 +01:00
|
|
|
|
e.g. having built a prototype with
|
2019-11-28 01:17:30 +01:00
|
|
|
|
[the Django OAuth toolkit](https://django-oauth-toolkit.readthedocs.io/en/latest/)
|
2021-08-20 21:53:28 +02:00
|
|
|
|
would be great to demonstrate as part of an application. The
|
2019-09-30 19:37:56 +02:00
|
|
|
|
[Zulip integration writing guide](../documentation/integrations.md)
|
2018-01-23 09:33:37 +01:00
|
|
|
|
and
|
2020-10-30 00:46:30 +01:00
|
|
|
|
[integration documentation](https://zulip.com/integrations/)
|
2018-01-23 09:33:37 +01:00
|
|
|
|
are useful materials for learning about how things currently work,
|
|
|
|
|
and
|
|
|
|
|
[the integrations label on GitHub](https://github.com/zulip/zulip/labels/area%3A%20integrations)
|
|
|
|
|
has a bunch of good starter issues to demonstrate your skills if
|
2021-08-20 21:53:28 +02:00
|
|
|
|
you're interested in this area. Expert: Eeshan Garg.
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
2021-02-19 02:41:36 +01:00
|
|
|
|
- Extend Zulip's meta-integration that converts the Slack incoming webhook
|
2018-01-23 09:33:37 +01:00
|
|
|
|
API to post messages into Zulip. Zulip has several dozen native
|
2020-10-30 00:46:30 +01:00
|
|
|
|
integrations (https://zulip.com/integrations/), but Slack has a
|
2021-08-20 21:53:28 +02:00
|
|
|
|
ton more. We should build an interface to make all of Slack’s
|
2018-01-23 09:33:37 +01:00
|
|
|
|
numerous third-party integrations work with Zulip as well, by
|
|
|
|
|
basically building a Zulip incoming webhook interface that accepts
|
|
|
|
|
the Slack API (if you just put in a Zulip server URL as your "Slack
|
2021-08-20 21:53:28 +02:00
|
|
|
|
server"). **Skills required**: Strong Python experience; experience
|
|
|
|
|
with the Slack API a plus. Work should include documenting the
|
|
|
|
|
system and advertising it. Expert: Tim Abbott.
|
2020-03-05 01:24:31 +01:00
|
|
|
|
|
|
|
|
|
- Visual and user experience design work on the core Zulip web UI.
|
|
|
|
|
We're particularly excited about students who are interested in
|
|
|
|
|
making our CSS clean and readable as part of working on the UI.
|
|
|
|
|
**Skills required**: Design, HTML and CSS skills; JavaScript and
|
2021-08-20 21:53:28 +02:00
|
|
|
|
illustration experience are helpful. A great application would
|
2020-03-05 01:24:31 +01:00
|
|
|
|
include PRs making small, clean improvements to the Zulip UI
|
2021-08-20 21:53:28 +02:00
|
|
|
|
(whether logged-in or logged-out pages). Expert: Aman Agrawal.
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
|
|
|
|
- Build support for outgoing webhooks and slash commands into Zulip to
|
2021-08-20 21:53:28 +02:00
|
|
|
|
improve its chat-ops capabilities. There's an existing
|
2018-01-23 09:33:37 +01:00
|
|
|
|
[pull request](https://github.com/zulip/zulip/pull/1393) with a lot
|
|
|
|
|
of work on the outgoing webhooks piece of this feature that would
|
|
|
|
|
need to be cleaned up and finished, and then we need to build support for slash
|
|
|
|
|
commands, some example integrations, and a full set of
|
2021-08-20 21:53:28 +02:00
|
|
|
|
documentation and tests. Recommended reading includes Slack's
|
2018-01-23 09:33:37 +01:00
|
|
|
|
documentation for these features, the Zulip message sending code
|
|
|
|
|
path, and the linked pull request. **Skills required**: Strong
|
2021-08-20 21:53:28 +02:00
|
|
|
|
Python/Django skills. Expert: Steve Howell.
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
|
|
|
|
- Build a system for managing Zulip bots entirely on the web.
|
|
|
|
|
Right now, there's a somewhat cumbersome process where you download
|
|
|
|
|
the API bindings, create a bot with an API key, put it in
|
2021-08-20 21:53:28 +02:00
|
|
|
|
configuration files, etc. We'd like to move to a model where a bot
|
2018-01-23 09:33:37 +01:00
|
|
|
|
could easily progress from being a quick prototype to being a third-party extension to
|
2021-08-20 21:53:28 +02:00
|
|
|
|
being built into Zulip. And then for built-in bots, one should be able to click a few
|
2018-01-23 09:33:37 +01:00
|
|
|
|
buttons of configuration on the web to set them up and include them in
|
2021-08-20 21:53:28 +02:00
|
|
|
|
your organization. We've developed a number of example bots
|
2021-08-31 23:32:37 +02:00
|
|
|
|
in the [`zulip_bots`](https://github.com/zulip/python-zulip-api/tree/main/zulip_bots)
|
2021-05-05 20:12:43 +02:00
|
|
|
|
PyPI package.
|
2018-01-23 09:33:37 +01:00
|
|
|
|
**Skills recommended**: Python and JavaScript/CSS, plus devops
|
2020-10-23 02:43:28 +02:00
|
|
|
|
skills (Linux deployment, Docker, Puppet etc.) are all useful here.
|
2018-01-23 09:33:37 +01:00
|
|
|
|
Experience writing tools using various popular APIs is helpful for
|
2021-08-20 21:53:28 +02:00
|
|
|
|
being able to make good choices. Expert: Steve Howell.
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
2018-12-08 01:28:07 +01:00
|
|
|
|
- Improve the UI and visual design of the existing Zulip settings and
|
2021-08-20 21:53:28 +02:00
|
|
|
|
administration pages while fixing bugs and adding new settings. The
|
2021-02-19 02:41:36 +01:00
|
|
|
|
pages have improved a great deal during recent GSoCs, but because
|
2021-08-20 21:53:28 +02:00
|
|
|
|
they have a ton of surface area, there's a lot to do. You can get a
|
2021-02-19 02:41:36 +01:00
|
|
|
|
great sense of what needs to be done by playing with the
|
|
|
|
|
settings/administration/streams overlays in a development
|
2021-08-20 21:53:28 +02:00
|
|
|
|
environment. You can get experience working on the subsystem by
|
2021-02-19 02:41:36 +01:00
|
|
|
|
working on some of [our open settings/admin
|
|
|
|
|
issues](https://github.com/zulip/zulip/labels/area%3A%20admin).
|
2018-01-23 09:33:37 +01:00
|
|
|
|
**Skills recommended**: JavaScript, HTML, CSS, and an eye for visual
|
2021-08-20 21:53:28 +02:00
|
|
|
|
design. Expert: Shubham Dhama.
|
2018-12-08 01:28:07 +01:00
|
|
|
|
|
2021-02-19 02:41:36 +01:00
|
|
|
|
- Build out the administration pages for Zulip to add new permissions
|
|
|
|
|
and other settings more features that will make Zulip better for
|
2021-08-20 21:53:28 +02:00
|
|
|
|
larger organizations. We get constant requests for these kinds of
|
|
|
|
|
features from Zulip users. The Zulip bug tracker has plentiful open
|
2020-03-05 01:24:31 +01:00
|
|
|
|
issues( [settings
|
|
|
|
|
(admin/org)](https://github.com/zulip/zulip/labels/area%3A%20settings%20%28admin%2Forg%29),
|
|
|
|
|
[settings
|
|
|
|
|
UI](https://github.com/zulip/zulip/labels/area%3A%20settings%20UI),
|
|
|
|
|
[settings
|
|
|
|
|
(user)](https://github.com/zulip/zulip/labels/area%3A%20settings%20%28user%29),
|
|
|
|
|
[stream
|
|
|
|
|
settings](https://github.com/zulip/zulip/labels/area%3A%20stream%20settings)
|
2021-08-20 21:53:28 +02:00
|
|
|
|
) in the space of improving the Zulip administrative UI. Many are
|
2018-01-23 09:33:37 +01:00
|
|
|
|
little bite-size fixes in those pages, which are great for getting a
|
|
|
|
|
feel for things, but a solid project here would be implementing 5-10
|
2020-03-05 01:24:31 +01:00
|
|
|
|
of the major missing features as full-stack development projects.
|
|
|
|
|
The first part of this project will be refactoring the admin UI
|
|
|
|
|
interfaces to require writing less semi-duplicate code for each
|
|
|
|
|
feature. **Skills recommended**: A good mix of Python/Django and
|
2021-08-20 21:53:28 +02:00
|
|
|
|
HTML/CSS/JavaScript skill is ideal. The system for adding new
|
2020-03-05 01:24:31 +01:00
|
|
|
|
features is [well documented](../tutorials/new-feature-tutorial.md).
|
2018-12-08 01:28:07 +01:00
|
|
|
|
Expert: Shubham Dhama.
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
2021-08-20 21:53:28 +02:00
|
|
|
|
- Write cool new features for Zulip. Play around with the software,
|
2018-12-08 01:28:07 +01:00
|
|
|
|
browse Zulip's issues for things that seem important, and suggest
|
2021-08-20 21:53:28 +02:00
|
|
|
|
something you’d like to build! A great project can combine 3-5
|
|
|
|
|
significant features. Experts: Depends on the features!
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
2021-08-20 21:53:28 +02:00
|
|
|
|
- Work on Zulip's development and testing infrastructure. Zulip is a
|
2018-01-23 09:33:37 +01:00
|
|
|
|
project that takes great pride in building great tools for
|
|
|
|
|
development, but there's always more to do to make the experience
|
2021-08-20 21:53:28 +02:00
|
|
|
|
delightful. Significantly, a full 10% of Zulip's open issues are
|
2018-12-08 01:28:07 +01:00
|
|
|
|
ideas for how to improve the project, and are
|
2018-01-23 09:33:37 +01:00
|
|
|
|
[in](https://github.com/zulip/zulip/labels/area%3A%20tooling)
|
|
|
|
|
[these](https://github.com/zulip/zulip/labels/area%3A%20testing-coverage)
|
|
|
|
|
[four](https://github.com/zulip/zulip/labels/area%3A%20testing-infrastructure)
|
|
|
|
|
[labels](https://github.com/zulip/zulip/labels/area%3A%20provision)
|
2021-08-20 21:53:28 +02:00
|
|
|
|
for tooling improvements. A good place to start is
|
2018-12-08 01:28:07 +01:00
|
|
|
|
[backend test coverage](https://github.com/zulip/zulip/issues/7089).
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
|
|
|
|
This is a somewhat unusual project, in that it would likely consist
|
|
|
|
|
of dozens of small improvements to the overall codebase, but this
|
|
|
|
|
sort of work has a huge impact on the experience of other Zulip
|
|
|
|
|
developers and thus the community as a whole (project leader Tim
|
2018-12-08 01:28:07 +01:00
|
|
|
|
Abbott spends more time on the development experience than any other
|
|
|
|
|
single area).
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
|
|
|
|
A possible specific larger project in this space is working on
|
2019-09-30 19:37:56 +02:00
|
|
|
|
adding [mypy](../testing/mypy.md) stubs
|
2021-08-20 21:53:28 +02:00
|
|
|
|
for Django in mypy to make our type checking more powerful. Read
|
2018-01-23 09:33:37 +01:00
|
|
|
|
[our mypy blog post](https://blog.zulip.org/2016/10/13/static-types-in-python-oh-mypy/)
|
2021-08-20 21:53:28 +02:00
|
|
|
|
for details on how mypy works and is integrated into Zulip. This
|
2018-01-23 09:33:37 +01:00
|
|
|
|
specific project is ideal for a strong contributor interested in
|
|
|
|
|
type systems.
|
|
|
|
|
|
|
|
|
|
**Skills required**: Python, some DevOps, and a passion for checking
|
2021-08-20 21:53:28 +02:00
|
|
|
|
your work carefully. A strong applicant for this will have
|
2018-01-23 09:33:37 +01:00
|
|
|
|
completed several projects in these areas.
|
|
|
|
|
|
2021-02-19 02:41:36 +01:00
|
|
|
|
Experts: Anders Kaseorg (provision, testing), Steve Howell (tooling, testing).
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
|
|
|
|
- Write more API client libraries in more languages, or improve the
|
2018-12-08 01:28:07 +01:00
|
|
|
|
ones that already exist (in
|
|
|
|
|
[python](https://github.com/zulip/python-zulip-api),
|
|
|
|
|
[JavaScript](https://github.com/zulip/zulip-js),
|
2018-01-23 09:33:37 +01:00
|
|
|
|
[PHP](https://packagist.org/packages/mrferos/zulip-php), and
|
2021-08-20 21:53:28 +02:00
|
|
|
|
[Haskell](https://hackage.haskell.org/package/hzulip)). The
|
2021-02-19 02:41:36 +01:00
|
|
|
|
JavaScript bindings are a particularly high priority, since they are
|
|
|
|
|
a project that hasn't gotten a lot of attention since being adopted
|
|
|
|
|
from its original author, and we'd like to convert them to
|
2021-08-20 21:53:28 +02:00
|
|
|
|
Typescript. **Skills required**: Experience with the target
|
|
|
|
|
language and API design. Expert: Depends on language.
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
|
|
|
|
- Develop [**@zulipbot**](https://github.com/zulip/zulipbot), the GitHub
|
2021-08-20 22:54:08 +02:00
|
|
|
|
workflow bot for the Zulip organization and its repositories. By utilizing the
|
|
|
|
|
[GitHub API](https://developer.github.com/v3/),
|
|
|
|
|
[**@zulipbot**](https://github.com/zulipbot) improves the experience of Zulip
|
|
|
|
|
contributors by managing the issues and pull requests in the Zulip repositories,
|
|
|
|
|
such as assigning issues to contributors and appropriately labeling issues with
|
|
|
|
|
their current status to help contributors gain a better understanding of which
|
|
|
|
|
issues are being worked on. Since the project is in its early stages of
|
|
|
|
|
development, there are a variety of possible tasks that can be done, including
|
|
|
|
|
adding new features, writing unit tests and creating a testing framework, and
|
|
|
|
|
writing documentation. **Skills required**: Node.js, ECMAScript 6, and API
|
|
|
|
|
experience. Experts: Cynthia Lin, Joshua Pan.
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
|
|
|
|
### React Native mobile app
|
|
|
|
|
|
|
|
|
|
Code:
|
|
|
|
|
[React Native mobile app](https://github.com/zulip/zulip-mobile).
|
2021-02-24 05:51:59 +01:00
|
|
|
|
Experts: Greg Price, Chris Bobbe.
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
|
|
|
|
The highest priority for the Zulip project overall is improving the
|
|
|
|
|
Zulip React Native mobile app.
|
|
|
|
|
|
2021-08-20 21:53:28 +02:00
|
|
|
|
- Work on issues and polish for the app. You can see the open issues
|
|
|
|
|
[here](https://github.com/zulip/zulip-mobile/issues). There are a
|
2018-12-08 01:28:07 +01:00
|
|
|
|
few hundred open issues across the project, and likely many more
|
|
|
|
|
problems that nobody has found yet; in the short term, it needs
|
2021-08-20 21:53:28 +02:00
|
|
|
|
polish, bug finding/squashing, and debugging. So browse the open
|
|
|
|
|
issues, play with the app, and get involved! Goals include parity
|
2021-05-14 00:16:30 +02:00
|
|
|
|
with the web app (in terms of what you can do), parity with Slack (in
|
2018-12-08 01:28:07 +01:00
|
|
|
|
terms of the visuals), world-class scrolling and narrowing
|
|
|
|
|
performance, and a great codebase.
|
|
|
|
|
|
|
|
|
|
A good project proposal here will bundle together a few focus areas
|
|
|
|
|
that you want to make really great (e.g. the message composing,
|
|
|
|
|
editing, and reacting experience), that you can work on over the
|
2021-08-20 21:53:28 +02:00
|
|
|
|
summer. We'd love to have multiple students working on this area if
|
2018-12-08 01:28:07 +01:00
|
|
|
|
we have enough strong applicants.
|
|
|
|
|
|
|
|
|
|
**Skills required**: Strong programming experience, especially in
|
2021-08-20 22:54:08 +02:00
|
|
|
|
reading the documentation of unfamiliar projects and communicating
|
|
|
|
|
what you learned. JavaScript and React experience are great pluses,
|
|
|
|
|
as are iOS or Android development/design experience is useful as
|
|
|
|
|
well. You'll need to learn React Native as part of getting
|
|
|
|
|
involved. There's tons of good online tutorials, courses, etc.
|
2018-12-08 01:28:07 +01:00
|
|
|
|
|
2020-08-11 01:47:54 +02:00
|
|
|
|
### Electron desktop app
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
|
|
|
|
Code:
|
2019-05-20 14:01:13 +02:00
|
|
|
|
[Our cross-platform desktop app written in JavaScript on Electron](https://github.com/zulip/zulip-desktop).
|
2021-02-24 05:51:59 +01:00
|
|
|
|
Experts: Anders Kaseorg, Akash Nimare, Abhighyan Khaund.
|
2018-12-08 01:28:07 +01:00
|
|
|
|
|
2020-03-05 01:24:31 +01:00
|
|
|
|
- Contribute to our [Electron-based desktop client
|
2021-08-20 21:53:28 +02:00
|
|
|
|
application](https://github.com/zulip/zulip-desktop). There's
|
2020-03-05 01:24:31 +01:00
|
|
|
|
plenty of feature/UI work to do, but focus areas for us include
|
|
|
|
|
things to (1) improve the release process for the app, using
|
2021-08-20 21:53:28 +02:00
|
|
|
|
automated testing, TypeScript, etc. and (2) polish the UI. Browse
|
2020-03-05 01:24:31 +01:00
|
|
|
|
the open issues and get involved!
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
2021-08-20 21:53:28 +02:00
|
|
|
|
**Skills required**: JavaScript experience, Electron experience. You
|
2021-08-20 22:54:08 +02:00
|
|
|
|
can learn electron as part of your application!
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
2018-12-08 01:28:07 +01:00
|
|
|
|
Good preparation for desktop app projects is to (1) try out the app
|
|
|
|
|
and see if you can find bugs or polish problems lacking open issues
|
|
|
|
|
and report them and (2) fix some polish issues in either the Electron
|
|
|
|
|
app or the Zulip web frontend (which is used by the electron app).
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
2021-02-19 02:41:36 +01:00
|
|
|
|
### Terminal app
|
|
|
|
|
|
|
|
|
|
Code: [Zulip Terminal](https://github.com/zulip/zulip-terminal)
|
|
|
|
|
Experts: Aman Agrawal, Neil Pilgrim.
|
|
|
|
|
|
|
|
|
|
- Work on Zulip Terminal, the official terminal client for Zulip.
|
|
|
|
|
zulip-terminal is already a basic usable client, but it needs a lot
|
2021-08-20 21:53:28 +02:00
|
|
|
|
of work to approach the web app's quality level. We would be happy
|
|
|
|
|
to accept multiple strong students to work on this project. Our
|
2021-02-19 02:41:36 +01:00
|
|
|
|
goal for this summer is to improve its quality enough that we can
|
2021-08-20 21:53:28 +02:00
|
|
|
|
upgrade it from an alpha to an advertised feature. **Skills
|
2021-02-19 02:41:36 +01:00
|
|
|
|
required**: Python 3 development skills, good communication and
|
|
|
|
|
project management skills, good at reading code and testing.
|
|
|
|
|
|
2021-03-23 23:03:48 +01:00
|
|
|
|
### Archive tool
|
|
|
|
|
|
|
|
|
|
Code: [zulip-archive](https://github.com/zulip/zulip-archive)
|
|
|
|
|
Experts: Rein Zustand, Steve Howell
|
|
|
|
|
|
|
|
|
|
- Work on zulip-archive, which provides a Google-indexable read-only
|
2021-08-20 21:53:28 +02:00
|
|
|
|
archive of Zulip conversations. The issue tracker for the project
|
2021-03-23 23:03:48 +01:00
|
|
|
|
has a great set of introductory/small projects; the overall goal is
|
|
|
|
|
to make the project super convenient to use for our OSS communities.
|
|
|
|
|
**Skills useful**: Python 3, reading feedback from users, CSS,
|
|
|
|
|
GitHub Actions.
|
|
|
|
|
|
2021-02-19 02:41:36 +01:00
|
|
|
|
## Circulating proposals (March to April)
|
2018-01-23 09:33:37 +01:00
|
|
|
|
|
2022-01-19 02:14:03 +01:00
|
|
|
|
If you're applying to GSoC, we'd like you to publicly post a rough draft of
|
|
|
|
|
a few sections of your proposal at least one week before the application
|
|
|
|
|
deadline. That way, the whole development community has a chance to give you
|
|
|
|
|
feedback and help you improve your proposal.
|
|
|
|
|
|
|
|
|
|
- **What to post:** Please include (1) Links to your contributions
|
|
|
|
|
to Zulip (or other projects), and (2) a paragraph or two explaining
|
|
|
|
|
what you plan to work on.
|
|
|
|
|
- **How to post:** We generally prefer Dropbox Paper or Google
|
|
|
|
|
Docs, since those platforms allow people to look at the text without
|
|
|
|
|
having to log in or download a particular app, and you can update the
|
|
|
|
|
draft as you improve your idea.
|
|
|
|
|
- **How to ask for feedback:** Please post a link to your draft in the
|
|
|
|
|
[#GSoC](https://chat.zulip.org/#narrow/stream/14-GSoC) stream in the [Zulip
|
|
|
|
|
development community](https://zulip.com/development-community/).
|
|
|
|
|
|
|
|
|
|
Thanks for being interested in Zulip! We're always happy to help volunteers get
|
|
|
|
|
started contributing to our open-source project, whether or not they go through
|
|
|
|
|
GSoC. We hope to hear from you soon!
|