Skip to content

MindlessMuse666/interpolation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

interpolation_logo

Документация проекта interpolation

Обучающее приложение "Численные методы. Интерполяция" (∩^o^)⊃━☆


Go Gin Vue.js Vite Vuetify Chart.js Docker Redis RabbitMQ SQLite Swagger plantuml

...интерактивное веб-приложение для изучения методов интерполяции (линейная, Лагранж, Ньютон).

Проект является курсовой работой по дисциплине МДК.02.01 "Технология разработки программного обеспечения".

✨ Рабочее название: interpolation ✨
🏛️ Тип архитектуры Event-Driven Architecture (EDA) + элементы MSA
📘 Дисциплина Технология разработки программного обеспечения
📌 Курсовой проект Проектирование и разработка обучающего приложения по теме: Численные методы. Интерполяция
👨‍🏫 Преподаватель Томашеевич А. А.
📅 Дата 2026-05-03

🏗 Архитектура

Общие сведения

Проект построен на микросервисной архитектуре:

  • Nginx: Раздача SPA и проксирование API/Swagger (Docker);
  • API Gateway: Маршрутизация, CORS, Rate Limiting (Go + Gin);
  • Interpolation Service: Вычислительное ядро с кэшированием (Go + Redis);
  • History Service: Сохранение истории вычислений (Go + SQLite + RabbitMQ);
  • Frontend: Интерактивный SPA (Vue 3 + Vuetify + Chart.js).

Диаграмма вариантов использования (Use Case Diagram)

Диаграмма показывает действия пользователя в приложении: изучение теории, выполнение заданий, работа в песочнице и просмотр/очистка истории вычислений.

Диаграмма классов (Class Diagram)

Диаграмма отражает ключевые сущности домена (точка, запрос/ответ интерполяции, запись истории) и их связи между сервисами.

Диаграмма активности (Activity Diagram)

Диаграмма описывает основной поток вычисления: валидация входных данных, проверка кэша, вычисление интерполяции, сохранение результата и публикация события истории.

Диаграмма последовательностей (Sequence Diagram)

Диаграмма показывает взаимодействие компонентов при обработке запроса интерполяции и при получении истории вычислений: вызов через API Gateway, проверка кэша Redis (cache hit/miss), вычисление в Interpolation Service, публикация события в RabbitMQ и сохранение записи в SQLite через History Service.

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

Проект разделён на frontend (SPA) и backend (набор Go-сервисов), а инфраструктурные зависимости описаны через Docker Compose.

interpolation/
├─ backend/
│  ├─ core/
│  │  └─ interpolation/        # вычислительное ядро (алгоритмы интерполяции)
│  ├─ gateway/                 # API Gateway (маршрутизация, CORS, rate limiting, Swagger)
│  ├─ interpolation/           # Interpolation Service (HTTP API, кэш Redis)
│  ├─ history/                 # History Service (SQLite + RabbitMQ)
│  ├─ go.mod / go.sum          # зависимости Go-модуля
│  └─ */Dockerfile             # сборка контейнеров backend-сервисов
├─ frontend/                   # Vue 3 + Vite + Vuetify (SPA)
│  ├─ src/
│  │  ├─ views/                # страницы (обучение/песочница)
│  │  ├─ components/           # переиспользуемые компоненты (графики и т. п.)
│  │  ├─ router/               # маршрутизация
│  │  └─ assets/               # изображения для теоретических материалов
│  └─ Dockerfile               # сборка фронтенда
├─ docker/                     # конфигурация инфраструктуры (nginx/redis/rabbitmq)
├─ config/                     # конфигурация приложения (config.toml)
├─ docs/                       # спецификации, диаграммы, скриншоты
│  ├─ diagrams/                # UML-диаграммы проекта
│  └─ .screenshots/            # скриншоты UI
├─ docker-compose.yml          # оркестрация сервисов и инфраструктуры
└─ README.md                   # документация проекта

🖼️ Скриншоты

Обучение: теория
Обучение - теоретический материал

Обучение: практика
Обучение - практические задания

Песочница: основной экран
Песочница - ввод точек и визуализация графика

Песочница: история вычислений
Песочница - история вычислений

Swagger UI
Swagger UI - интерактивная документация API

Docker Desktop: контейнеры проекта
Docker Desktop - запущенные контейнеры проекта

🚀 Запуск через Docker Compose

docker compose up --build

📚 API-Документация

  • Фронтенд: http://localhost/
  • API Gateway: http://localhost/api/v1/
  • Swagger: http://localhost/swagger/index.html
  • RabbitMQ Management: http://localhost:15672 (guest/guest)

⚙️ Технологии

  • Backend: Go 1.25.5, Gin, Redis, RabbitMQ, SQLite.
  • Frontend: Vue 3, Vuetify 3, Chart.js.
  • DevOps: Docker, Docker Compose, Nginx.

interpolation_logo
Веб-приложение // Численные методы. Интерполяция
Made with love by MindlessMuse666