astro_redi/README.md

6.1 KiB
Raw Blame History

Astro HTS

Монорепозиторий веб-приложения для компании HTS, специализирующейся на ремонте и обслуживании грузовиков и спецтехники.

Описание проекта

Проект представляет собой полнофункциональное веб-приложение с разделением на frontend и backend части:

  • Frontend: Современное SSR-приложение на Astro с интеграцией SolidJS для интерактивных компонентов
  • Backend: PocketBase — легковесная backend-платформа для управления данными и аутентификации

Технологический стек

Frontend

  • Astro — фреймворк для генерации статических и серверных сайтов
  • SolidJS — реактивная библиотека для интерактивных компонентов
  • Tailwind CSS — утилитарный CSS-фреймворк
  • TypeScript — типизация JavaScript
  • PocketBase SDK — клиент для взаимодействия с backend
  • Astro Icon — работа с иконками
  • Nanostores — легковесное управление состоянием

Backend

  • PocketBase — backend-решение с реальной базой данных и API

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

astro_hts/
├── backend/                    # Backend на PocketBase
│   ├── pb_data/               # Данные PocketBase (БД, файлы)
│   └── pb_migrations/         # Миграции схемы базы данных
│
├── frontend/                  # Frontend на Astro
│   ├── public/                # Статические файлы
│   ├── src/
│   │   ├── assets/           # Изображения, шрифты и другие ассеты
│   │   ├── components/       # UI-компоненты
│   │   │   ├── about/        # Компоненты страницы "О компании"
│   │   │   ├── base/         # Базовые компоненты
│   │   │   ├── blog/         # Компоненты блога
│   │   │   ├── cars/         # Компоненты каталога техники
│   │   │   ├── contacts/     # Компоненты страницы контактов
│   │   │   ├── home/         # Компоненты главной страницы
│   │   │   ├── layout/       # Компоненты макета (header, footer)
│   │   │   ├── news/         # Компоненты новостей
│   │   │   ├── projects/     # Компоненты проектов
│   │   │   └── services/     # Компоненты услуг
│   │   ├── constants/        # Константы приложения
│   │   ├── content/          # Контентные коллекции
│   │   ├── icons/            # Иконки приложения
│   │   ├── layouts/          # Макеты страниц
│   │   ├── lib/              # Утилиты и вспомогательные функции
│   │   ├── pages/            # Страницы приложения
│   │   │   ├── api/          # API endpoints
│   │   │   ├── blog/         # Страницы блога
│   │   │   └── news/         # Страницы новостей
│   │   ├── stores/           # Хранилища состояния (Nanostores)
│   │   ├── content.config.js # Конфигурация контентных коллекций
│   │   ├── env.d.ts          # TypeScript декларации для окружения
│   │   └── globalInterfaces.ts # Глобальные TypeScript интерфейсы
│   ├── astro.config.mjs      # Конфигурация Astro
│   ├── tailwind.config.mjs   # Конфигурация Tailwind CSS
│   └── tsconfig.json         # Конфигурация TypeScript
│
├── scripts/                   # Скрипты для разработки и сборки
│   └── dev-server.js         # Скрипт запуска frontend и backend
│
├── package.json              # Корневой package.json
└── QWEN.md                   # Правила разработки проекта

Страницы приложения

  • Главная (/) — основная страница с информацией о компании
  • О компании (/about) — информация о компании HTS
  • Услуги (/services) — каталог предоставляемых услуг
  • Проекты (/projects) — выполненные проекты
  • Техника (/cars) — каталог техники
  • Новости (/news) — новости компании
  • Блог (/blog) — статьи и публикации
  • Контакты (/contacts) — контактная информация

Архитектурные особенности

  • SSR (Server-Side Rendering) — рендеринг на стороне сервера через Node.js adapter
  • Компонентный подход — разделение компонентов по функциональным областям
  • Типизация — строгая типизация TypeScript без использования any
  • Модульность — алиасы импортов для удобной навигации по коду
  • SEO-оптимизация — интеграция sitemap для индексации

Инфраструктура

  • Bun — пакетный менеджер и рантайм
  • Biome — линтер и форматтер кода
  • Git — система контроля версий