- •Курсовая работа по дисциплине
- •Введение
- •Постановка задачи
- •Обоснование выбора технологий
- •Разработка структуры программы
- •4.1. Общая архитектура клиент-серверного взаимодействия
- •4.2. Структура серверного приложения (Flask)
- •4.3. Система хранения данных
- •4.4. Схема базы данных
- •Разработка ключевых модулей серверной части
- •5.1. Модуль инициализации и конфигурации
- •5.2. Модуль работы с данными клиник и записей (json-слой)
- •5.3. Модуль взаимодействия с базой данных (MySql-слой)
- •5.4. Модуль маршрутизации и обработки запросов (Flask-пути)
- •5.5. Модуль управления сессиями и аутентификацией
- •Сценарии пользователя
- •Заключение
- •Приложение
МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА» (СПбГУТ)
ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И ПРОГРАММНОЙ ИНЖЕНЕРИИ (ИТПИ)
КАФЕДРА ПРОГРАММНОЙ ИНЖЕНЕРИИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ (ПИ И ВТ)
Курсовая работа по дисциплине
«Web-технологии»
на тему: «Разработка серверной части веб-приложения
“Медицинский портал”
Выполнил |
студент группы ИКПИ-32 |
Яковлев М. А. |
___________________ |
Проверила |
и.о. заведующего кафедрой, старший преподаватель кафедры ПИиВТ |
Краева Е. В. ___________________ |
г. Санкт-Петербург,
Оглавление
Введение 3
Постановка задачи 3
Обоснование выбора технологий 5
Разработка структуры программы 7
4.1. Общая архитектура клиент-серверного взаимодействия 7
4.2. Структура серверного приложения (Flask) 7
4.3. Система хранения данных 8
4.4. Схема базы данных 9
Разработка ключевых модулей серверной части 10
5.1. Модуль инициализации и конфигурации 10
5.2. Модуль работы с данными клиник и записей (JSON-слой) 10
5.3. Модуль взаимодействия с базой данных (MySQL-слой) 10
5.4. Модуль маршрутизации и обработки запросов (Flask-пути) 11
5.5. Модуль управления сессиями и аутентификацией 11
Сценарии пользователя 13
Заключение 16
Список литературы 17
Приложение 18
Введение
Современное здравоохранение активно трансформируется под влиянием цифровых технологий, стремясь стать более доступным, удобным и эффективным для пациентов. Одной из ключевых тенденций является развитие систем электронной записи на приём, которые устраняют необходимость длительного ожидания в очередях, позволяют пациентам самостоятельно выбирать удобное время и специалиста, а также получать актуальную информацию о медицинских услугах.
Веб-приложение «Медицинский портал», разработанное в рамках данной курсовой работы, представляет собой комплексное решение для организации онлайн-записи пациентов в медицинские учреждения. Платформа объединяет в себе функции каталога клиник и услуг, системы бронирования временных слотов, личного кабинета пациента.
Данная курсовая работа сосредоточена на проектировании и реализации серверной части (backend) данного веб-приложения. Сервер выступает в роли центрального звена системы, отвечая за выполнение критически важных функций: хранение и управление данными (информация о клиниках, врачах, расписании, пользователях и заказах), обеспечение безопасности и аутентификации пользователей, обработку бизнес-логики (проверка доступности слотов, оформление записей) и предоставление интерфейса прикладного программирования (API) для клиентской части (frontend).
Актуальность работы обусловлена растущим спросом на цифровизацию услуг в социально значимых сферах, включая здравоохранение. Разработанный серверный комплекс демонстрирует применение современных подходов к веб-разработке на Python, реализует модель хранения данных и обеспечивает надёжную основу для создания полнофункционального, безопасного и масштабируемого медицинского сервиса.
Постановка задачи
Целью работы является разработка серверной части веб-приложения «Медицинский портал», обеспечивающей работу системы онлайн-записи на приём к врачу. Сервер должен быть реализован на языке Python с использованием фреймворка Flask и взаимодействовать с базой данных MySQL.
Основные задачи серверной части:
Организация хранения данных:
Создание и поддержка структурированного каталога медицинских клиник с описанием услуг и цен.
Генерация и управление расписанием доступных слотов для записи на несколько дней вперёд.
Регистрация и безопасное хранение учётных данных пользователей.
Фиксация истории всех совершённых записей на приём.
Обработка и сохранение заказов на медицинские услуги из корзины.
Реализация бизнес-логики приложения:
Проверка авторизации пользователя при попытке совершить действие.
Валидация данных: проверка уникальности логина, корректности форматов, доступности выбранного слота для записи.
Запрет записи на прошедшие даты и время.
Гарантия целостности данных при параллельных операциях (отметка о занятости слота).
3. Предоставление API для клиентской части:
Разработка набора REST-подобных конечных точек (endpoints), возвращающих данные в формате JSON.
Обеспечение кросс-доменных запросов (CORS) для интеграции с фронтендом.
Чёткое разделение ответов на успешные операции и ошибки с соответствующими HTTP-кодами.
Обеспечение безопасности:
Управление пользовательскими сессиями для поддержания состояния авторизации.
Хранение паролей в базе данных (в текущей учебной реализации — в открытом виде, с рекомендациями по хешированию).
Защита от основных уязвимостей (например, косвенная защита от SQL-инъекций через параметризованные запросы в pymysql).
Создание модели данных.
Требуемый технологический стек для серверной части:
· Язык программирования: Python 3.x
· Веб-фреймворк: Flask
· База данных: MySQL 8.0
· Библиотеки: Flask-CORS, pymysql
· Среда запуска: Встроенный WSGI-сервер Flask (для разработки) или производственные решения (Gunicorn, uWSGI).
Второй участник проекта отвечает за:
· Разработку клиентской части приложения
· Создание HTML/CSS шаблонов и пользовательского интерфейса
· Реализацию клиентской логики на JavaScript
· Адаптивный дизайн
· Интеграцию фронтенда с бэкенд-API
Пояснительная записка должна содержать:
· Постановку задачи,
· Обоснование выбранных технологий,
· Разработку архитектуры системы,
· Разработку отдельных модулей,
· Инструкцию по развертыванию и использованию, тестирования,
· Заключение,
· Список литературы,
· Приложения с исходным кодом.
