zcmarcus / Slack2Slack

A simple web service aimed at reducing the tedium involved with creating new Slack workspaces based on the general configuration (channels, settings, etc.) of an existing Slack workspace.
0 stars 0 forks source link

Team Project: Slack2Slack

Team Members: Kelly Palese, Sarah Schmitt, Zeph Marcus

Problem Statement:

Many Slack users create Slack workspaces that are very similar, if not identical. For example, an instructor may have a separate Slack template for each semester or each section of a particular course. Some setup of these workspaces will be identical. They might have the same channels (name, topic, and description), template icons, settings/rules (for example, which channels everyone gets when they join the workplace), and the same creator's profile. However, each time the creator of these workspaces needs to create a new one, there is not a user-friendly way to quickly duplicate the template. Instead, they must go through the time-consuming steps of starting with a blank template and adding all of the setup from the very beginning.

Creators of Slack workspaces would be able to save a significant amount of time if they had the option to create a new channel using data they have already entered. This could be by "copying" select data from an existing Slack channel, or by using a template to create the new channel. This project will explore which option best meets users' needs while also complying with the data available on the Slack API. The project will then implement a solution to allow Slack template creators to quickly and easily create new workspaces.

Will offer users the following abilities:

Similar Existing Technologies:

Resources for Further Research and Potential Incorporation:

Project Technologies/Techniques:

List of Planned Web Service Resources and Operations

Retrieve all templates for a specific user:

GET
@Produces JSON
users/{userId}/templates

Retrieve a specific template by id:

GET
@Produces JSON
templates/{templateId}

Create new template:

POST
@Produces JSON
users/{userId}/templates

Update an existing template:

PUT
@Produces JSON
templates/{templateId}