Files
blood-brain-barrier/CLAUDE.md
Mikhail Kilin cc0bdedd88 asdasd
2026-03-17 16:22:13 +03:00

71 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Blood Brain Barrier
Веб-приложение для хранения текстовых записей. Пользователь вводит текст через textarea, сохраняет в PostgreSQL, просматривает список всех записей с возможностью удаления и копирования.
## Стек
- **Frontend:** React + TypeScript + Vite
- **Backend:** Rust (Axum + SQLx)
- **БД:** PostgreSQL
- **Async runtime:** Tokio
## Структура проекта
```
blood-brain-barrier/
├── frontend/ # React-приложение (Vite)
│ ├── src/
│ │ ├── App.tsx # Основной компонент: textarea + список записей
│ │ ├── api.ts # Функции для запросов к API
│ │ └── main.tsx
│ └── package.json
├── backend/ # Rust API (Axum)
│ ├── src/
│ │ ├── main.rs # Точка входа, подключение к БД, CORS, запуск сервера
│ │ ├── db.rs # Подключение к PostgreSQL, init_db
│ │ └── routes.rs # Хендлеры API
│ └── Cargo.toml
├── docker-compose.yml # PostgreSQL
└── CLAUDE.md
```
## База данных
Одна таблица `entries`:
```sql
CREATE TABLE entries (
id SERIAL PRIMARY KEY,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
content TEXT NOT NULL
);
```
## API
| Метод | Путь | Описание |
|--------|------------------|-------------------------|
| GET | /api/entries | Получить все записи |
| POST | /api/entries | Создать запись |
| DELETE | /api/entries/:id | Удалить запись по id |
| GET | /api/entries/:id/content | Получить контент записи (plain text) |
## Frontend
- Сверху: большая `<textarea>` + кнопка "Создать"
- Ниже: список всех записей (новые сверху), у каждой кнопки "Удалить" и "Копировать"
- Копирование — через `navigator.clipboard.writeText()`
## Команды
```bash
# Frontend
cd frontend && npm run dev
# Backend
cd backend && cargo run
# PostgreSQL
docker-compose up -d
```