Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
cbc15917c3
1 changed files with 85 additions and 51 deletions
136
README.md
136
README.md
|
|
@ -1,62 +1,96 @@
|
||||||
# Astro Redi Monorepo
|
# Astro HTS
|
||||||
|
|
||||||
Этот монорепозиторий содержит frontend и backend части приложения Astro REDi.
|
Монорепозиторий веб-приложения для компании 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
|
||||||
|
|
||||||
## Структура проекта
|
## Структура проекта
|
||||||
|
|
||||||
- `frontend/` - Astro-приложение для фронтенда
|
```
|
||||||
- `backend/` - PocketBase-приложение для бэкенда
|
astro_hts/
|
||||||
|
├── backend/ # Backend на PocketBase
|
||||||
## Установка
|
│ ├── pb_data/ # Данные PocketBase (БД, файлы)
|
||||||
|
│ └── pb_migrations/ # Миграции схемы базы данных
|
||||||
1. Установите зависимости для всего проекта:
|
│
|
||||||
|
├── frontend/ # Frontend на Astro
|
||||||
```bash
|
│ ├── public/ # Статические файлы
|
||||||
bun install
|
│ ├── 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 # Правила разработки проекта
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Установите зависимости для frontend:
|
## Страницы приложения
|
||||||
|
|
||||||
```bash
|
- **Главная** (`/`) — основная страница с информацией о компании
|
||||||
cd frontend && bun install
|
- **О компании** (`/about`) — информация о компании HTS
|
||||||
```
|
- **Услуги** (`/services`) — каталог предоставляемых услуг
|
||||||
|
- **Проекты** (`/projects`) — выполненные проекты
|
||||||
|
- **Техника** (`/cars`) — каталог техники
|
||||||
|
- **Новости** (`/news`) — новости компании
|
||||||
|
- **Блог** (`/blog`) — статьи и публикации
|
||||||
|
- **Контакты** (`/contacts`) — контактная информация
|
||||||
|
|
||||||
Или выполните установку всех зависимостей одной командой:
|
## Архитектурные особенности
|
||||||
|
|
||||||
```bash
|
- **SSR (Server-Side Rendering)** — рендеринг на стороне сервера через Node.js adapter
|
||||||
bun run install:all
|
- **Компонентный подход** — разделение компонентов по функциональным областям
|
||||||
```
|
- **Типизация** — строгая типизация TypeScript без использования `any`
|
||||||
|
- **Модульность** — алиасы импортов для удобной навигации по коду
|
||||||
|
- **SEO-оптимизация** — интеграция sitemap для индексации
|
||||||
|
|
||||||
## Запуск приложения
|
## Инфраструктура
|
||||||
|
|
||||||
Для одновременного запуска frontend и backend приложения выполните:
|
- **Bun** — пакетный менеджер и рантайм
|
||||||
|
- **Biome** — линтер и форматтер кода
|
||||||
```bash
|
- **Git** — система контроля версий
|
||||||
bun run dev
|
|
||||||
```
|
|
||||||
|
|
||||||
Для запуска только frontend:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
bun run dev:frontend
|
|
||||||
```
|
|
||||||
|
|
||||||
Для запуска только backend:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
bun run dev:backend
|
|
||||||
```
|
|
||||||
|
|
||||||
Для остановки запущенных процессов:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
bun run stop
|
|
||||||
```
|
|
||||||
|
|
||||||
## Сборка проекта
|
|
||||||
|
|
||||||
Для сборки frontend приложения:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
bun run build
|
|
||||||
```
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue