Skip to content

VityasZV/JointPython

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JointPython

Клиент серверный чат. Серверная часть поддерживается базой данных PostgreSql. Графический интерфейс написан с использованием Qt. Функционал:

  1. Сервер приложения чата, обрабатывающий запросы от клиентсикх приложений или запросов отправленных командой курл
  2. Клиентское приложение: 2.1 В графичечкой версии поддерживаются возможности регистрации, авторизации, выбора чат-группы, посылки сообщений и выбора языка интерфейса 2.2 В дополнении в консольной версии поддерживается возможность создания новых групп, удаления групп, добавления и исключения пользователей руппы от лица админимтратора группы

Как устанавливать:

  1. Создать PostgreSQL базу данных под названием chat, добавить роль admin без пароля
  2. К этой базе данных применить скрипты из папки psql
  3. Установить wheel, лежащий в папке dist
  4. Для запуска сервера:
    import server.http_server as sr
    sr.run()
  5. Для запуска клиента:
    import client.demo_client as cl
    cl.run()

Для запуска вручную

  1. Установить в виртуальном окружении пакеты PyQt5, psycopg2, urllib3, requests
  2. Запустить сервер
  3. Запустить желаемое число клиентов

Примеры графического интерфеса :

Регистрация: Registration

Авторизация: Authorization

Чат: Chat


Реализовано на данный момент:

enotnadoske:
  1. Readme с картинками
  2. Шаблон графического интерфейса для авторизации
  3. Шаблон графического интерфейса для регистрации
  4. Шаблон графического интерфейса для чата
VityasZV:
  1. Cервер, с работающими запросами по логину логауту регистрации отправке сообщений в глобальный чат. Сервер многопоточный, каждый поток отвечает за обработку подсоединенного клиента. Ну и есть главный поток, в котором серверный сокет слушает новые соединения с ним.
  2. Pеализована структура TokenConn- каждому авторизованному пользователю выдаётся соединение к базе данных. То есть потенциально пользователям можно работать с неким общим ресурсом из базы, но мы ещё это не продумали.
  3. Hа данный момент благодаре базе данных сохраняется информация о зарегистрированных пользователях, которая подтягивается сервером при запуске.
zvonand:
  1. Немного тестов
  2. Перевод интерфейса
  3. Собрано в wheel пакет
SamuilYu:
  1. Построена логика клиента - синхронизированная работа нити записи и нити чтения
  2. Парсинг ответа и построение запроса
  3. Функции: соединение с сервером, регистрация, логин, логаут, обмен сообщениями

Планируется реализовать:

enotnadoske:
  1. Связать созданные шаблоны с функционалом клиента
  2. Реализовать шаблоны графического интерфейса и связать с функционалом когда он будет реализован для оставшихся идей в пункте предполагаемый функционал
VityasZV:
  1. реализация логики в базе данных по сохранению созданных чатов и их соотношением с пользователями
  2. добавление нужных хендлеров по созданию и удалению чата
zvonand:
  1. Перевод на большее число языков
  2. Большее покрытие тестами
  3. Засунуть кнопку перевода в более красивое место
SamuilYu:
  1. Функции и структуры для общения клиента в разных чат-румах
  2. Пофикшить всякое(с) Sam

About

joint python development

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •