Git Product home page Git Product logo

kanban's Introduction

Kanban

Kanban - форк от Chimera - демо пример реализации Kanban доски.

  • клиент написан на JavaScript и фреймворке Angular;
  • сервер написан на языке Python и фреймворке Tornado;
  • для хранения данных используется MongoDB;

Структура проекта

Проект структурно состоит из 2х частей - клиентской и серверной. Клиентские скрипты, шаблоны и стили размещены в публичной части системы, доступ к ним должен обеспечить веб сервер (nginx). Серверная часть заключена в виде монолитного приложения на python, доступ к которому осуществляется посредством REST API.

app - серверное приложение на python/tornado (backend)
│
├─ documents - MongoDB document-model
├─ handlers - Tornado handlers
└─ system - Chimera system files
    └─ utils - System modules


www - файловое хранилище скриптов клиентской части chimera
│
├─ resources - jquery/bootstrap/underscore/...
└─ system - Client-side

Фрейморк tornado обеспечивает возможность получения информации по методам http запросов таким как: get, post, put, delete, head, options, patch. Результатом работы приложения будет ответ в формате JSON.

Описание REST Endpoint

Роутинг по определенным точкам доступа для соответствующих обработчиков расположен в конфигурационном файле серверного приложения app/system/configuration.py

Структура ответа JSON

В процессе обработки каждого запроса серверной приложение рано или поздно возбудит исключение извещающее о завершении работы. Исключение может являтся запланированной обработкой ошибки, а в случае возникновения фатальной ошибки не предусмотренной в режиме нормальной работы приложение сгененирует исключение на основе имеющихся данных о произошедшей аварии. Так или иначе все исключения являются оберткой вокруг класса ResultMessage, который возвращает одинаковую структуру данных на каждый запрос.

подробнее см. app/system/utils/result.py

{
    "error": {
        "message": "error_message",
        "code": "error_code"
    },
    "content": {},
}
  • error - блок информации об ошибке;
  • error.message - Текстовое сообщение об ошибке (по умолчанию "");
  • error.code - Условный код ошибки (по умолчанию 0);
  • content - блок корректного ответа на запрос произвольной структуры (по умолчанию {});

Установка

Зависимости

Python 3.5 см. requirements.txt

Web server

Для работы приложения необходимо обеспечить доступ по домену (например www.kanban.local).

hosts
# Для доступа к клиентскому приложению, серверному приложению по REST API
127.0.0.1 www.kanban.local
nginx

Для работы доменов необходимо сконфигурировать веб сервер (например nginx). Пример конфигурации для nginx

# public
server {
    listen 80;
    charset utf-8;
    root /path/to/kanban/www;
    server_name www.kanban.local;
    index index.html;
    client_max_body_size 5M;

    location / {
        try_files $uri /index.html;
    }

    location ~ \.(js|css|ico|htm|html|json)$ {
        try_files $uri =404;
    }

    location /_/ {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://backend_kanban;
    }
}

# api
upstream backend_kanban {
    server 127.0.0.1:8888;
}

Backend

В качестве СУБД используется MongoDB (тестирование проводилось на версии 3.0.7). Настройка доступа к базе данных MongoDB, а так же роутинг приложения tornado можно настроить в app/system/configuration.py

Для MongoDB необходимо определеить базу данных - по умолчанию подключение будет идти на localhost:27017 в БД kanban

Frontend

Настройка доступа к клиентским билиотекам осуществлятся в главном индексном файле www/public/index.html в большинстве внешние библиотеки подключаются через сторонние CDN а внутренние библиотеки системы имеют относительные пути.

Настроить доступ клиента к серверу можно главном модуле клиентского приложения angular www/public/system/app.js в нем необходимо удостовериться что параметры

    baseUrl: "http://www.kanban.local/_",
    baseWWWUrl: "http://www.kanban.local"

сконфигурированы в соответсвии с настройками веб сервера.

  • baseUrl - базовый урл для API приложения
  • baseWWWUrl - базовый урл для клиентских ресурсов приложения

Возможности

В системе реализован базовый функционал по созданию досок, списков карточек, задач. Имеется возможность перетаскивать задачи посредство jQuery UI плагина sortable, а так же добавлять пользователей к управлению доской. Вопросы безопасности оставлены за пределами данной реализации.

После установки системы запустите приложение python app/main.py и перейдите по адресу (по умолчанию www.kanban.local) и пройдите регистрацию. Если имя пользователя не занято то пользователь будет создан с указанным паролем.

kanban's People

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.