docs: add PROJECT_KNOWLEDGE.md via ZeroAI
This commit is contained in:
@@ -0,0 +1,145 @@
|
|||||||
|
# PROJECT_KNOWLEDGE.md — Voda Landing (cherepovets-landing)
|
||||||
|
|
||||||
|
## Что это
|
||||||
|
Лендинг инженерной компании **"Вода и Тепло"** (Череповец). Ориентирован на управляющие компании (УК) и ТСЖ многоквартирных домов. Цель — генерация заявок на коммерческое предложение.
|
||||||
|
|
||||||
|
URL: **https://voda.zeroday.su**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Стек технологий
|
||||||
|
|
||||||
|
| Слой | Технология |
|
||||||
|
|------|-----------|
|
||||||
|
| Runtime | Node.js (LTS) |
|
||||||
|
| Web-фреймворк | Express 4 |
|
||||||
|
| БД | PostgreSQL (база `voda_landing`) |
|
||||||
|
| Авторизация | express-session + bcryptjs |
|
||||||
|
| Загрузка файлов | multer (до 10 МБ, jpg/jpeg/png/webp/gif) |
|
||||||
|
| Фронтенд | Vanilla HTML + CSS (без фреймворков) |
|
||||||
|
| Шрифты | Google Fonts — Inter |
|
||||||
|
| Процесс-менеджер | PM2 (имя процесса: `voda-landing`) |
|
||||||
|
| Reverse proxy | Nginx |
|
||||||
|
| SSL | Let's Encrypt (certbot) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Сервер и инфраструктура
|
||||||
|
|
||||||
|
- **Сервер**: dev.zeroday.su (MCP-коннектор: `dev`)
|
||||||
|
- **Домен**: voda.zeroday.su
|
||||||
|
- **Порт приложения**: 3006
|
||||||
|
- **Путь на сервере**: `/var/www/cherepovets-landing`
|
||||||
|
- **Nginx-конфиг**: `/etc/nginx/sites-available/voda.zeroday.su`
|
||||||
|
- **SSL-сертификат**: `/etc/letsencrypt/live/voda.zeroday.su/` (собственный, не wildcard)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Структура файлов
|
||||||
|
|
||||||
|
```
|
||||||
|
/var/www/cherepovets-landing/
|
||||||
|
├── server.js # Основной Express-сервер (PORT=3006)
|
||||||
|
├── package.json # Зависимости
|
||||||
|
├── public/
|
||||||
|
│ ├── index.html # Главная страница лендинга (~36 КБ)
|
||||||
|
│ ├── styles.css # Стили (~28 КБ)
|
||||||
|
│ ├── images/
|
||||||
|
│ │ └── hero-bg.png # Фоновое изображение hero-секции
|
||||||
|
│ └── uploads/ # Загруженные фото проектов (не в git)
|
||||||
|
└── admin/
|
||||||
|
└── index.html # Одностраничная админка
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## База данных
|
||||||
|
|
||||||
|
- **СУБД**: PostgreSQL
|
||||||
|
- **База**: `voda_landing`
|
||||||
|
- **Пользователь**: `postgres`
|
||||||
|
- **Хост**: localhost
|
||||||
|
- **Порт**: 5432
|
||||||
|
- **Пароль**: (не публикуется, стандартный для dev-окружения)
|
||||||
|
|
||||||
|
Данные о загруженных проектах хранятся в БД через multer + pg.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Переменные окружения / конфиг
|
||||||
|
|
||||||
|
```
|
||||||
|
PORT=3006
|
||||||
|
DB_USER=postgres
|
||||||
|
DB_HOST=localhost
|
||||||
|
DB_NAME=voda_landing
|
||||||
|
DB_PORT=5432
|
||||||
|
SESSION_SECRET=voda-landing-secret-<timestamp> # генерируется динамически при запуске
|
||||||
|
ADMIN_PASSWORD=admin # bcrypt-хеш, дефолтный пароль 'admin'
|
||||||
|
```
|
||||||
|
|
||||||
|
> ⚠️ Пароль БД и пароль админки хранятся в secrets-backup репозитории (admin/secrets-backup).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Nginx-конфигурация
|
||||||
|
|
||||||
|
```nginx
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name voda.zeroday.su;
|
||||||
|
return 301 https://$host$request_uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 443 ssl http2;
|
||||||
|
server_name voda.zeroday.su;
|
||||||
|
ssl_certificate /etc/letsencrypt/live/voda.zeroday.su/fullchain.pem;
|
||||||
|
ssl_certificate_key /etc/letsencrypt/live/voda.zeroday.su/privkey.pem;
|
||||||
|
# proxy_pass → http://127.0.0.1:3006
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## PM2
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pm2 list # Проверить статус (процесс: voda-landing)
|
||||||
|
pm2 restart voda-landing
|
||||||
|
pm2 logs voda-landing --lines 50
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Функциональность лендинга
|
||||||
|
|
||||||
|
### Секции страницы
|
||||||
|
1. **Top-bar** — адрес (Череповец), режим работы, email
|
||||||
|
2. **Навигация** — sticky, burger-меню на мобиле, телефон
|
||||||
|
3. **Hero** — заголовок, описание, CTA-кнопка, счётчики (12+ лет, 87+ объектов, 24+ партнёра)
|
||||||
|
4. **Услуги** — горизонтальная карусель на мобиле (4 услуги)
|
||||||
|
5. **Преимущества** — горизонтальная карусель на мобиле (6 пунктов)
|
||||||
|
6. **Портфолио** — горизонтальная карусель на мобиле (3 проекта)
|
||||||
|
7. **Форма обратной связи** / нижний CTA
|
||||||
|
8. **Footer** — контакты, © 2026
|
||||||
|
|
||||||
|
### Мобильная адаптация
|
||||||
|
- Breakpoints: <640px (mobile), 640-1024px (tablet), >1024px (desktop)
|
||||||
|
- Burger-меню вынесено за пределы `<nav>` (решение бага fixed внутри sticky)
|
||||||
|
- `touch-action: pan-x` на каруселях
|
||||||
|
- Hover-эффекты отключены на мобиле
|
||||||
|
|
||||||
|
### Админка
|
||||||
|
- URL: `/admin/`
|
||||||
|
- Авторизация через express-session + bcrypt
|
||||||
|
- Управление фото проектов (загрузка через multer)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Коллеги / стейкхолдеры
|
||||||
|
|
||||||
|
- **Владелец**: ffr (пользователь системы ZeroAI)
|
||||||
|
- **Компания**: "Вода и Тепло", Череповец, Вологодская обл.
|
||||||
|
- **Целевая аудитория**: УК (управляющие компании), ТСЖ, МКД
|
||||||
|
- **Gitea**: https://git.zeroday.su/admin/cherepovets-landing
|
||||||
Reference in New Issue
Block a user