Фулл-стек приложение для расчета стоимости работ по восстановлению элементов пластиковых/деревянных/металлических окон, а так же для расчета стоимости изготовления оконных сеток.
- Описание проекта
- Пример работы
- Технологии
- Установка
- Использование
- Архитектура проекта
- Документация API
- Тестирование
- Автор
- Лицензия
Это фулл-стек приложение, предназначенное для расчета стоимости работ по восстановлению пластиковых, деревянных и металлических окон, а также для расчета стоимости изготовления оконных сеток. Приложение предоставляет удобный интерфейс для ввода данных окон или сеток, а затем автоматически рассчитывает стоимость на основе заданных параметров, таких как размеры, материалы и тип работы. Результаты расчета могут быть помещены в корзину и экспортированы в 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.
Эта часть проекта является приватной и имеет нюансы, связанные с установкой и настройкой.
- Подготовьте конфигурационные файлы (.env, .env.prod).
- Запустите контейнеры приложения:
cd window_calculator && docker-compose up -d
- Откройте браузер и перейдите по адресу:
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:
В процессе подготовки. В дальнейшем тут будет ссылка на OpenAPI-документацию.
Инструкция по запуску тестов:
- Установка зависимостей:
cd server && mvn install
- Запуск unit-тестов:
mvn test
Этот проект лицензируется в соответствии с лицензией Apache License 2.0. Подробнее в файле LICENSE.