Skip to content

Anda4ka/oselaNEW

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

єОселя - Іпотечний калькулятор

Калькулятор державної іпотечної програми забезпечення житлом "єОселя"

Технології

  • Next.js 14 - React фреймворк з App Router
  • TypeScript - Типізація
  • Tailwind CSS - Стилізація
  • Prisma ORM - Робота з базою даних
  • SQLite - Файлова база даних
  • next-intl - Мультиязичність (Українська, Російська, Англійська)

Вимоги

  • Node.js 18+
  • npm або yarn

Встановлення та запуск

Локально

  1. Встановити залежності:
npm install
  1. Налаштувати змінні середовища:
cp .env.example .env

Редагувати .env:

DATABASE_URL="file:./dev.db"
ADMIN_PASSWORD="admin123"
NEXT_PUBLIC_APP_URL="http://localhost:3000"
NEXTAUTH_SECRET="your-secret-key-here"
NEXTAUTH_URL="http://localhost:3000"
  1. Ініціалізувати базу даних:
npx prisma migrate dev
npm run prisma:seed
  1. Запустити розробницький сервер:
npm run dev

Додаток буде доступний за адресою http://localhost:3000

З Docker

  1. Зібрати Docker образ:
docker build -t eoselia .
  1. Запустити контейнер:
docker run -d -p 3000:3000 --name eoselia eoselia
  1. Або використати docker-compose:
docker-compose up -d

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

eoselia-calculator/
├── app/                    # Next.js App Router
│   ├── [locale]/          # Мультиязичність
│   │   ├── calculator/    # Калькулятор
│   │   └── admin/         # Адмін-панель
│   └── api/               # API endpoints
├── components/            # React компоненти
│   ├── calculator/        # Компоненти калькулятора
│   └── admin/             # Компоненти адмін-панелі
├── lib/                   # Утиліти та бізнес-логіка
│   ├── calculator/        # Логіка калькулятора
│   └── prisma.ts          # Клієнт Prisma
├── prisma/                # База даних
│   ├── schema.prisma      # Схема БД
│   └── seed.ts            # Початкові дані
├── locales/               # Переклади
│   ├── uk.json            # Українська
│   ├── ru.json            # Російська
│   └── en.json            # Англійська
└── public/                # Статичні файли

Використання калькулятора

Основні функції

  1. Вибір категорії користувача - Оберіть категорію до якої належите

    • Військовослужбовець за контрактом (3%)
    • Медичний працівник (3%)
    • Педагог (3%)
    • Науковець (3%)
    • Внутрішньо переміщена особа (7%)
    • Ветеран війни (7%)
    • Інший громадянин (7%)
  2. Сімейні дані - Вкажіть ваш вік та розмір родини

  3. Параметри житла - Введіть дані про об'єкт нерухомості

    • Тип: квартира або будинок
    • Площа: загальна площа в м²
    • Вартість: загальна вартість житла
    • Вік будинку: років від введення в експлуатацію
  4. Параметри кредиту - Вкажіть бажаний термін кредиту (1-20 років)

Результати розрахунку

Після натискання кнопки "Розрахувати" ви отримаєте:

  • Аналіз площі (нормативна, фактична, надлишок)
  • Аналіз вартості (гранична, фактична, перевищення)
  • Фінансову структуру (початковий внесок, сума кредиту)
  • Щомісячні платежі (перші 10 років, наступні роки)
  • Загальну суму виплат

Адмін-панель

Вхід

  • URL: http://localhost:3000/uk/admin
  • Логін: admin
  • Пароль: змінний в .env (за замовчуванням admin123)

Налаштування

  1. Налаштування кредиту - Зміна відсоткових ставок та лімітів

    • Ставка періоду 1 (перші 10 років)
    • Ставка періоду 2 (наступні роки)
    • Мін/макс сума кредиту
    • Початковий внесок
  2. Регіональні ціни - Редагування цін за м² по регіонах

    • Автоматично оновлюються з Мінрегіону
    • Вручну можна коригувати

Ліміти та обмеження

Вік будинку

  • 3 роки - для більшості категорій
  • 10 років - для ВПО та пільгових категорій у прифронтових регіонах

Нормативна площа

  • Квартира: 52,5 м² для 1-2 осіб, +21 м² на кожного наступного, максимум 115,5 м²
  • Будинок: 62,5 м² для 1-2 осіб, +21 м² на кожного наступного, максимум 125,5 м²

Перевищення

  • Площі: до 10% (тільки для житла до 3 років)
  • Ціни: до 10% від граничної вартості

Ліміти кредиту

  • Мінімум: 200 000 грн
  • Максимум: 5 000 000 грн

API

POST /api/calculator

Розрахунок іпотеки.

Тіло запиту:

{
  "category": "military",
  "age": 30,
  "familySize": 3,
  "propertyType": "apartment",
  "region": "Kyiv",
  "settlementType": "major",
  "area": 75,
  "totalCost": 2500000,
  "buildingAge": 2,
  "loanTerm": 20
}

Відповідь:

{
  "success": true,
  "normativeArea": 73.5,
  "actualArea": 75,
  "downPayment": 550000,
  "loanAmount": 1950000,
  "monthlyPayment1": 10880.50,
  "monthlyPayment2": 12150.20,
  "totalInterest": 950000,
  "totalPayment": 3450000
}

Деpолоймент

На свій сервер

  1. Встановіть Node.js 18+
  2. Клонуйте репозиторій
  3. Налаштуйте змінні середовища
  4. Запустіть npm run build
  5. Запустіть npm start

З Docker

docker build -t eoselia .
docker run -d -p 3000:3000 --name eoselia -e ADMIN_PASSWORD=your-password eoselia

Ліцензія

MIT

Зв'язок

Офіційний сайт програми: eoselia.diia.gov.ua

Технічна документація

Детальна документація та формули розрахунків дивіться в doc.md

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors