Skip to content
This repository was archived by the owner on Jul 13, 2024. It is now read-only.
/ apt-enrollees Public archive

Веб-приложение для парсинга списка абитуриентов http://almetpt.ru [FastAPI/Svelte/TailwindCSS]

License

Notifications You must be signed in to change notification settings

mrtstg/apt-enrollees

Repository files navigation

apt-enrollees

FastAPI Svelte TailwindCSS

Приложение для удобного просмотра абитуриентов с сайта Альметьевского политехнического техникума.

Проект архивирован

Проект больше не совместим с текущим сайтом, актуальная переработанная версия доступна здесь.

Опробовать приложение

Общие принципы работы

Бэкенд приложения на FastAPI осуществляет парсинг HTML-таблиц абитуриентов и кэширует данные в Redis для дальнейшего отображения через API.

Веб-приложение на Svelte обращается к API, получает список групп и студентов.

В конце августа страницы со списками абитуриентов станут недоступны, так что приложение перестанет работать

Структура проекта

.
├── configs - директория с конфигурацией сервера
├── deployment - директория, содержащая Dockerfile и прочие файлы для развертывания
├── dist - директория с собранными webpack'ом файлами
├── modules - директория для подмодулей сервера
├── src - исходники для сборки
│   ├── css
│   └── js
└── template - папка с шаблонами HTML

Конфигурация сервера

Файл конфигурации распологается по пути ./configs/config.yaml

Примерный файл конфигурации (и пояснения к полям):

    server:
        address: 127.0.0.1 - сеть, из которой сервер принимает запросы
        port: 30000 - порт сервера
        root_path: "" - корневой путь всех URL. Меняется в случае если приложение хостится по какому-то из пути доменов

    redis:
        host: redis - hostname или адрес базы
        port: 6379 - порт redis'а

    static:
        path: /static/ - путь по которому будут доступны статические файлы
        folder: ./dist - путь к директории содержащей их

    env_mapping: - alias'ы переменных конфига к переменным виртуального окружения
        server.port: PORT - например, сервер сначала проверит есть ли переменная окружения PORT и если ее нет, то возьмет переменную из конфига, что позволяет переписывать часть значений при деплое
        redis.host: REDIS_HOST
        redis.port: REDIS_PORT

Развертывание

На продакшене приложение развертывается в контейнере при помощи podman (примерный файл деплоя)

Для деплоя при помощи файла используйте команду

podman play kube deployment/podman.yaml

Для свертывания приложения используйте команду

podman play kube --down deployment/podman.yaml

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

Небольшие нюансы

  • Приложение использует по умолчанию redis без аутентификации, поэтому не рекомендую разворачивать приложение там где к redis есть доступ извне
  • При желании можно убрать декораторы кэширования в redis и обойтись без него. Но пожалейте сайт, все таки.

About

Веб-приложение для парсинга списка абитуриентов http://almetpt.ru [FastAPI/Svelte/TailwindCSS]

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published