{"id":20136900,"url":"https://github.com/ath31st/window_calculator","last_synced_at":"2026-04-10T12:31:33.154Z","repository":{"id":246371928,"uuid":"820925089","full_name":"ath31st/window_calculator","owner":"ath31st","description":"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.","archived":false,"fork":false,"pushed_at":"2025-08-14T15:58:12.000Z","size":23998,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-14T17:36:56.568Z","etag":null,"topics":["docker","docker-compose","flyway","jacoco","java","jwt","material-ui","maven","nextjs15","nginx-proxy","postgresql","spring-boot","typescript","zustand"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ath31st.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-06-27T12:59:42.000Z","updated_at":"2025-08-14T15:58:16.000Z","dependencies_parsed_at":"2024-06-27T16:58:30.763Z","dependency_job_id":"0de052e5-8939-46fc-aa59-dd1cccbde439","html_url":"https://github.com/ath31st/window_calculator","commit_stats":null,"previous_names":["ath31st/window_calculator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ath31st/window_calculator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ath31st%2Fwindow_calculator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ath31st%2Fwindow_calculator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ath31st%2Fwindow_calculator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ath31st%2Fwindow_calculator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ath31st","download_url":"https://codeload.github.com/ath31st/window_calculator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ath31st%2Fwindow_calculator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31642689,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","flyway","jacoco","java","jwt","material-ui","maven","nextjs15","nginx-proxy","postgresql","spring-boot","typescript","zustand"],"created_at":"2024-11-13T21:23:25.264Z","updated_at":"2026-04-10T12:31:33.141Z","avatar_url":"https://github.com/ath31st.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Window calculator\n\nФулл-стек приложение для расчета стоимости работ по восстановлению элементов\nпластиковых/деревянных/металлических окон, а так же для расчета стоимости изготовления оконных\nсеток.\n\n---\n\n## Оглавление\n\n1. [Описание проекта](#описание-проекта)\n2. [Пример работы](#пример-работы)\n3. [Технологии](#технологии)\n4. [Установка](#установка)\n5. [Использование](#использование)\n6. [Архитектура проекта](#архитектура-проекта)\n7. [Документация API](#документация-api)\n8. [Тестирование](#тестирование)\n9. [Автор](#автор)\n10. [Лицензия](#лицензия)\n\n---\n\n## Описание проекта\n\nЭто фулл-стек приложение, предназначенное для расчета стоимости работ по восстановлению пластиковых,\nдеревянных и металлических окон, а также для расчета стоимости изготовления оконных сеток.\nПриложение предоставляет удобный интерфейс для ввода данных окон или сеток, а затем\nавтоматически рассчитывает стоимость на основе заданных параметров, таких как размеры, материалы и\nтип работы. Результаты расчета могут быть помещены в корзину и экспортированы в PDF файл. Так же,\nсуществует возможность администрировать пользователей, добавлять/удалять/редактировать новые товары\nи услуги.\n\n---\n\n## Пример работы\n\nВидео-демонстрация работы приложения:\n\n[Пример работы](https://github.com/user-attachments/assets/350725a0-a38e-4b7c-ad5d-d1d800267327)\n\n---\n\n## Технологии\n\nСписок основных технологий и инструментов, использованных в проекте:\n\n- Backend: Java, Spring Boot, Spring Security, Flyway, PostgreSQL, Maven.\n- Frontend: TypeScript, Next.js.\n- Дополнительные: Zustand, Material UI, JWT, Jacoco, Docker Compose, Nginx.\n\n---\n\n## Установка\n\nЭта часть проекта является приватной и имеет нюансы, связанные с установкой и настройкой.\n\n---\n\n## Использование\n\n1. Подготовьте конфигурационные файлы (.env, .env.prod).\n2. Запустите контейнеры приложения:\n    ```bash\n    cd window_calculator \u0026\u0026 docker-compose up -d\n    ```\n3. Откройте браузер и перейдите по адресу:\n    ```url\n    http://localhost:80\n    ```\n\n---\n\n## Архитектура проекта\n\nКраткое описание структуры проекта:\n\n- `/client` — папка с фронтенд-частью приложения:\n    - **`/public`** — публичная папка, содержит статические файлы.\n    - **`/src/`** — папка с кодом приложения.\n        - **`/app`** — папка со страницами приложения.\n        - **`/components`** — переиспользуемые компоненты (например, формы ввода, кнопки, модальные\n          окна).\n        - **`/constants`** — константы приложения.\n        - **`/hooks`** — кастомные хуки React для управления состоянием и логикой взаимодействия.\n        - **`/interceptors`** — интерсепторы для обработки HTTP-запросов.\n        - **`/providers`** — провайдеры для управления состоянием приложения.\n        - **`/services`** — сервисы для бизнес-логики приложения.\n        - **`/utils`** — вспомогательные функции и утилиты.\n        - **`/stores`** — состояние приложения с использованием Zustand (например, для хранения\n          данных о пользователе).\n        - **`/types`** — типы приложения.\n\n- `/server` — папка с бэкенд-частью приложения:\n    - **`src/main/java/sidim/doma/wc/`** — основной код приложения.\n        - **`/config`** — конфигурационные бины.\n        - **`/controller`** — контроллеры для обработки HTTP-запросов.\n        - **`/dto`** — DTO-классы для передачи данных между контроллерами и сервисами.\n        - **`/entity`** — сущности, отображающие таблицы в базе данных.\n        - **`/exception`** — классы исключений.\n        - **`/mapper`** — мапперы для преобразования объектов.\n        - **`/repository`** — репозитории для взаимодействия с базой данных.\n        - **`/service`** — сервисы, реализующие бизнес-логику.\n        - **`/util`** — вспомогательные классы.\n    - **`/resources`** — конфигурационные файлы, включая файл настроек базы данных и настройки\n      безопасности.\n        - **`/db.migration`** — миграции для Flyway, чтобы управлять изменениями в базе данных.\n\n- `compose.yaml` — композ-файл Docker Compose, который определяет конфигурацию контейнеров\n  приложения.\n    - **`/server/Dockerfile`** — Dockerfile для сборки образа сервера приложения.\n    - **`/client/Dockerfile`** — Dockerfile для сборки образа клиента приложения.\n\n---\n\n## Документация API\n\nОписание основных эндпоинтов API:\n\nВ процессе подготовки. В дальнейшем тут будет ссылка на OpenAPI-документацию.\n\n---\n\n## Тестирование\n\nИнструкция по запуску тестов:\n\n1. Установка зависимостей:\n    ```bash\n    cd server \u0026\u0026 mvn install\n    ```\n2. Запуск unit-тестов:\n    ```bash\n    mvn test\n    ```\n\n---\n\n## Автор\n\n- **Владимир Оленников**\n- [GitHub](https://github.com/ath31st) | [LinkedIn](https://www.linkedin.com/in/ath31st/)\n\n---\n\n## Лицензия\n\nЭтот проект лицензируется в соответствии с лицензией Apache License 2.0.\nПодробнее в файле [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fath31st%2Fwindow_calculator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fath31st%2Fwindow_calculator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fath31st%2Fwindow_calculator/lists"}