Калькулятор державної іпотечної програми забезпечення житлом "єОселя"
- Next.js 14 - React фреймворк з App Router
- TypeScript - Типізація
- Tailwind CSS - Стилізація
- Prisma ORM - Робота з базою даних
- SQLite - Файлова база даних
- next-intl - Мультиязичність (Українська, Російська, Англійська)
- Node.js 18+
- npm або yarn
- Встановити залежності:
npm install- Налаштувати змінні середовища:
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"
- Ініціалізувати базу даних:
npx prisma migrate dev
npm run prisma:seed- Запустити розробницький сервер:
npm run devДодаток буде доступний за адресою http://localhost:3000
- Зібрати Docker образ:
docker build -t eoselia .- Запустити контейнер:
docker run -d -p 3000:3000 --name eoselia eoselia- Або використати docker-compose:
docker-compose up -deoselia-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/ # Статичні файли
-
Вибір категорії користувача - Оберіть категорію до якої належите
- Військовослужбовець за контрактом (3%)
- Медичний працівник (3%)
- Педагог (3%)
- Науковець (3%)
- Внутрішньо переміщена особа (7%)
- Ветеран війни (7%)
- Інший громадянин (7%)
-
Сімейні дані - Вкажіть ваш вік та розмір родини
-
Параметри житла - Введіть дані про об'єкт нерухомості
- Тип: квартира або будинок
- Площа: загальна площа в м²
- Вартість: загальна вартість житла
- Вік будинку: років від введення в експлуатацію
-
Параметри кредиту - Вкажіть бажаний термін кредиту (1-20 років)
Після натискання кнопки "Розрахувати" ви отримаєте:
- Аналіз площі (нормативна, фактична, надлишок)
- Аналіз вартості (гранична, фактична, перевищення)
- Фінансову структуру (початковий внесок, сума кредиту)
- Щомісячні платежі (перші 10 років, наступні роки)
- Загальну суму виплат
- URL:
http://localhost:3000/uk/admin - Логін:
admin - Пароль: змінний в
.env(за замовчуваннямadmin123)
-
Налаштування кредиту - Зміна відсоткових ставок та лімітів
- Ставка періоду 1 (перші 10 років)
- Ставка періоду 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 грн
Розрахунок іпотеки.
Тіло запиту:
{
"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
}- Встановіть Node.js 18+
- Клонуйте репозиторій
- Налаштуйте змінні середовища
- Запустіть
npm run build - Запустіть
npm start
docker build -t eoselia .
docker run -d -p 3000:3000 --name eoselia -e ADMIN_PASSWORD=your-password eoseliaMIT
Офіційний сайт програми: eoselia.diia.gov.ua
Детальна документація та формули розрахунків дивіться в doc.md