mirror of https://github.com/zulip/zulip.git
375 lines
15 KiB
Markdown
375 lines
15 KiB
Markdown
# Setting up Zulip for a class
|
||
|
||
Welcome to Zulip! This page will guide you through setting everything
|
||
up for [teaching with Zulip](/for/education/). If you are using Zulip
|
||
for a different purpose, we recommend checking out the [Setting up
|
||
your organization][setting-up] 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](/help/using-zulip-for-a-class) guide.
|
||
|
||
[getting-started]: /help/getting-started-with-zulip
|
||
[setting-up]: /help/getting-your-organization-started-with-zulip
|
||
|
||
If you encounter any problems as you're getting started, please drop
|
||
by our [friendly development community](/development-community/) and let
|
||
us know!
|
||
|
||
## Trying out Zulip
|
||
|
||
You can start by reading about [Zulip for Education](/for/education/),
|
||
and how Zulip can become the communication hub for your class. Zulip
|
||
is the only [modern team chat app](/features/) that is
|
||
[ideal](/why-zulip/) 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:
|
||
|
||
* [Create a Zulip Cloud organization](/new/) for free with just a few
|
||
clicks.
|
||
* [Join the Zulip development community](/development-community/) to see
|
||
Zulip in action. Feel free to introduce yourself and ask questions!
|
||
|
||
|
||
## Choosing between Zulip Cloud and self-hosting
|
||
|
||
Whether [signing up for Zulip Cloud](/new/) or [self-hosting
|
||
Zulip][install-self-hosted] is the right choice for you depends on your needs.
|
||
|
||
If you aren’t sure what you need, our high quality export and import
|
||
tools ([cloud][export-cloud], [self-hosted][export-self-hosted])
|
||
ensure you can always move from our hosting to yours (and back).
|
||
|
||
[install-self-hosted]: https://zulip.readthedocs.io/en/stable/production/install.html
|
||
[export-cloud]: /help/export-your-organization
|
||
[export-self-hosted]: https://zulip.readthedocs.io/en/latest/production/export-and-import.html
|
||
|
||
### Advantages of Zulip Cloud
|
||
|
||
* Simple managed solution, with no setup or maintenance
|
||
overhead. [Sign up](/new/) with just a few clicks.
|
||
* Always updated to the latest version of Zulip.
|
||
* Anyone can [start with Zulip Cloud Free](/new/), which works well for a typical class.
|
||
* For large classes and departments, we offer [special Zulip for
|
||
Education pricing](/for/education/#feature-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.
|
||
|
||
### Advantages of self-hosting Zulip
|
||
|
||
* Zulip is [100% open-source software](https://github.com/zulip), with
|
||
no "open core" catch.
|
||
* We work hard to make it easy to [set up][install-zulip],
|
||
[back up][back-up-zulip], and [maintain][maintain-zulip] a self-hosted
|
||
Zulip installation.
|
||
* Retain full control over your data. If cloud hosting is not an
|
||
option due to stringent data and privacy requirements (e.g. in the
|
||
European Union), self-hosting is the option for you.
|
||
* Customize Zulip for all your needs.
|
||
|
||
[install-zulip]: https://zulip.readthedocs.io/en/latest/production/install.html
|
||
[back-up-zulip]: https://zulip.readthedocs.io/en/stable/production/export-and-import.html#backups
|
||
[maintain-zulip]: https://zulip.readthedocs.io/en/stable/production/upgrade-or-modify.html
|
||
|
||
|
||
## 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 streams for other classes.
|
||
- You can easily switch between multiple Zulip organizations in
|
||
the [Zulip desktop apps](/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
|
||
[support@zulip.com](mailto:support@zulip.com).
|
||
|
||
## 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
|
||
|
||
{!edit-organization-profile.md!}
|
||
|
||
### Add a wide logo
|
||
|
||
{!add-a-wide-logo.md!}
|
||
|
||
## Customize organization settings
|
||
|
||
Review the settings for your organization to set everything up how you
|
||
want it to be.
|
||
|
||
{start_tabs}
|
||
|
||
{relative|gear|manage-organization}
|
||
|
||
1. Click on "Organization settings" and "Organization permissions"
|
||
tabs, and any others that are of interest.
|
||
|
||
{end_tabs}
|
||
|
||
A few settings to highlight:
|
||
|
||
* If your class uses a programming language, set the [default
|
||
language for code blocks][default-code-block-language]. Also
|
||
consider setting up [code playgrounds][code-playgrounds].
|
||
|
||
* If your class uses code repositories, [set up
|
||
linkifiers](/help/add-a-custom-linkifier) to make it easy to link to
|
||
issues (e.g. just by typing #1234 for issue 1234).
|
||
|
||
* [Add custom emoji](/help/custom-emoji) that your class will enjoy.
|
||
|
||
|
||
[topic-editing-permissions]: /help/configure-message-editing-and-deletion
|
||
[default-code-block-language]: /help/code-blocks#default-code-block-language
|
||
[code-playgrounds]: /help/code-blocks#code-playgrounds
|
||
[email-address-visibility]: /help/restrict-visibility-of-email-addresses
|
||
[who-can-invite]: /help/restrict-account-creation#change-who-can-send-invitations
|
||
|
||
### Roles and permissions
|
||
|
||
Zulip offers [several levels of permissions based on user
|
||
roles](/help/roles-and-permissions). Here are some recommendations for
|
||
how to assign roles and permissions for a class.
|
||
|
||
#### Recommended roles and permissions for a single-class Zulip organization
|
||
|
||
| Who | Role |
|
||
| ----------------------------------- | ---------------------------------------------- |
|
||
| Lead instructor, IT | Owner (also has all Administrator permissions) |
|
||
| Other instructors, head TA | Administrator |
|
||
| Teaching assistants, lab assistants | Moderator |
|
||
| Students | Member |
|
||
|
||
##### Settings
|
||
|
||
!!! warn ""
|
||
These are the default permissions for new **Education
|
||
(non-profit)** and **Education (for-profit)** organizations.
|
||
|
||
- Set [who can invite new users](/help/restrict-account-creation#change-who-can-send-invitations).
|
||
(Recommended: Admins)
|
||
- Set [who can access user email addresses](/help/restrict-visibility-of-email-addresses).
|
||
(Recommended: Admins only)
|
||
- Set [who can create streams](/help/configure-who-can-create-streams).
|
||
(Recommended: Admins for public streams; Admins, moderators and members for private streams)
|
||
- Set [who can add users to streams](/help/configure-who-can-invite-to-streams).
|
||
(Recommended: Admins and moderators)
|
||
- Set [who can edit the topic of any message](/help/configure-who-can-invite-to-streams).
|
||
(Recommended: (default) Members for small classes;
|
||
Admins and moderators for large classes)
|
||
- Set [who can move messages between streams][move-between-streams].
|
||
(Recommended: Admins and moderators)
|
||
- Set [who can create and manage user groups][user-group-permissions].
|
||
(Recommended: Admins and moderators)
|
||
|
||
[user-group-permissions]: /help/user-groups#configure-who-can-create-and-manage-user-groups
|
||
[move-between-streams]: /help/configure-message-editing-and-deletion#configure-who-can-move-topics-between-streams
|
||
|
||
#### Recommended roles and permissions for a department
|
||
|
||
| Who | Role |
|
||
| --------------------------------------------- | ---------------------------------------------- |
|
||
| IT | Owner (also has all Administrator permissions) |
|
||
| IT, department leadership | Administrator |
|
||
| Professors, Lecturers, head TAs | Moderator |
|
||
| Teaching assistants, lab assistants, students | Member |
|
||
|
||
##### Settings
|
||
|
||
- Set [who can invite new users](/help/restrict-account-creation#change-who-can-send-invitations).
|
||
(Recommended: Admins and moderators)
|
||
- Set [who can access user email addresses](/help/restrict-visibility-of-email-addresses).
|
||
(Recommended: Admins only)
|
||
- Set [who can create streams](/help/configure-who-can-create-streams).
|
||
(Recommended: Admins and moderators for public streams;
|
||
Admins, moderators and members for private streams)
|
||
- Set [who can add users to streams](/help/configure-who-can-invite-to-streams).
|
||
(Recommended: Admins and moderators)
|
||
- Set [who can edit the topic of any message](/help/configure-who-can-invite-to-streams).
|
||
(Recommended: Admins and moderators)
|
||
- Set [who can move messages between streams][move-between-streams].
|
||
(Recommended: Admins and moderators)
|
||
- Set [who can create and manage user groups][user-group-permissions].
|
||
(Recommended: Admins and moderators)
|
||
|
||
## Create streams
|
||
|
||
{!create-streams-intro.md!}
|
||
|
||
### How to create a stream
|
||
|
||
{start_tabs}
|
||
|
||
{relative|stream|all}
|
||
|
||
1. Click **Create stream** on the right.
|
||
|
||
1. Fill out the requested info, and click **Create**.
|
||
|
||
{end_tabs}
|
||
|
||
For more details about stream settings, see [Create a
|
||
stream](/help/create-a-stream#stream-options).
|
||
|
||
### Tips for creating streams
|
||
|
||
For most classes, the following streams are recommended:
|
||
|
||
- **\#announcements**: For general announcements about the class. When
|
||
creating this stream, [restrict posting
|
||
permissions](/help/stream-sending-policy) so that only course staff
|
||
([Administrators and moderators](/help/roles-and-permissions) are
|
||
allowed to post.
|
||
- **\#staff (private)**: For discussions among course staff.
|
||
- **\#general**: For random topics, e.g. students forming study groups.
|
||
- A stream for each **lecture** or **unit**, e.g. “Lecture 1: Course
|
||
intro” or “Unit 3: Sorting algorithms”.
|
||
- A stream for each **section**/**tutorial group** (e.g. “Section 1”)
|
||
|
||
|
||
!!! tip ""
|
||
|
||
You can start by creating streams for just the first few
|
||
lectures/units at this point. When you create a new stream,
|
||
you will be able to copy stream membership from existing streams.
|
||
|
||
A few notes:
|
||
|
||
- Small classes may need just one discussion stream for all lectures.
|
||
- If you are [using a single Zulip organization][separate-orgs] for
|
||
more than one class, all stream names should be prefixed with the
|
||
name of the class, e.g. “CS101 > Lecture 1: Course intro”.
|
||
|
||
[separate-orgs]: /help/setting-up-zulip-for-a-class#do-i-need-a-separate-zulip-organization-for-each-class
|
||
|
||
## Customize settings for new users
|
||
|
||
{!customize-settings-for-new-users.md!}
|
||
|
||
!!! tip ""
|
||
|
||
If using your Zulip organization for a single class, set default
|
||
streams for new users to include \#announcements, \#general, and
|
||
all lecture/unit streams.
|
||
|
||
## Invite users to join
|
||
|
||
!!! tip ""
|
||
|
||
Before inviting users, you may want to [delete any test
|
||
messages][delete-message] or [topics](/help/delete-a-topic).
|
||
|
||
[delete-message]: /help/edit-or-delete-a-message#delete-a-message-completely
|
||
|
||
### How to invite users to join
|
||
|
||
To simplify subscription management, be sure to set the streams
|
||
students and staff should be added to when you create the
|
||
invitations. You may choose to send invitations to course staff
|
||
separately, so that they can immediately be added to private streams
|
||
for your class.
|
||
|
||
{!how-to-invite-users-to-join.md!}
|
||
|
||
To get everyone off to a good start, you may wish to share the guide
|
||
to [Getting started with Zulip][getting-started] and the guide to
|
||
[Using Zulip for a class](/help/using-zulip-for-a-class).
|
||
|
||
!!! tip ""
|
||
|
||
If you create new streams later on, you can add users
|
||
[by group][create-user-groups] or copy membership from another
|
||
stream (e.g. from Lecture 5 to Lecture 6).
|
||
|
||
[create-user-groups]: /help/setting-up-zulip-for-a-class#create-user-groups
|
||
|
||
## Create user groups
|
||
|
||
User groups allow you to [mention](/help/mention-a-user-or-group)
|
||
multiple users at once,
|
||
[notifying](/help/pm-mention-alert-notifications) 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
|
||
|
||
{!how-to-create-a-user-group.md!}
|
||
|
||
## Set up integrations
|
||
|
||
Zulip integrates directly with dozens of products, and with hundreds
|
||
more through [Zapier](/integrations/doc/zapier) and
|
||
[IFTTT](/integrations/doc/ifttt). Popular Zulip integrations include
|
||
[GitHub](/integrations/doc/github) and
|
||
[Twitter](/integrations/doc/twitter). The [integrations
|
||
page](/integrations) 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 streams to indicate the class and term in which they were used, e.g.:
|
||
- \#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 streams from the class private][make-private]. You’ll
|
||
be able to find and reuse content yourself, and [invite course
|
||
staff][add-to-stream] to these private streams as needed.
|
||
- You may choose to [deactivate students’ Zulip
|
||
accounts][deactivate-user] when the class is over.
|
||
- [Unpin streams](/help/pin-a-stream) from the class from your
|
||
personal view.
|
||
|
||
If you do not plan to reuse the Zulip organization, you can instead:
|
||
|
||
* [Export the organization](/help/export-your-organization) or [generate a static
|
||
HTML archive](https://github.com/zulip/zulip-archive) to archive the information.
|
||
* [Deactivate the organization](/help/deactivate-your-organization).
|
||
|
||
## Further reading
|
||
|
||
* [Using Zulip for a class](/help/using-zulip-for-a-class)
|
||
* [Getting started with Zulip](/help/getting-started-with-zulip)
|
||
* [Streams and topics](/help/streams-and-topics)
|
||
* [Moderating open organizations](/help/moderating-open-organizations)
|
||
|
||
[make-private]: /help/change-the-privacy-of-a-stream
|
||
[add-to-stream]: /help/add-or-remove-users-from-a-stream
|
||
[deactivate-user]: /help/deactivate-or-reactivate-a-user#deactivate-ban-a-user
|