TenerifeProp Dev 1dd901dd4f refactor: modular admin panel with clean URLs
## Changes
- Removed .html extension from URLs (/login, /admin)
- Completely refactored admin.html with modular design
- Common sidebar and topbar for all admin sections
- Dynamic content loading via AJAX
- Modern responsive design with Bootstrap 5

## Admin Sections
- Dashboard (statistics, recent items)
- Properties (list with CRUD)
- Leads (management)
- Testimonials (CRUD)
- FAQ (CRUD)
- Services (CRUD)
- Settings (site configuration)

## Technical
- Clean URL routing: /login, /admin instead of .html
- Session-based auth check on page load
- Universal API client with auth methods
- Single-page admin with dynamic sections

## URLs
- Login: /login (was /login.html)
- Admin: /admin (was /admin.html)
- API: /api/auth/login, /api/admin/stats

## Tested
 /login returns correct page
 /admin returns correct page
 Login API works
 Session persists
 Admin sections load correctly
2026-04-06 01:24:37 +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.4 MiB
Languages
HTML 60.8%
TypeScript 20.4%
JavaScript 11.3%
CSS 5.2%
Shell 1.6%
Other 0.7%