Лабораторная работаПрограммированиеГод: 2025ИТМО: Национальный исследовательский университет ИТМО
👁 14💼 0

Готовая лабораторная: Веб‑глоссарий на FastAPI и gRPC

Загружена: 19.02.2026 13:03

Проект по созданию веб‑глоссария: фронтенд (index.html, styles.css, script.js) и бэкенд на FastAPI с uvicorn, реализация gRPC-сервиса и десктопного клиента на Tkinter. Включены инструкции по сборке и деплою на Heroku, файлы конфигурации и примеры команд.

Содержание

Задание 1.
Создание проекта в PyCharm, создание каталогов и файлов: index.html, style.css, script.js и вспомогательного файла README.md. Публикация репозитория проекта в GitHub. Настройка GitHub Pages для деплоя проекта на сервер. Создание в папке workflows файла deploy.yml для хранения данных конфигурации. Создание файла README.md для описания пошаговой инструкции настройки проекта.

Задание 2.
Создание нового проекта в PyCharm, подключение библиотеки fastapi uvicorn для работы с Fast API. Создание в корневом каталоге проекта файла main.py для подключения к Fast API, создания основной структуры программы (глоссария и компонентов). Создание файлов index.html (контейнеры для терминов, кнопки), styles.css (стили) и script.js (функции кнопок). Проверка работы приложения (отображение терминов, добавление, обновление, удаление, поиск). Развертывание приложения на облачной платформе Heroku (регистрация, создание requirements.txt, Procfile, подключение Git-репозитория, деплой). Добавление файла README.md с инструкциями по установке и кратким описанием.

Задание 3.
Создание глоссария с использованием gRPC. Подключение библиотек grpcio и grpcio-tools. Создание файла glossary.proto для определения gRPC сервиса. Генерация Python-кода из этого файла. Добавление файла server.py для реализации сервера. Создание файла client.py для реализации клиентской части. Проверка работы приложения (запуск сервера и клиента). Создание графического интерфейса с использованием Tkinter (файл client_gui.py). Демонстрация работы приложения (добавление терминов, отображение на главном экране).

Подробное описание

📘 О чем эта работа

Проект описывает создание веб‑глоссария: от структуры файлов в PyCharm и фронтенда на HTML/CSS/JS до бэкенда на FastAPI с запуском через uvicorn. Также показана интеграция gRPC (файл glossary.proto), генерация Python-кода для сервиса и вариант десктопного клиента на Tkinter.

📚 Что внутри

В работе приведены конкретные файлы и команды, необходимые для сборки и запуска приложения:

  • Файлы фронтенда: index.html, styles.css, script.js — контейнеры, кнопки для CRUD операций, обработка всплывающих окон и поисковой строки.
  • Бэкенд: main.py с подключением FastAPI и структурой глоссария, инструкции по запуску: uvicorn main:app --reload.
  • gRPC: glossary.proto, команда генерации Python-кода: python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. glossary.proto, файлы server.py и client.py.
  • Десктопный клиент: client_gui.py (Tkinter) — пример интеграции gRPC/HTTP с GUI.
  • Деплой и конфигурация: deploy.yml в папке workflows, requirements.txt (генерация через pip freeze > requirements.txt), Procfile, команды Heroku: heroku login, git remote add heroku, heroku open.
  • Документация: README.md с пошаговыми инструкциями по установке, запуску и деплою.

📊 Для кого подходит

Подходит студентам и начинающим разработчикам по направлению программирования и прикладной информатики для лабораторных и курсовых работ. Полезно для тех, кто изучает FastAPI, gRPC, деплой облачных приложений и простые GUI на Tkinter.

✨ Особенности

Проект дает готовый набор конфигураций и команд: примеры запуска сервера и клиента в разных терминалах, реализованные уведомления об успешном добавлении/ошибке при CRUD-операциях, реализация поиска по терминам и пример автоматической генерации зависимостей (requirements.txt).

Отдельно описаны ограничения платформ: указано, что GitHub Pages не подходит для FastAPI и предложена альтернатива — Heroku с подробной последовательностью команд и содержимым Procfile.

❓ Частые вопросы

Подойдет ли для моего ВУЗа?
Структура проекта и сопровождающие файлы (README, Procfile, deploy.yml) оформлены в практическом формате, подходящем для лабораторных и курсовых требований по программированию.

Можно адаптировать?
Да — код и конфигурации настроены модульно: можно заменить способы хранения терминов, подключить другую СУБД или адаптировать интерфейс под требования преподавателя.