Giter VIP home page Giter VIP logo

zulip-gci's Introduction

Zulip Google Code-In repository

Welcome to the Zulip GCI landing page!

This page has information on joining the developers' chat server and setting up a development environment.

Once you're done, we recommend browsing through Zulip's extensive documentation about its code and community. If you're planning on submitting a lot of code, we particularly recommend the guides to git, version control, coding style, and testing.

Community

Almost all GCI discussion (and discussion of Zulip more generally) happens on our developers' server, https://chat.zulip.org. Create an account and say hi on the "introductions" topic of the "GCI general" stream! When signing up, check the box that says you are a GCI student. This will subscribe you to the following streams (among others):

  • GCI announce: Messages from the Zulip GCI mentors.
  • GCI tasks: Task-specific discussion or help.
  • GCI help: Questions (about code or otherwise) not related to a specific task.
  • GCI general: General discussion, feedback, questions, or anything you want!
  • test here: Used for sending test messages.

There are at least a dozen other active streams on the server; go to https://chat.zulip.org/#subscriptions to check them out.

A few notes:

A few non-obvious things that help keep the server manageable:

  • All test messages should go to the test here stream.
  • Always use a topic. If you're not sure what to put, you can use your name.
  • When asking for help, include as much detail as you can, in particular, what you tried, and the full traceback of any error messages you got.

Setting up the Zulip Development environment

Most coding tasks require a working Zulip development environment. There are two strategies for setting one up.

Remote VM

Zulip has partnered with Digital Ocean to provide VMs for GCI participants developing Zulip. To get a VM, follow the instructions here.

Once you have access to your VM, take a look at our tips for editing code on a remote machine.

Local install

See the Vagrant environment setup tutorial for installing Zulip on Linux or OS X. There are also instructions for installing locally on Windows, though the setup can be tricky.

There is also documentation for using Docker or installing directly on Ubuntu. We don't recommend either of those methods unless you have a specific reason to prefer them.

How to choose

Setting up a Remote VM can be faster, but day to day development can be more convenient with a local install. If you are running Windows, have a slow internet connection (the local install is ~500 Mb), or are planning on doing a small number of Zulip tasks, we recommend starting with the remote VM. You can always set up a local install later.

This repository

This repository is the home for images, code, and other contributions that don't yet have a place in one of the other Zulip repositories. Many of the tasks will instruct you to submit pull requests and create github issues on this repository.

If you are not sure how to submit a pull request (or what that even means), check out our beginner task on this topic.

Can't find the perfect task to work on?

Zulip has hundreds of open issues that we'd like to resolve that don't have corresponding GCI tasks; many of them have been tagged as "bite-size" issues because we expect them to be accessible to new contributors:

https://github.com/zulip/zulip/issues?q=is%3Aissue+is%3Aopen+label%3A%22bite+size%22

You're encouraged to browse that list! If you see a project in there that you're excited about helping with, ask about it on chat.zulip.org; it's likely that we'll be happy to create a GCI task for it.

Information for GCI mentors

This repository also contains items generally related to Zulip's participation in Google Code-In.

At the moment, this includes:

  • tasks/: Template descriptions for large categories of tasks. We put the bulk of the descriptions in this repo rather than in the GCI interface so that it's possible to update the documentation on how to do things as we see what folks find confusing.
  • scripts/: Tools for iterating over the tasks in a category and creating actual GCI tasks out of them.

For each major category of tasks, we'll want to have both a template description under tasks/ as well as a script under scripts/ to import the tasks into the GCI web application. We'll run the relevant scripts as tasks are ready to be published.

zulip-gci's People

Contributors

timabbott avatar rishig avatar showell avatar arpith avatar christi3k avatar anirudhjain75 avatar pweaver avatar trueskawka avatar lonerz avatar bickio avatar 1niels avatar umairwaheed avatar ishankc avatar hackerkid avatar actuallyatoaster avatar ayzhu avatar andrewallen00 avatar zbenjamin avatar zbreit avatar sampritipanda avatar kevinr avatar kartikmaji avatar jdherg avatar ra0s avatar ychunwei avatar gongy avatar gandhi-21 avatar dasaltendorfer avatar ecarr0 avatar e-l-e-e avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.