Skip to main content

Sync Ends - End Development Overheads CSC 510 Project

Project description

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

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

Why use it

Sync ends is a state of the art technology which keeps your consumers updated with the changes to your API in realtime. Consider a user using multiple API's in thier system, In this ever changing world it is impossible for the consumer to be updated with each and every API change. Here is where sync ends comes into action. If API developers start using sync ends then the consumer will be updated in near real time with the API changes. This will make your API more robust and developers will love using such API's which provide such good support. So avoid crashes and shift to sync ends.

This version of sync ends is highly usable as it can be simply downloaded through PyPi. It is a single package which satisfies all your needs with clean documentation. Using simple config file you can start the service from terminal through our CLI interface. All your API's from postman collection will be fetched and their changes will be reflected into your slack channel.

How to use it

Installation

pip install sync-ends

Usage

  1. Run following command with required parameters.
syncends  --collection_name "COLLECTION_NAME_HERE" --api_key "POSTMAN_API_KEY_HERE" --slack_token "SLACK_TOKEN_HERE" --trigger_interval 10 --slack_channel "general"
collection_name - name of postman collection
api_key - the api key fetched from setup section of postman after registering your service.
slack_token - the token obtained from slack for receiving slack messages.
trigger_interval - the interval at which postman api changes are checked.
slack_channel - is the channel in slack where messages are received.

Congratulations

You just saved yourself from unwanted crashes

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

License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sync-ends-2.1.2.tar.gz (16.1 kB view details)

Uploaded Source

Built Distribution

sync_ends-2.1.2-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file sync-ends-2.1.2.tar.gz.

File metadata

  • Download URL: sync-ends-2.1.2.tar.gz
  • Upload date:
  • Size: 16.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

File hashes

Hashes for sync-ends-2.1.2.tar.gz
Algorithm Hash digest
SHA256 db9619e79fb10fb85d36413904a6e45def21b43738bc73e871e6f5cb5362bd95
MD5 8f44ce0d9aa0524bd5b3b5a7acb1e5d0
BLAKE2b-256 6f304ccb77fba075f2e241e52f339617feb52a251b3a4651b38e6a17dbdd47ea

See more details on using hashes here.

File details

Details for the file sync_ends-2.1.2-py3-none-any.whl.

File metadata

  • Download URL: sync_ends-2.1.2-py3-none-any.whl
  • Upload date:
  • Size: 16.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

File hashes

Hashes for sync_ends-2.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 465cc63d3ff7589b725ab5fd48c84217547b640bebdaa38e2f0b57f56df2c677
MD5 b7d273f3c2ee5620dd98071ae5333039
BLAKE2b-256 d4a6016ccdb4595dce3bfc735ce565e1f0070b7e8311741be353e679597d75a2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page