Skip to content
Raxel55 edited this page Mar 18, 2020 · 58 revisions

CsteerDevops course study project. Wiki-framework is a fillable database in wiki format, deployed using Docker containers. Can be interacted with using either Web UI or Telegram Bots. Currently is being deployed to nginx server.

Last validated changes on develop branch.

Technologies:

  • MongoDB
  • Python 3.7 with framework Flask
  • React
  • Nginx
  • Telegram API

Project schema can be found here.
Database document schema.json can be found here

Web UI is accessible through http://188.124.37.185
API documentation (swagger) through http://188.124.37.185:5000/api/wiki/doc

RUN

To run this project execute this commands:

curl -O https://raw.githubusercontent.com/CsteerDevops1/wiki-framework/develop/deploy.sh

chmod a+x deploy.sh

./deploy.sh project_dir

If you didn't have docker-compose early, you should logout and login in your system account to add your account in docker group.

Then you need to configure .env files in project_name/telegramBots/initBot/.env and project_name/telegramBots/userBot/.env. Or just create empty files in order to configure them later.

After all run deploy.sh again. It will continue work.

More information about deployment procedure

Working

You can check that the app is working. Try:

Structure

All project divided into modules. Each module represents a service and contained in own folder.

List of services:

  1. Core Service
  2. WEB UI
  3. Telegram Bots
  4. Translator

Core Service

Core service is API for interacting with database. Core service root folder You can run it locally:

docker build -t flask . && docker run --name flask_api -d -p 5000:5000 flask

WEB UI

Written in React
Currently is very WIP

Authors and maintainers: Andrey and Kirill

Bots list

https://t.me/cs_wiki_search_bot - that bot allows you to search information in database by "name" field with /find somename command
https://t.me/cs_wiki_media_bot - that bot allows you to edit data, stored in database

Translator

Background name field translator. This use Yandex Translator for translating.

Working description:
This is trying to get objects which have empty 'russian_name' field from API every 10 seconds If it get objects it try to translate 'name' field of each object with 1 second interval Also it translate 'description' field and put result in 'russian_description' field

Clone this wiki locally