6.1 KiB
6.1 KiB
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 — система контроля версий