🚧 Projekt w fazie rozwoju

StoryForge

Fullstack'owa platforma do pisania wspierana przez AI

Monorepo Next.js 16 + NestJS 11 + PostgreSQL — nowoczesne praktyki, TypeScript strict, CI/CD, Docker, testy automatyczne.

Kod źródłowy dostępny na życzenie

Wypróbuj aplikację

Stack technologiczny

Nowoczesne technologie i sprawdzone wzorce architektoniczne

Frontend
  • Next.js 16 (App Router)
  • React 19
  • TypeScript 5 (strict)
  • Tailwind CSS v4
  • shadcn/ui + Radix UI
  • TanStack React Query v5
  • Zustand v5
  • next-intl (PL/EN)
  • @dnd-kit (drag & drop)
  • AI SDK gateway (Gemini)
  • Sentry
Backend
  • NestJS 11
  • TypeORM
  • PostgreSQL 16
  • pgvector (wyszukiwanie wektorowe)
  • JWT + Passport.js
  • bcrypt
  • class-validator
  • Swagger / OpenAPI
  • Sentry
  • Jest 30 + Supertest (87 unit + 75 E2E testów, ~56% pokrycia)
Infrastruktura
  • Turborepo (monorepo)
  • Docker (multi-stage builds)
  • GitHub Actions CI/CD
  • Caddy (reverse proxy, auto-TLS)
  • VPS deployment
  • GHCR (container registry)
  • Shared packages (ESLint, TS, Prettier, Sentry)

Zaimplementowane funkcjonalności

Działające funkcje dostępne w aktualnej wersji aplikacji

Uwierzytelnianie JWT

Rejestracja, logowanie, tokeny JWT, hashowanie haseł z bcrypt.

Zarządzanie książkami

CRUD, publikowanie/cofanie, statusy, gatunki literackie.

Edytor rozdziałów

Auto-save co 2s, licznik słów, status zapisu w czasie rzeczywistym.

Drag & drop

Zmiana kolejności rozdziałów z optymistycznym UI (@dnd-kit).

Dwujęzyczność

Pełna obsługa PL/EN z next-intl, automatyczna detekcja.

Biblioteka publiczna

Przeglądanie opublikowanych książek bez konieczności logowania.

Kontrola dostępu

Ownership validation, OptionalJwtAuthGuard, zabezpieczenia endpointów.

Swagger / API Docs

Interaktywna dokumentacja API z autoryzacjÄ… Bearer token.

Testy automatyczne

87 unit + 75 E2E testów, ~56% pokrycia kodu w backendzie.

Monitoring błędów

Sentry z profilowaniem wydajności i breadcrumbs we frontendzie i backendzie.

Baza wektorowa (pgvector)

Wyszukiwanie semantyczne z indeksem HNSW i embeddingami 768-wymiarowymi.

RAG Pipeline

Chunkowanie tekstu, generowanie embeddingów, wyszukiwanie kontekstu całej książki.

Integracja z LLM

Google Gemini (AI SDK gateway) w warstwie BFF, backend bez zależności AI.

Streaming AI

Odpowiedzi LLM w czasie rzeczywistym przez Server-Sent Events.

Architektura systemu

Przejrzysta separacja odpowiedzialności i wzorzec BFF

Przeglądarka ──► Frontend (Next.js, :3000)
                   ├── Komponenty UI (React)
                   └── Warstwa AI BFF (app/api/ai/*) ──► Gemini / OpenAI
                              │
                              â–¼
                 Backend (NestJS, :3001)  ──► PostgreSQL + pgvector (:5432)
                 CRUD: Książki, Rozdziały, Chunki, Autoryzacja

Kluczowe decyzje

  • BFF pattern — logika AI we frontendzie (Vercel AI SDK), backend to czysty CRUD bez zależnoÅ›ci od LLM
  • Monorepo z Turborepo — wspólne paczki (ESLint, TypeScript, Prettier, Sentry), zoptymalizowane buildy
  • Docker multi-stage builds — non-root użytkownik, health checks, zoptymalizowane warstwy
  • Caddy — auto-HTTPS, reverse proxy, security headers, przekierowanie www

Planowane funkcjonalności

Kolejne kroki w rozwoju projektu

  • W planachAnaliza stylu tekstu
  • W planachEdytor WYSIWYG (Tiptap / Lexical)
  • W planachMigracje bazy danych (produkcja)

StoryForge jest projektem w aktywnej fazie rozwoju. Aplikacja może zawierać błędy, a część funkcjonalności jest jeszcze w trakcie implementacji. Projekt służy jako demonstracja umiejętności technicznych i podejścia do tworzenia oprogramowania.