Skip to content

Window Calculator is a full-stack app for calculating the cost of restoring windows and manufacturing window nets based on size, materials, and work type.

License

Notifications You must be signed in to change notification settings

ath31st/window_calculator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Window calculator

Фулл-стек приложение для расчета стоимости работ по восстановлению элементов пластиковых/деревянных/металлических окон, а так же для расчета стоимости изготовления оконных сеток.


Оглавление

  1. Описание проекта
  2. Пример работы
  3. Технологии
  4. Установка
  5. Использование
  6. Архитектура проекта
  7. Документация API
  8. Тестирование
  9. Автор
  10. Лицензия

Описание проекта

Это фулл-стек приложение, предназначенное для расчета стоимости работ по восстановлению пластиковых, деревянных и металлических окон, а также для расчета стоимости изготовления оконных сеток. Приложение предоставляет удобный интерфейс для ввода данных окон или сеток, а затем автоматически рассчитывает стоимость на основе заданных параметров, таких как размеры, материалы и тип работы. Результаты расчета могут быть помещены в корзину и экспортированы в PDF файл. Так же, существует возможность администрировать пользователей, добавлять/удалять/редактировать новые товары и услуги.


Пример работы

Видео-демонстрация работы приложения:

website-overview.mp4

Технологии

Список основных технологий и инструментов, использованных в проекте:

  • Backend: Java, Spring Boot, Spring Security, Flyway, PostgreSQL, Maven.
  • Frontend: TypeScript, Next.js.
  • Дополнительные: Zustand, Material UI, JWT, Jacoco, Docker Compose, Nginx.

Установка

Эта часть проекта является приватной и имеет нюансы, связанные с установкой и настройкой.


Использование

  1. Подготовьте конфигурационные файлы (.env, .env.prod).
  2. Запустите контейнеры приложения:
    cd window_calculator && docker-compose up -d
  3. Откройте браузер и перейдите по адресу:
    http://localhost:80

Архитектура проекта

Краткое описание структуры проекта:

  • /client — папка с фронтенд-частью приложения:

    • /public — публичная папка, содержит статические файлы.
    • /src/ — папка с кодом приложения.
      • /app — папка со страницами приложения.
      • /components — переиспользуемые компоненты (например, формы ввода, кнопки, модальные окна).
      • /constants — константы приложения.
      • /hooks — кастомные хуки React для управления состоянием и логикой взаимодействия.
      • /interceptors — интерсепторы для обработки HTTP-запросов.
      • /providers — провайдеры для управления состоянием приложения.
      • /services — сервисы для бизнес-логики приложения.
      • /utils — вспомогательные функции и утилиты.
      • /stores — состояние приложения с использованием Zustand (например, для хранения данных о пользователе).
      • /types — типы приложения.
  • /server — папка с бэкенд-частью приложения:

    • src/main/java/sidim/doma/wc/ — основной код приложения.
      • /config — конфигурационные бины.
      • /controller — контроллеры для обработки HTTP-запросов.
      • /dto — DTO-классы для передачи данных между контроллерами и сервисами.
      • /entity — сущности, отображающие таблицы в базе данных.
      • /exception — классы исключений.
      • /mapper — мапперы для преобразования объектов.
      • /repository — репозитории для взаимодействия с базой данных.
      • /service — сервисы, реализующие бизнес-логику.
      • /util — вспомогательные классы.
    • /resources — конфигурационные файлы, включая файл настроек базы данных и настройки безопасности.
      • /db.migration — миграции для Flyway, чтобы управлять изменениями в базе данных.
  • compose.yaml — композ-файл Docker Compose, который определяет конфигурацию контейнеров приложения.

    • /server/Dockerfile — Dockerfile для сборки образа сервера приложения.
    • /client/Dockerfile — Dockerfile для сборки образа клиента приложения.

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

Описание основных эндпоинтов API:

В процессе подготовки. В дальнейшем тут будет ссылка на OpenAPI-документацию.


Тестирование

Инструкция по запуску тестов:

  1. Установка зависимостей:
    cd server && mvn install
  2. Запуск unit-тестов:
    mvn test

Автор


Лицензия

Этот проект лицензируется в соответствии с лицензией Apache License 2.0. Подробнее в файле LICENSE.

About

Window Calculator is a full-stack app for calculating the cost of restoring windows and manufacturing window nets based on size, materials, and work type.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages