mirror of https://github.com/zulip/zulip.git
docs: Add more metadata to GSoC project ideas and add ideas.
This commit is contained in:
parent
7ddefc68cc
commit
cc5ac302ab
|
@ -253,13 +253,18 @@ you are doing a 175-hour or 350-hour project.
|
|||
Code: [github.com/zulip/zulip -- Python, Django, JavaScript, and
|
||||
CSS](https://github.com/zulip/zulip/).
|
||||
|
||||
- Implement new full stack features for Zulip. The [high priority
|
||||
- **Cluster of priority features**. Implement a cluster of new full
|
||||
stack features for Zulip. The [high priority
|
||||
label](https://github.com/zulip/zulip/issues?q=is%3Aissue+is%3Aopen+label%3A%22priority%3A+high%22)
|
||||
documents hundreds of issues that we've identified as important to
|
||||
the project. A great project can be 3-5 significant features around
|
||||
a theme (often, but not necessarily, an [area
|
||||
label](https://github.com/zulip/zulip/labels). Experts: Depends on
|
||||
the features!
|
||||
label](https://github.com/zulip/zulip/labels); the goal will be to
|
||||
implement and get fully merged a cluster of features with a
|
||||
meaningful impact on the project. 175 or 350 hours; difficulty will
|
||||
vary. Experts and skills depend on the features; Tim Abbott will
|
||||
help you select an appropriate cluster once we've gotten to know you
|
||||
and your strengths through getting involved in the project.
|
||||
|
||||
- Zulip's [REST API documentation](https://zulip.com/api), which is an
|
||||
important resource for any organization integrating with Zulip.
|
||||
|
@ -273,45 +278,56 @@ CSS](https://github.com/zulip/zulip/).
|
|||
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
|
||||
goal for the summer is for 1-2 students to resolve all open issues
|
||||
related to the REST API documentation.
|
||||
related to the REST API documentation. 175 or 350 hours; difficulty
|
||||
easy or medium. **Skill required**: Python programming. Expertise
|
||||
with reading documentation and English writing are valuable, and
|
||||
product thinking about the experience of using third-party APIs is
|
||||
very helpful. Expert: Lauryn Menard.
|
||||
|
||||
[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
|
||||
- Implement important full-stack features for open source projects
|
||||
using Zulip, including [default stream
|
||||
groups](https://github.com/zulip/zulip/issues/13670) and
|
||||
improvements to the upcoming [public
|
||||
access](https://github.com/zulip/zulip/issues/13172)
|
||||
feature. Expert: Tim Abbott. Many of these issues have open PRs with
|
||||
substantial work towards the goal, but each of them is likely to
|
||||
have dozens of adjacent or follow-up tasks.
|
||||
feature. Experts: Tim Abbott, Aman Agrawal. Many of these issues
|
||||
have open PRs with substantial work towards the goal, but each of
|
||||
them is likely to have dozens of adjacent or follow-up tasks. 175 or
|
||||
350 hours; easy or medium. The most important skill for this work is
|
||||
carefully thinking through and verifying changes that affect
|
||||
multiple configurations.
|
||||
|
||||
- Fill in gaps, fix bugs, and improve the framework for Zulip's
|
||||
library of native integrations. We have about 100 integrations, but
|
||||
there are a handful of important integrations that are missing. The
|
||||
[the integrations label on
|
||||
library of native integrations. We have about 120 native
|
||||
integrations, but there's more that would be valuable to add, and
|
||||
several extensions to the framework that would dramatically improve
|
||||
the user experience of using these, such as being able to do
|
||||
callbacks to third-party services like Stripe to display more
|
||||
user-friendly notifications. The [the integrations label on
|
||||
GitHub](https://github.com/zulip/zulip/labels/area%3A%20integrations)
|
||||
lists some of the priorities here (many of which are great
|
||||
preparatory projects); once those are cleared, we'll likely have
|
||||
many more. **Skills required**: Strong Python experience, will to
|
||||
do careful manual testing of third-party products. Fluent English,
|
||||
usability sense and/or technical writing skills are all pluses.
|
||||
Expert: Eeshan Garg.
|
||||
preparatory projects). 175 or 350 hours; medium difficulty with
|
||||
various possible difficult extensions. **Skills required**: Strong
|
||||
Python experience, will to install and do careful manual testing of
|
||||
third-party products. Fluent English, usability sense and/or
|
||||
technical writing skills are all pluses. Expert: Zixuan Li.
|
||||
|
||||
- Optimize performance and scalability, either for the web frontend or
|
||||
the server. Zulip is already one of the faster web apps out there,
|
||||
but there are a bunch of ideas for how to make it substantially
|
||||
faster. This is likely a particularly challenging project to do
|
||||
well, since there are a lot of subtle interactions to understand.
|
||||
**Skill recommended**: Strong debugging, communication, and code
|
||||
reading skills are most important here. JavaScript experience; some
|
||||
Python/Django experience, some skill with CSS, ideally experience
|
||||
using the Chrome Timeline profiling tools (but you can pick this up
|
||||
as you go) can be useful depending on what profiling shows. Our
|
||||
[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
|
||||
reading for the backend part of this. Expert: Steve Howell.
|
||||
well, since there are a lot of subtle interactions to
|
||||
understand. 175 or 350 hours; difficult. **Skill recommended**:
|
||||
Strong debugging, communication, and code reading skills are most
|
||||
important here. JavaScript experience; some Python/Django
|
||||
experience, some skill with CSS, ideally experience using the Chrome
|
||||
Timeline profiling tools (but you can pick this up as you go) can be
|
||||
useful depending on what profiling shows. Our [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 reading for the backend part of this. Experts:
|
||||
Steve Howell, Tim Abbott, Yash RE.
|
||||
|
||||
[prod-label]: https://github.com/zulip/zulip/issues?q=is%3Aopen+is%3Aissue+label%3A%22area%3A+production%22
|
||||
|
||||
|
@ -320,61 +336,70 @@ CSS](https://github.com/zulip/zulip/).
|
|||
big benefits it terms of avoiding code duplication for complex
|
||||
logic. We have prototyped for a few modules by migrating them to
|
||||
`static/shared/`; this project will involve closely collaborating
|
||||
with the mobile team to prioritize the modules to migrate. **Skills
|
||||
recommended**: JavaScript experience, careful refactoring, API
|
||||
design, React.
|
||||
with the mobile team to prioritize the modules to migrate. 175 or
|
||||
350 hours; difficult. **Skills recommended**: JavaScript experience,
|
||||
careful refactoring, API design, React.
|
||||
|
||||
Experts: Greg Price, Steve Howell.
|
||||
Experts: Greg Price, Austin Riba, Steve Howell.
|
||||
|
||||
- Make Zulip integrations easier for nontechnical users to set up.
|
||||
This includes adding a backend permissions system for managing bot
|
||||
permissions (and implementing the enforcement logic), adding an
|
||||
OAuth system for presenting those controls to users, as well as
|
||||
making the /integrations page UI have buttons to create a bot,
|
||||
rather than sending users to the administration page. **Skills
|
||||
recommended**: Strong Python/Django; JavaScript, CSS, and design
|
||||
sense helpful. Understanding of implementing OAuth providers,
|
||||
e.g. having built a prototype with
|
||||
[the Django OAuth toolkit](https://django-oauth-toolkit.readthedocs.io/en/latest/)
|
||||
would be great to demonstrate as part of an application. The
|
||||
[Zulip integration writing guide](../documentation/integrations.md)
|
||||
and
|
||||
[integration documentation](https://zulip.com/integrations/)
|
||||
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)
|
||||
rather than sending users to the administration page. 175 or 350
|
||||
hours; easy to difficult depending on scope. **Skills recommended**:
|
||||
Strong Python/Django; JavaScript, CSS, and design sense
|
||||
helpful. Understanding of implementing OAuth providers, e.g. having
|
||||
built a prototype with [the Django OAuth
|
||||
toolkit](https://django-oauth-toolkit.readthedocs.io/en/latest/)
|
||||
would be great to demonstrate as part of an application. The [Zulip
|
||||
integration writing guide](../documentation/integrations.md) and
|
||||
[integration documentation](https://zulip.com/integrations/) 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
|
||||
you're interested in this area. Expert: Eeshan Garg.
|
||||
|
||||
- Extend Zulip's meta-integration that converts the Slack incoming webhook
|
||||
API to post messages into Zulip. Zulip has several dozen native
|
||||
integrations (https://zulip.com/integrations/), but Slack has a
|
||||
ton more. We should build an interface to make all of Slack’s
|
||||
- Extend Zulip's meta-integration that converts the Slack incoming
|
||||
webhook API to post messages into Zulip. Zulip has several dozen
|
||||
native integrations (https://zulip.com/integrations/), but Slack has
|
||||
a ton more. We should build an interface to make all of Slack’s
|
||||
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
|
||||
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.
|
||||
system and advertising it. 175 or 350 hours; medium to
|
||||
difficult. Expert: Tim Abbott.
|
||||
|
||||
- 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
|
||||
illustration experience are helpful. A great application would
|
||||
include PRs making small, clean improvements to the Zulip UI
|
||||
(whether logged-in or logged-out pages). Expert: Aman Agrawal.
|
||||
making our CSS clean and readable as part of working on the UI; we
|
||||
are working on a major redesign and have a lot of plans that we
|
||||
believe will substantially improve the application but require care
|
||||
and determination to implement and integrate. 175 or 350 hours;
|
||||
medium to difficult. **Skills required**: Design, HTML and CSS
|
||||
skills; most important is the ability to carefully verify that one's
|
||||
changes are correct and will not break other parts of the app;
|
||||
design changes are very rewarding since they are highly user-facing,
|
||||
but that also means there is a higher bar for correctness and
|
||||
reviewability for one's work. A great application would include PRs
|
||||
making small, clean improvements to the Zulip UI (whether logged-in
|
||||
or logged-out pages). Experts: Aman Agrawal, Alya Abbott.
|
||||
|
||||
- Build support for outgoing webhooks and slash commands into Zulip to
|
||||
improve its chat-ops capabilities. There's an
|
||||
[old 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
|
||||
improve its chat-ops capabilities. There's an [old 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
|
||||
documentation and tests. Recommended reading includes Slack's
|
||||
documentation for these features, the Zulip message sending code
|
||||
path, and the linked pull request. **Skills required**: Strong
|
||||
Python/Django skills. Expert: Steve Howell.
|
||||
path, and the linked pull request. 175 or 350 hours; easy to
|
||||
medium. **Skills required**: Strong Python/Django skills. Expert:
|
||||
Steve Howell.
|
||||
|
||||
- Build a system for managing Zulip bots entirely on the web.
|
||||
Right now, there's a somewhat cumbersome process where you download
|
||||
|
@ -385,7 +410,7 @@ CSS](https://github.com/zulip/zulip/).
|
|||
buttons of configuration on the web to set them up and include them in
|
||||
your organization. We've developed a number of example bots
|
||||
in the [`zulip_bots`](https://github.com/zulip/python-zulip-api/tree/main/zulip_bots)
|
||||
PyPI package.
|
||||
PyPI package. 175 or 350 hours; medium difficulty.
|
||||
**Skills recommended**: Python and JavaScript/CSS, plus devops
|
||||
skills (Linux deployment, Docker, Puppet etc.) are all useful here.
|
||||
Experience writing tools using various popular APIs is helpful for
|
||||
|
@ -399,9 +424,9 @@ CSS](https://github.com/zulip/zulip/).
|
|||
settings/administration/streams overlays in a development
|
||||
environment. You can get experience working on the subsystem by
|
||||
working on some of [our open settings/admin
|
||||
issues](https://github.com/zulip/zulip/labels/area%3A%20admin).
|
||||
**Skills recommended**: JavaScript, HTML, CSS, and an eye for visual
|
||||
design. Expert: Shubham Dhama.
|
||||
issues](https://github.com/zulip/zulip/labels/area%3A%20admin). 175
|
||||
to 350 hours; easy to medium. **Skills recommended**: JavaScript,
|
||||
HTML, CSS, and an eye for visual design. Expert: Sahil Batra.
|
||||
|
||||
- Build out the administration pages for Zulip to add new permissions
|
||||
and other settings more features that will make Zulip better for
|
||||
|
@ -417,14 +442,15 @@ CSS](https://github.com/zulip/zulip/).
|
|||
settings](https://github.com/zulip/zulip/labels/area%3A%20stream%20settings)
|
||||
) in the space of improving the Zulip administrative UI. Many are
|
||||
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
|
||||
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
|
||||
HTML/CSS/JavaScript skill is ideal. The system for adding new
|
||||
features is [well documented](../tutorials/new-feature-tutorial.md).
|
||||
Expert: Shubham Dhama.
|
||||
feel for things, but a solid project here would be implementing
|
||||
several of the major missing features as full-stack development
|
||||
projects. A particular focus this summer will be extending most
|
||||
permissions settings to use a new groups-based model. 350 or 175
|
||||
hours; medium difficulty. **Skills recommended**: A good mix of
|
||||
Python/Django and HTML/CSS/JavaScript skill is ideal. The system for
|
||||
adding new features is [well
|
||||
documented](../tutorials/new-feature-tutorial.md). Expert: Sahil
|
||||
Batra.
|
||||
|
||||
- Work on Zulip's development and testing infrastructure. Zulip is a
|
||||
project that takes great pride in building great tools for
|
||||
|
@ -435,7 +461,7 @@ CSS](https://github.com/zulip/zulip/).
|
|||
[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)
|
||||
for tooling improvements..
|
||||
for tooling improvements.
|
||||
|
||||
This is a somewhat unusual project, in that it would likely consist
|
||||
of dozens of small improvements to the overall codebase, but this
|
||||
|
@ -452,7 +478,7 @@ CSS](https://github.com/zulip/zulip/).
|
|||
specific project is ideal for a strong contributor interested in
|
||||
type systems. See [this
|
||||
issue](https://github.com/zulip/zulip/pull/18777) for details on the
|
||||
current state of this work.
|
||||
current state of this work. 175 or 350 hours; difficult.
|
||||
|
||||
**Skills required**: Python, some DevOps, and a passion for checking
|
||||
your work carefully. A strong applicant for this will have
|
||||
|
@ -460,6 +486,17 @@ CSS](https://github.com/zulip/zulip/).
|
|||
|
||||
Experts: Anders Kaseorg (provision, testing), Steve Howell (tooling, testing).
|
||||
|
||||
- Port our JavaScript codebase to Typescript. Zulip is in the process
|
||||
of porting the main web app JavaScript codebase to TypeScript; at
|
||||
present we've done much of the necessary tooling setup, and about 5%
|
||||
of lines have been migrated (mostly in libraries used widely); the
|
||||
goal for this project will be to get that to more like 75%. Multiple
|
||||
students are possible; 175 and 350 hours; difficult. **Skills
|
||||
required**: TypeScript and refactoring expertise; we're specifically
|
||||
interested in students who are a type theory nerd and are invested
|
||||
in writing types precisely and checking their work
|
||||
carefully. Experts: Priyank Patel, Anders Kaseorg.
|
||||
|
||||
- Write more API client libraries in more languages, or improve the
|
||||
ones that already exist (in
|
||||
[python](https://github.com/zulip/python-zulip-api),
|
||||
|
@ -469,8 +506,9 @@ CSS](https://github.com/zulip/zulip/).
|
|||
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
|
||||
Typescript. **Skills required**: Experience with the target
|
||||
language and API design. Expert: Depends on language.
|
||||
Typescript. 175 or 350 hours; medium difficulty. **Skills
|
||||
required**: Experience with the target language and API
|
||||
design. Expert: Depends on language.
|
||||
|
||||
### React Native mobile app
|
||||
|
||||
|
@ -494,8 +532,8 @@ Zulip React Native mobile app.
|
|||
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
|
||||
summer. We'd love to have multiple students working on this area if
|
||||
we have enough strong applicants.
|
||||
summer. We'd love to have multiple students working on this area if we
|
||||
have enough strong applicants. 175 or 350 hours; medium to difficult.
|
||||
|
||||
**Skills required**: Strong programming experience, especially in
|
||||
reading the documentation of unfamiliar projects and communicating
|
||||
|
@ -515,7 +553,10 @@ Experts: Anders Kaseorg, Akash Nimare, Abhighyan Khaund.
|
|||
plenty of feature/UI work to do, but focus areas for us include
|
||||
things to (1) improve the release process for the app, using
|
||||
automated testing, TypeScript, etc. and (2) polish the UI. Browse
|
||||
the open issues and get involved!
|
||||
the open issues and get involved! 175 or 350 hours. This is a
|
||||
difficult project because it is important user-facing code with good
|
||||
automated testing, so the bar for convincing others your work is
|
||||
correct is high.
|
||||
|
||||
**Skills required**: JavaScript experience, Electron experience. You
|
||||
can learn electron as part of your application!
|
||||
|
@ -525,6 +566,15 @@ 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).
|
||||
|
||||
- Prototype a next generation Zulip desktop app implemented using the
|
||||
Tauri Rust-based framework. Tauri is a promising new project that we
|
||||
believe is likely a better technical direction for client
|
||||
applications than Electron for desktop apps for security and
|
||||
resource consumption reasons. The goal of this project would be to
|
||||
build a working prototype to evaluate to what extent Tauri is a
|
||||
viable platform for us to migrate the Zulip desktop app to. 350
|
||||
hours only; difficult. **Skill required**: Ability to learn quickly.
|
||||
|
||||
### Terminal app
|
||||
|
||||
Code: [Zulip Terminal](https://github.com/zulip/zulip-terminal)
|
||||
|
@ -533,11 +583,12 @@ 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
|
||||
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
|
||||
goal for this summer is to improve its quality enough that we can
|
||||
upgrade it from an alpha to an advertised feature. **Skills
|
||||
required**: Python 3 development skills, good communication and
|
||||
project management skills, good at reading code and testing.
|
||||
to accept multiple strong students to work on this project. Our goal
|
||||
for this summer is to improve its quality enough that we can upgrade
|
||||
it from an alpha to an advertised feature. 175 or 350 hours; medium
|
||||
difficulty. **Skills required**: Python 3 development skills, good
|
||||
communication and project management skills, good at reading code
|
||||
and testing.
|
||||
|
||||
### Archive tool
|
||||
|
||||
|
@ -547,7 +598,8 @@ Experts: Rein Zustand, Steve Howell
|
|||
- Work on zulip-archive, which provides a Google-indexable read-only
|
||||
archive of Zulip conversations. The issue tracker for the project
|
||||
has a great set of introductory/small projects; the overall goal is
|
||||
to make the project super convenient to use for our OSS communities.
|
||||
to make the project super convenient to use for our OSS
|
||||
communities. 175 or 350 hours; medium difficulty.
|
||||
**Skills useful**: Python 3, reading feedback from users, CSS,
|
||||
GitHub Actions.
|
||||
|
||||
|
|
Loading…
Reference in New Issue