/Telemarketing_system

This is my 3rd year coursework.

Primary LanguagePython

Краткое описание проекта

Проект предсатавляет собой базу данных центра телемаркетинга коммерческого банка с которой по средством API ODBC взаимодействуют веб-приложение и desktop клиент. Для защиты базы данных применено прозрачное шифрование, которое обеспечивает целостность файлов базы на устройстве расположения.

Для защиты данных передаваемых по открытым каналам связи предпологается использования ssl/tls.

Web

  • Веб-приложение создано на микрофреймворке Flask
  • Для CSS использовался Bootstrap, а также был взят шаблон для панели авторизации.
  • Приложение - отсебятина автора. Автор не использовал стандарт REST при разработке.
  • Учитывая предыдущий пункт. URL указывает не на физическую директорию, а на эмулируемую в контексте функции.
  • Blueprints не были использованы. Использование дало бы увеличение гибкости, оптимизованности и общего качества приложения.
  • Приложение в основном статическое не учитывая live-чат, который использует вебсокеты.
  • Приложение не использует AJAX.
  • Приложениие собиралось в app остальные .py файлы использовались как модули/библиотеки для доступа к классу выполняющего определенный функционал.
  • Файл Encrypt предназанчен для эмуляции хеширования пароля пользователя при регистрации, полученный хеш заносится вручную в DB. В последствии веб-приложение будет проверять при входе пользователя в систему старый хеш из дб с новым от вводимого пароля пользователя.
  • Предназначено для использованием клиентами для получения услуг банка, а также работниками низшего звена для обслуживания клиентов в чат команатах.
  • В db осуществляется подключение к SQL серверу и получение массивов строк таблиц с занесением в словари для дальнейшей удобной обработки.
  • В db_checkосуществляется идентификация и аутентификация пользователя.
  • Cookie_check проверяет наличие кук в браузере, если они есть то сравнивает с куками в бд(эти куки были занесены при успешном первом входе пользователя), при совпадении кук пользователь проходит авторизацию и получает права иначе - нет.

Desktop

  • Разрабатывалось с использованием стандартной графической библиотке tkinter
  • Представляет собой GUI для продукт менеджера банка
  • Авторизации совершается через SQL Server Authentication по средствам использования API ODBC

Даталогическая модель базы данных

datalog2

Связи

  • Связь «Клиенты» – «Сообщения» (1: М)

    Один клиент может получить несколько персонализированных сообщений. Несколько персонализированных сообщений принадлежат к одному конкретному клиенту.

  • Связь «Аккаунты» – «Клиенты» (М:1)

    Аккаунт выдается пользователю для управления своим счетом и получения услуг банка, не выходя из дома. К аккаунту привязан конкретный счет, клиент может оформить несколько счетов в банке для которых потребуются несколько аккаунтов.

  • Связь «Аккаунты» – «Детали счета» (1: М)

    Аккаунт может иметь счет с различной валютой

  • Связь «Детали счета» – «Чеки» (1: М)

    Используя один счет можно совершить несколько операций. Несколько операций могут быть совершены на одном счете.

  • Связь «Аккаунты» – «Новости банка» (1: М)

    К одному аккаунты могут относиться несколько персонализированных новостей. Несколько персонализированных новостей относятся к одному аккаунтов.

  • Связь «Клиенты» – «Опросы» (1: M)

    Одному клиенту соответствует несколько персонализированных опросов. Несколько персонализированных опросов относятся к одному клиенту.

  • Связь «Аккаунты» – «Работники» (М: 1)

    Аккаунт выдается работник для оказания услуг клиентам в веб-приложение банка. Из-за расширения функционала банка сотруднику могут принадлежать несколько аккаунтов с разным функционалом.

  • Связь «Работники» – «Компании» (1: M)

    Один работник на одну кампанию. Обычно выбирается профессионал области для удачного осуществления поставленной задачи. Один работник может участвовать в нескольких компаниях.

  • Связь «Лиды» – «Сообщения» (1: М)

    Один лид может получить несколько персонализированных сообщений. Несколько персонализированных сообщений могут относиться к одному лиду. Примечание Лид - возможный клиент банка

  • Связь «Компания» – «Лид» (М: 1)

    В нескольких компаниях может участвовать один лид. Один лид может участвовать в нескольких компаниях.

  • Связь «Компании» – «Продукты» (1: М)

    Одна компания может продвигать несколько продуктов.

Демонстрация работы разлинчых функций ИС

Функционал web

fail_log
Демонстрация провальной авторизации
true_log
Демонстрация успешной авторизации
live_chat
Демонстрация live-чата
make_pay
Демонстрация совершения платежа
reviews
Демонстрация составления отзыва

Функционал десктопного приложения

fail_log_tkinter
Демонстрация провальной авторизации
log_tkinter
Демонстрация успешной авторизации
revie_tkinter
Демонстрация сбора данных о опросах
Survays
Демонстрация работы с опросами
Чтобы посмотреть нажми на изображение
News
Демонстрация работы с новостями
Чтобы посмотреть нажми на изображение