Back to Zulip

Setting up Zulip for a class

starlight_help/src/content/docs/setting-up-zulip-for-a-class.mdx

12.014.1 KB
Original Source

import {Tabs} from "@astrojs/starlight/components";

import FlattenedSteps from "../../components/FlattenedSteps.astro"; import NavigationSteps from "../../components/NavigationSteps.astro"; import ZulipNote from "../../components/ZulipNote.astro"; import ZulipTip from "../../components/ZulipTip.astro"; import AddAWideLogo from "../include/_AddAWideLogo.mdx"; import CreateChannelsIntro from "../include/_CreateChannelsIntro.mdx"; import CustomizeSettingsForNewUsers from "../include/_CustomizeSettingsForNewUsers.mdx"; import EditOrganizationProfile from "../include/_EditOrganizationProfile.mdx"; import HowToCreateAUserGroup from "../include/_HowToCreateAUserGroup.mdx"; import HowToInviteUsersToJoinNoImport from "../include/_HowToInviteUsersToJoinNoImport.mdx"; import ReviewOrganizationSettingsInstructions from "../include/_ReviewOrganizationSettingsInstructions.mdx";

Welcome to Zulip! This page will guide you through setting everything up for teaching with Zulip. If you are using Zulip for a different purpose, we recommend checking out the moving to Zulip guide instead.

If you are a student, or if your Zulip organization is already set up, you can proceed to the Using Zulip for a class guide.

If you encounter any problems as you're getting started, please drop by our friendly development community and let us know!

Trying out Zulip

You can start by reading about Zulip for Education, and how Zulip can become the communication hub for your class. Zulip is the only modern team chat app that is ideal for both live and asynchronous conversations. Post lecture notes and announcements, answer students’ questions, and coordinate with teaching staff all in one place.

We also highly recommend trying Zulip for yourself! You can:

Choosing between Zulip Cloud and self-hosting

Follow the guide on choosing between Zulip Cloud and self-hosting to pick the best option for you. If your needs change, you can always move to a self-hosted installation or to Zulip Cloud.

Anyone can start with Zulip Cloud Free, which works well for a typical class. For large classes and departments, we offer special Zulip for Education pricing, with the same features as Zulip Cloud Standard. You can always get started with Zulip Cloud Free, and upgrade down the line if needed.

Do I need a separate Zulip organization for each class?

There are a few ways to set up Zulip, and different ones may be convenient for your needs:

  • If your school or department already has a Zulip organization, you will probably find it easiest to just add your class to it. Advantages:
    • Students and staff can use a single Zulip account for all classes.
    • You can create department-wide channels, e.g., for announcing talks or other events.
    • You don’t need to set up a separate server if you’re self-hosting Zulip.
  • You can set up a separate Zulip organization for each class you’re teaching. Advantages:
    • This makes it simple to manage permissions, e.g., if you want to make sure TAs from one class cannot moderate discussion from a different class.
    • Students can’t see who is in channels for other classes.
    • You can easily switch between multiple Zulip organizations in the Zulip desktop apps.
  • You can use a single Zulip organization for several classes you’re teaching, perhaps re-purposing a Zulip organization from a prior term. Advantages:
    • Information from your classes is all in one place, e.g., if you want to re-post a response to a question that was also asked last time you taught the class.

If you change your mind down the line, you can rename your Zulip organization by sending a request to [email protected].

Create your organization profile

The information in your organization profile is displayed on the registration and login page for your organization, and in the Zulip app.

Edit organization profile

<EditOrganizationProfile /> <AddAWideLogo />

Customize organization settings

<ReviewOrganizationSettingsInstructions />

A few settings to highlight:

Roles and permissions

Zulip offers several levels of permissions based on user roles. Here are some recommendations for how to assign roles and permissions for a class.

Recommended roles and permissions for a single-class Zulip organization

WhoRole
Lead instructor, ITOwner (also has all Administrator permissions)
Other instructors, head TAAdministrator
Teaching assistants, lab assistantsModerator
StudentsMember
Settings
<ZulipNote> These are the default permissions for new **Education (non-profit)** and **Education (for-profit)** organizations. </ZulipNote>

Recommended roles and permissions for a department

WhoRole
ITOwner (also has all Administrator permissions)
IT, department leadershipAdministrator
Professors, Lecturers, head TAsModerator
Teaching assistants, lab assistants, studentsMember
Settings

Create channels

<CreateChannelsIntro />

How to create a channel

<FlattenedSteps> <NavigationSteps target="relative/channel/all" />
  1. Click Create channel on the right.
  2. Fill out the requested info, and click Create. </FlattenedSteps>

Tips for creating channels

For most classes, the following channels are recommended:

  • #announcements: For general announcements about the class. When creating this channel, restrict posting permissions so that only course staff (administrators and moderators) are allowed to post.
  • #staff (private): For discussions among course staff.
  • #general: For random topics, e.g., students forming study groups.
  • A channel for each lecture or unit, e.g., “Lecture 1: Course intro” or “Unit 3: Sorting algorithms”.
  • A channel for each section/tutorial group (e.g., “Section 1”)
<ZulipTip> You can start by creating channels for just the first few lectures/units at this point. When you create a new channel, you will be able to copy channel membership from existing channels. </ZulipTip>

A few notes:

  • Small classes may need just one discussion channel for all lectures.
  • If you are using a single Zulip organization for more than one class, all channel names should be prefixed with the name of the class, e.g., “CS101 > Lecture 1: Course intro”.

Customize settings for new users

<CustomizeSettingsForNewUsers /> <ZulipTip> If using your Zulip organization for a single class, set default channels for new users to include **#announcements**, **#general**, and all lecture/unit channels. </ZulipTip>

Invite users to join

<ZulipTip> Before inviting users, you may want to [delete any test messages][delete-message] or [topics](/help/delete-a-topic). </ZulipTip>

How to invite users to join

To simplify subscription management, be sure to set the channels students and staff should be subscribed to when you create the invitations. You may choose to send invitations to course staff separately, so that they can immediately be subscribed to private channels for your class.

<Tabs> <HowToInviteUsersToJoinNoImport /> </Tabs>

To get everyone off to a good start, you may wish to share the guide to Getting started with Zulip and the guide to Using Zulip for a class.

<ZulipTip> If you create new channels later on, you can subscribe users [by group][create-user-groups] or copy membership from another channel (e.g., from Lecture 5 to Lecture 6). </ZulipTip>

Create user groups

User groups allow you to mention multiple users at once, notifying them about a message. For example, you may find it useful to set up the following user groups:

  • @staff
  • @TAs
  • @graders
  • @students
  • @section1, @section2, etc.

How to create a user group

<HowToCreateAUserGroup />

Set up integrations

Zulip integrates directly with dozens of products, and with hundreds more through Zapier and IFTTT. Popular Zulip integrations include GitHub and GitLab. The integrations page has instructions for integrating with each product.

Cleaning up at the end of a class

If you plan to use the same Zulip organization in future terms (either for your own classes or for your department), you will likely want to:

  • Rename all channels to indicate the class and term in which they were used, for example:
    • #announcements#FA21 - CS101 - announcements
    • #CS101 > Lecture 1: Course intro#FA21 - CS101 > Lecture 1: Course intro
  • If you do not want students from future classes to see messages from the prior term (e.g., because you posted homework solutions), make all the channels from the class private. You’ll be able to find and reuse content yourself, and invite course staff to these private channels as needed.
  • You may choose to deactivate students’ Zulip accounts when the class is over.
  • Unpin channels from the class from your personal view.

If you do not plan to reuse the Zulip organization, you can instead:

Further reading