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

2.4 KiB
Raw Blame History

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:

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()

Команды

# Frontend
cd frontend && npm run dev

# Backend
cd backend && cargo run

# PostgreSQL
docker-compose up -d