feat: Add Next.js 15 glassmorphism frontend for DAARION MVP
This commit is contained in:
160
apps/web/README_WEB.md
Normal file
160
apps/web/README_WEB.md
Normal file
@@ -0,0 +1,160 @@
|
||||
# DAARION Web Frontend
|
||||
|
||||
Графічний інтерфейс для DAARION MVP на базі Next.js 15 з glassmorphism дизайном.
|
||||
|
||||
## 🚀 Швидкий старт
|
||||
|
||||
### Локальна розробка
|
||||
|
||||
```bash
|
||||
cd apps/web
|
||||
|
||||
# Встановити залежності
|
||||
npm install
|
||||
|
||||
# Запустити dev сервер
|
||||
npm run dev
|
||||
```
|
||||
|
||||
Відкрийте [http://localhost:3000](http://localhost:3000)
|
||||
|
||||
### Змінні середовища
|
||||
|
||||
Створіть `.env.local`:
|
||||
|
||||
```env
|
||||
# URL бекенду (для розробки)
|
||||
NEXT_PUBLIC_API_BASE_URL=http://localhost:8080
|
||||
|
||||
# Для продакшену залиште порожнім (same-origin)
|
||||
# NEXT_PUBLIC_API_BASE_URL=
|
||||
```
|
||||
|
||||
## 📁 Структура проекту
|
||||
|
||||
```
|
||||
apps/web/
|
||||
├── src/
|
||||
│ ├── app/ # Next.js App Router
|
||||
│ │ ├── page.tsx # Landing / Home
|
||||
│ │ ├── layout.tsx # Root layout
|
||||
│ │ ├── globals.css # Global styles
|
||||
│ │ ├── city/
|
||||
│ │ │ ├── page.tsx # City rooms list
|
||||
│ │ │ └── [slug]/
|
||||
│ │ │ └── page.tsx # Individual room
|
||||
│ │ └── secondme/
|
||||
│ │ └── page.tsx # Second Me profile
|
||||
│ ├── components/
|
||||
│ │ ├── Navigation.tsx # Header navigation
|
||||
│ │ ├── StatusIndicator.tsx # API health indicator
|
||||
│ │ └── Skeleton.tsx # Loading skeletons
|
||||
│ └── lib/
|
||||
│ ├── api.ts # API client
|
||||
│ └── utils.ts # Utility functions
|
||||
├── public/ # Static assets
|
||||
├── Dockerfile # Production container
|
||||
├── next.config.ts # Next.js config
|
||||
├── tailwind.config.ts # Tailwind config
|
||||
└── package.json
|
||||
```
|
||||
|
||||
## 🎨 Дизайн
|
||||
|
||||
### Glassmorphism стиль
|
||||
|
||||
- Темна тема за замовчуванням (`bg-slate-950`)
|
||||
- Напівпрозорі панелі з `backdrop-blur`
|
||||
- Градієнтні акценти (cyan → blue)
|
||||
- Анімовані hover-ефекти
|
||||
|
||||
### CSS класи
|
||||
|
||||
```css
|
||||
.glass-panel /* Базова скляна панель */
|
||||
.glass-panel-hover /* Панель з hover ефектом */
|
||||
.glass-card /* Картка з тінню */
|
||||
.text-gradient /* Градієнтний текст */
|
||||
.glow-accent /* Світіння акценту */
|
||||
```
|
||||
|
||||
## 🛣️ Роути
|
||||
|
||||
| Шлях | Опис |
|
||||
|------|------|
|
||||
| `/` | Landing page з features |
|
||||
| `/city` | Список кімнат міста |
|
||||
| `/city/[slug]` | Окрема кімната |
|
||||
| `/secondme` | Профіль Second Me |
|
||||
|
||||
## 🔌 API інтеграція
|
||||
|
||||
Всі виклики до API проходять через `/api/*`:
|
||||
|
||||
```typescript
|
||||
import { api } from '@/lib/api'
|
||||
|
||||
// Отримати кімнати
|
||||
const rooms = await api.getCityRooms()
|
||||
|
||||
// Отримати профіль Second Me
|
||||
const profile = await api.getSecondMeProfile()
|
||||
|
||||
// Перевірка здоров'я API
|
||||
const isHealthy = await api.checkHealth()
|
||||
```
|
||||
|
||||
## 🐳 Docker
|
||||
|
||||
### Збірка образу
|
||||
|
||||
```bash
|
||||
cd apps/web
|
||||
docker build -t daarion-web .
|
||||
```
|
||||
|
||||
### Запуск контейнера
|
||||
|
||||
```bash
|
||||
docker run -p 3000:3000 \
|
||||
-e NEXT_PUBLIC_API_BASE_URL= \
|
||||
daarion-web
|
||||
```
|
||||
|
||||
### Docker Compose
|
||||
|
||||
```yaml
|
||||
services:
|
||||
web:
|
||||
build: ./apps/web
|
||||
ports:
|
||||
- "3000:3000"
|
||||
environment:
|
||||
- NEXT_PUBLIC_API_BASE_URL=
|
||||
```
|
||||
|
||||
## 📱 Мобільна адаптація
|
||||
|
||||
- Responsive breakpoints: `sm:640px`, `md:768px`, `lg:1024px`
|
||||
- Mobile-first підхід
|
||||
- Бургер-меню для навігації на мобільних
|
||||
- Оптимізовані розміри тексту та відступів
|
||||
|
||||
## 🔧 Команди
|
||||
|
||||
```bash
|
||||
npm run dev # Development server
|
||||
npm run build # Production build
|
||||
npm run start # Start production server
|
||||
npm run lint # Run ESLint
|
||||
```
|
||||
|
||||
## 🔜 Roadmap
|
||||
|
||||
- [ ] Matrix/WebSocket інтеграція для чату
|
||||
- [ ] Авторизація (Passkey/OAuth)
|
||||
- [ ] Agent Console
|
||||
- [ ] Wallet/Governance екрани
|
||||
- [ ] PWA support
|
||||
- [ ] Dark/Light theme toggle
|
||||
|
||||
Reference in New Issue
Block a user