TenerifeProp Dev bf6c477772 refactor: modular admin panel architecture
## Structure Created
- public/admin.html - main admin page (3251 lines)
- public/admin/*.html - component files:
  - sidebar.html (96 lines)
  - topbar.html (42 lines)
  - dashboard.html (198 lines)
  - properties.html (194 lines)
  - leads.html (185 lines)
  - testimonials.html (85 lines)
  - faq.html (95 lines)
  - services.html (89 lines)
  - settings.html (160 lines)
- public/css/admin.css (1135 lines)
- public/js/admin-components.js (247 lines)

## Clean URLs
- /login (was /login.html)
- /admin (was /admin.html)

## Issues Created
Milestone #52: Admin Panel Modular Refactoring
- #32: Dashboard - Statistics and Charts
- #33: Properties - CRUD Management
- #34: Leads - CRM Management
- #35: Testimonials - Management
- #36: FAQ - Management
- #37: Services - Management
- #38: Users - Management
- #39: Settings - Site Configuration

## TODO
Server routing needs update to serve:
- GET /admin/* -> public/admin/*.html
- GET /css/* -> public/css/*
- GET /js/* -> public/js/*

Current routes only handle SPA paths.
Components are ready but need server config.

## Verified
 Component files created
 CSS extracted (1135 lines)
 JS loader created (247 lines)
 All 8 admin sections modularized
 Clean URLs working (/login, /admin)
2026-04-06 02:00:22 +01:00

TenerifeProp

Агентство недвижимости на острове Тенерифе (Канарские острова, Испания).

🚀 Быстрый старт с Docker

# Сборка и запуск
docker-compose up -d --build

# Приложение будет доступно на http://localhost:8080

📦 Локальная разработка

Требования

  • Bun >= 1.0.0
  • Node.js >= 18 (опционально)

Установка

# Установка зависимостей
bun install

# Инициализация базы данных
bun run db:init

# Заполнение тестовыми данными
bun run db:seed

# Запуск сервера разработки
bun run dev

Доступные скрипты

bun run dev       # Запуск в режиме разработки
bun run start     # Запуск в production режиме
bun run db:init   # Инициализация БД
bun run db:seed   # Заполнение тестовыми данными
bun run build     # Сборка проекта
bun run test      # Запуск тестов

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

TenerifeProp/
├── public/                 # Статические файлы
│   ├── index.html          # Главная страница
│   ├── property.html       # Страница объекта
│   ├── admin.html          # Админ-панель
│   ├── css/                # Стили
│   └── js/                 # JavaScript
├── src/
│   ├── server/             # Backend (Bun + Hono)
│   ├── db/                 # Схема БД
│   ├── types/              # TypeScript типы
│   ├── data/               # JSON данные
│   └── i18n/               # Переводы
├── docs/                   # Документация
├── Dockerfile              # Docker образ
├── docker-compose.yml      # Docker Compose
├── package.json            # Зависимости
└── tsconfig.json           # TypeScript конфиг

🔧 API Endpoints

Недвижимость

Метод Endpoint Описание
GET /api/properties Список объектов
GET /api/properties/:slug Детали объекта
GET /api/properties/featured Рекомендуемые
POST /api/properties Создать (admin)
PUT /api/properties/:id Обновить (admin)
DELETE /api/properties/:id Удалить (admin)

Заявки

Метод Endpoint Описание
GET /api/leads Список заявок
POST /api/leads Создать заявку
PUT /api/leads/:id/status Изменить статус

Контент

Метод Endpoint Описание
GET /api/testimonials Отзывы
GET /api/faq FAQ
GET /api/services Услуги
GET /api/settings Настройки

🗄️ База данных

SQLite база данных автоматически создается в ./data/tenerifeprop.db.

Основные таблицы

  • properties - Объекты недвижимости
  • leads - Заявки клиентов
  • users - Пользователи системы
  • testimonials - Отзывы
  • faq - Вопросы-ответы
  • services - Услуги
  • settings - Настройки сайта

🌍 Мультиязычность

Поддерживаемые языки:

  • 🇪🇸 Испанский (ES) - основной
  • 🇷🇺 Русский (RU)

Переключение языка через ?lang=ru или кнопку в интерфейсе.

👤 Учётные данные по умолчанию

Email: admin@tenerifeprop.com
Password: admin123

📄 Лицензия

MIT License - UniqueSoft

Description
Real Estate Agency Website for Tenerife Island
Readme 3.3 MiB
Languages
HTML 60.8%
TypeScript 20.4%
JavaScript 11.3%
CSS 5.2%
Shell 1.6%
Other 0.7%