{"id":22328281,"url":"https://github.com/alexqwesa/ais-3uson","last_synced_at":"2026-05-02T15:32:09.962Z","repository":{"id":173008422,"uuid":"435795610","full_name":"Alexqwesa/AIS-3USON","owner":"Alexqwesa","description":"АИС ТруУСОН - Автоматизированная информационная система учета услуг учреждения социального обслуживания населения","archived":false,"fork":false,"pushed_at":"2023-10-17T14:39:04.000Z","size":30739,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-31T08:14:45.820Z","etag":null,"topics":["python","qt5","sql"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Alexqwesa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-07T08:12:38.000Z","updated_at":"2022-01-08T06:47:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"d7f060ae-0f95-4d62-85a1-796d0c46f4fa","html_url":"https://github.com/Alexqwesa/AIS-3USON","commit_stats":null,"previous_names":["alexqwesa/ais-3uson"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alexqwesa%2FAIS-3USON","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alexqwesa%2FAIS-3USON/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alexqwesa%2FAIS-3USON/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alexqwesa%2FAIS-3USON/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Alexqwesa","download_url":"https://codeload.github.com/Alexqwesa/AIS-3USON/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245600298,"owners_count":20642271,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["python","qt5","sql"],"created_at":"2024-12-04T03:12:08.903Z","updated_at":"2026-05-02T15:32:09.925Z","avatar_url":"https://github.com/Alexqwesa.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AIS 3USON ( \"АИС ТриУСОН\" )\n\n\u003cimg align=\"right\" src=\"src/images/ais-3uson-logo-128.png\" alt=\"logo\"\u003e\n\nAn AIS-3USON project contain both Backend(SQL) and desktop Frontend(python+Qt), it supports Linux and Windows OS.\n\nПроект \"АИС ТриУСОН\" предназначен для автоматизации работы в учреждениях социальной сферы. В данном репозитории ПО\nразмещены сервер и клиент АИС, которые могут работать в операционных системах семейств Windows и Linux.\n\nПолное название: информационная система \"АИС ТриУСОН\" (\"Автоматизированная Информационная Система Учета Услуг Учреждений\nСоциального Обслуживания Населения\").\n\n## Содержание\n\n- [Установка](#установка)\n- [Сборка клиентского приложения](#сборка-клиентского-приложения)\n- [Использование](#использование)\n- [Для Разработчиков](#для-разработчиков)\n- [TODO](#todo)\n- [Разработчики](#разработчики)\n- [Лицензия](#лицензия)\n\n## Установка\n\nДля запуска серверных компонент в Docker подготовлен пакет helm (пакет конфигурационных файлов\nKubernetes) [инструкция по установке](docker/helm/README.md),\nтакже есть файл [docker-compose.yml](docker/docker-compose.yml)(устаревший).\n\nЛокальная установка:\n\n- Установить SQL СУБД - приложение протестировано на СУБД MySQL 8 _(для других СУБД не забудьте установить другие\n  коннекторы и изменить настройки по умолчанию в файле 3uson.conf)_\n- Импортировать в БД из директории sql/mysql следующие файлы(для **mariaDB** используйте файлы директории sql/mariadb):\n    - 01_schema.sql\n    - 02_data.sql\n    - 03_test_data.sql (для тестов: 05_extended_test_data.sql и 06_extended_test_data_2.sql )\n    - 04_security.sql\n    - 05_activate_admin_and_test_user.sql\n- В файле `05_activate_admin_and_test_user.sql` перед импортом необходимо сменить пароль пользователя-администратора admin2 (SQL роль admin),\n  который будет администрировать базу данных из настольного\n  приложения(подробнее см. раздел [Использование](#использование))\n\n## Сборка клиентского приложения\n\nWindows версия **pySide6** на момент разработки поддерживала только 64 битную архитектуру, поэтому сборки для\nWindows должны использовать 64 битные утилиты(Python 64bit, MSVC Redistributable 64bit, SQL Connector)\n\nWindows версия **pySide2** на момент разработки поддерживала только 32 битную архитектуру, поэтому сборки для Windows\nдолжны использовать 32 битные утилиты(Python 32bit, MSVC Redistributable 32bit, SQL Connector)\n\nПодготовьте среду python c необходимыми пакетами:\n```bash\ngit clone https://github.com/Alexqwesa/AIS-3USON\ncd AIS-3USON\nvirtualenv -p python3 venv\nsource venv/bin/activate\npip3 install -r requirements.txt\n```\n- отредактируйте в файле 3uson.conf ip-адрес вашего сервера (и др. настройки по умолчанию);\n- отредактируйте в файле `make.bat`(`make.sh`) путь к вашему профилю Python (и используемую библиотеку qt, по умолчанию используется pyside6)); \n- запустите `make.bat` (для Windows) или `make.sh` (для Linux);\n- полученные дистрибутивы удобно распространять через общую директорию по локальной сети (см. tools)\n\nЗапуск приложения возможен без установки, однако:\n\n- на **клиентских Windows компьютерах** должны быть установлены:\n    - MSVC Redistributable [vcredist_x86.exe](https://www.microsoft.com/en-US/download/details.aspx?id=48145)\n    - MySQL Connector/ODBC 8  [mysql-connector-odbc.msi](https://dev.mysql.com/downloads/connector/odbc/)\n- на **клиентских Linux компьютерах** нужно установить и указать:\n    - MySQL Connector/ODBC 8  [mysql-connector-odbc.tar.gz](https://dev.mysql.com/downloads/connector/odbc/)\n    - unixODBC\n    - добавить в /etc/unixODBC/odbcinst.ini следующие строки:\n\n```\n[MySQL ODBC 8.0 Unicode Driver]\nDriver=/путь/куда/вы/установили/libmyodbc8w.so\nUsageCount=1\n```\n\n## Использование\n\nПользователь-администратор через клиентское приложение создает:\n\n- отделения\n- заведующих отделений, специалистов, работников (назначает роли, выдает пароли);\n- вводит изменившийся прожиточный минимум;\n- вводит изменившиеся тарифы на услуги;\n- и др.\n\nЗаведующие:\n\n- вводят людей и их ПД\n- создают/закрывают договора\n- контролируют работу специалистов и работников\n- печатают акты, квитанции, отчеты из АИС ТриУСОН\n\nСпециалисты:\n\n- вводят оказанные услуги\n\nРаботники:\n\n- вводят оказанные услуги\n\nБухгалтер\n\n- вводит информацию о пришедших платежах (функционал в разработке)\n\n## Для Разработчиков\n\nДля запуска приложения без сборки - запустите файл run_app.py (в корневой директории проекта)\n\nПриложение-клиент написано с использованием инструмента Qt Designer, и логика GUI прописана в .ui файлах (какая кнопка\nна какой виджет влияет).\n\nСами классы виджетов содержат лишь обработчики сигналов/слотов. От этого правила я немного отошел при написании классов\nвкладок(QTabWidget - файл tab_classes.py), просто потому, что в Qt Designer это было бы сделать сложно, и не всегда\nвозможно.\n\nTODO:\n\n### Безопасность\n\nСозданные пользователи, имеют доступ лишь к использованию (**USE**) схемы бд и выполнению в ней процедур(**Execute**),\nпри подключении клиентское ПО выполняет команды `call GET_PRIVILEGES` и `SET ROLE all` которые назначают\nпользователю роли и активируют их.\nПроцедура GET_PRIVILEGES назначает роль в зависимости от записей в таблице dep_has_worker.\nТак же введены дополнительные ограничения: пользователь может вводить услуги только в свое отделение (для некоторых\nпользователей ограничен и просмотр услуг по отделению) и другие правила - см. файл Безопасность.\n\nЕсли пользователю нужно работать сразу с несколькими отделениями - этого можно добиться:\n\n1. Завести в таблице dep_has_worker вторую запись на работника из таблицы worker (в этой таблице у работника должна -\n   быть только одна запись - TODO)\n2. Создать над объединенное отделение в из нескольких отделений в таблице complex_dep (ВНИМАНИЕ: данная функция\n   сделана для получения отчетов сразу по нескольким отделениям, а не для ввода услуг!)\n\n## Разработчики\n\n[@Alexqwesa](https://github.com/Alexqwesa).\n\n## Лицензия\n\n[LGPLv3](LICENSE) © Savin Aleksander Viktorovich (Савин Александр Викторович)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexqwesa%2Fais-3uson","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexqwesa%2Fais-3uson","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexqwesa%2Fais-3uson/lists"}