Skip to content

InnoSWP/B21-06-Seamless-support

Repository files navigation

Seamless Support System

This is an implementation of a support service on Python, Django and React that can be easily integrated to different platforms. The service provides fast and efficient communication between user and volunteers in case of any questions. It is mainly based on implicitly connected telegram bot to the web page.

The repository includes: Linter Django App folder with front-end (React) and back-end part (Python) Config file with constant data

The code is documented and designed to be easy to extend. If you use it in your research, please consider citing this repository (bibtex below).

Functionality

Users can refer to our integrated platform if they have some questions. The process is the following: user enters the QA field and in case of noticing the necessary question among the most frequently asked ones just click on it and get a fast answer. In another case, the user just types his/her question in a specific window and gets redirected to a dialog page, where can see all the answers below the questions. From the inner side, the process is more detailed and consists of resending the user’s question from the server to the common telegram chat with all the volunteers. There they can accept or reject the question, after this there forms a chat in telegram with a specific volunteer and a user. In the chat volunteer types the answer, pushes the “send” button and the message gets redirected back to the service and published on the page.

Integration

Our project is divided into parts, each of which is very easy to integrate into the system. The platform consists of a front-end part, telegram bot and a database.

Front end part: You can use our front-end part or attach your own to the platform.
For React.js
For Vue.js
For Angular

If you are ok with our frontend part, anyway you have to perform some actions to make it work:
-First, install Node.js
-Go to the frontend directory

cd djangoApp/frontend

-Install node-modules

npm install

-Build the frontend part

npm run build

Our frontend part is already connected to the backend in djangoApp/urls.py

Backend part:
If your project uses django for backend part, the only step you need is to take the core app from djangoApp directory, add to your project and connect it.
The guide is presented here

Otherwise, you need to use the whole project as a separate service and redirect to the service from your application.
Here is the guide how to deploy it on heroku.

Configuration

Backend part: To integrate bots, you just need to register your bot token. Then change the parameters in config.py which contains TOKEN (Your telegram bot token), CHAT_ID (Telegram volunteer chat id) and DATABASE_NAME (The name of your googlesheet file, if you use it as a database).
Database:
For adding a database, you need to create a new class that will be inherited from abstract one in CloudDatabase.py. It is also important to understand that the structure of your database should be as follows (sheets and field attributes should match those listed below).
Optional: If you want to use GoogleSheets for this, please follow the instruction from https://docs.gspread.org/en/latest/oauth2.html and change the database name in config.py.

Additional information

Linter: Build

Licence

MIT License

Copyright (c) 2022 Gleb Kirillov, Leonid Zelensky, Dilyara Farkhutdinova, Ali Mahmoud Mansour, Ernest Matskevich

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5