Git Product home page Git Product logo

csc510-project's Introduction

Sync Ends

End development overheads

Software Engineering Project for CSC 510

Support Slack made-with-python GitHub contributors MIT license DOI

Sync Ends is an automated bridge to sync service owners and service consumers. Every team has a single postman collection that they use to test their APIs and share it across in their documentations. The backend team has to register their service on our application and we take care of the rest. Everytime there is a change in the way the api is called, we parse the changes and inform the consumers. This way all the team members are informed about the changes and know exactly what to edit in their product. The Slack framework lets you concentrate on the core functionality you want to build without worrying about integration overheads.

Watch the video

Architecture Diagram

Features

Feature Description
API Change Notification Changes made to the API in postman
API Changes Automated detailed diff of the changes
Slack Bot Subscription Subscribe to a list of APIs based on your preference , Set frequency and method of update
Configurable Ping Choose the ping interval to detect changes in a collection
Testing Polling service to test API uptime
API history and change logs Tracking the list of changes all the way from V1

Setup

Postman

  1. Sign in to Postman
  2. If you do not have any pre-exiting collections on Postman, import this sample collection
  3. To integrate with the Sync Ends service, a Postman API key is required. Generate API key by visiting this page
  4. Copy the generated API key. This is required during the time of execution
  5. Add the key to .env as POSTMAN_TOKEN.

Create a slack team and slackbot(You can skip this section if you already have a slack bot API token)

Follow the below steps to create a slack team and then a slack bot. You can skip this step if you already have a team and are the admin.

Creating Slack team

  1. Open https://slack.com/
  2. Provide your email ID. Select Create New workspace.
  3. Check your email and enter the code to verify your email.
  4. Provide your name and set a password
  5. Add some details to your team in the next page
  6. Provide a company name
  7. Team URL should be unique - Also remember this URL - this is what is used to login to your slack instance
  8. Agree with the terms
  9. Skip the invite step
  10. You are up and running with your own instance of Slack.

Now that team is created, let us create a slack bot

Creating Slack bot

  1. Open your {team-URL}/apps (the one you created above). Ex: https://test-visual.slack.com/apps
  2. Search for bot in the search bar and select bots
  3. In the bots landing page click on Add configuration
  4. Provide a bot name. Ex: wolfpack-bot and click on Add Bot integration
  5. In the Setup instruction page: Copy and store the API Token. Ex: xoxb-22672546-n1X9APk3D0tfksr81NJj6VAM
  6. Save the integration

Execution

In line #133 of src/sync_ends_service.py, replace <slackbot token> with your bot token after bot creation: Creating Slack Bot

cd src
python3 sync_ends_service.py

Authors

  • Rahul Yedida
  • Shuzheng Wang
  • Jialin Cui
  • Adithya Raghu Ganesh
  • Meghana Ravindra Vasist
  • Shivaprakash Balasubramanian
  • Surbhi Jha
  • Varsha Anantha Ramu Sharma

License

This project is licensed under the MIT License.

Known issue

While the PyPI package is called slackclient, you import the module using the name slack:

from slack import WebClient

You may find this not work on your first try, before you change moudle name or try to get the old version of slackclient, simply uninstall slackclient then install it again may give you a easy fix.

The current app 'bots' we are using does not have the right to create a channel, so I crate my own app and give it the right to create channel. The link is here https://api.slack.com/apps After go to this page just click Create New App, give it whatever name you want and a workplace you want to add it. Then I selected Permission to add the permission we need. Simply give this link https://slack.com/oauth/v2/authorize as the Redirect URLs. After this in the Bots Token Scope section choose add an OAuth scope. Based on the api we are using: conversations.list needs: channels:read groups:read im:read mpim:read conversations.create needs: channels:manage groups:write im:write mpim:write chat.postMessage needs: chat:write We can add more along the way when we need new scope. After add all these permissions, just choose install app, and you will get a token that can be used.

csc510-project's People

Contributors

varsha5595 avatar meghanavasist avatar adithyarganesh avatar jialinc avatar shiva96b avatar yrahul3910 avatar surbhijha avatar

Watchers

James Cloos avatar  avatar

csc510-project's Issues

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.