todrawn.com
Języki: Java, TypeScript
todrawn.com to pełnofunkcjonalna interaktywna tablica SaaS, zbudowana end-to-end z backendem w Java 21 i Spring Boot oraz frontendem w Next.js, React i TypeScript. Jest aktualnie wdrożona i uruchomiona w środowisku produkcyjnym na todrawn.com.
Sama kanwa jest renderowana za pomocą Konva, podczas gdy WebSockets przenoszą aktualizacje tablicy w czasie rzeczywistym między podłączonymi klientami. PostgreSQL przechowuje dane tablic i kont, a Redis wspiera części systemu wymagające szybkiego, krótkotrwałego stanu.
Architektura techniczna
- Backend (Spring Boot): Zbudowany w Java 21, z Spring Security obsługującym uwierzytelnianie i autoryzację API.
- Frontend (Next.js / React): Baza kodu TypeScript stylizowana za pomocą Tailwind CSS, z kanwą tablicy zaimplementowaną na podstawie Konva.
- Warstwa czasu rzeczywistego: WebSockets rozpowszechniają rysowanie i stan tablicy między klientami, a Redis jest używany obok PostgreSQL dla stanu, który nie powinien być w głównym magazynie danych.
- Dane i trwałość: PostgreSQL jest systemem głównym dla tablic, kont i powiązanych danych.
[ Next.js / React / Konva ] <--WebSocket--> [ Spring Boot API ]
↓
[ PostgreSQL ] [ Redis ]
Płatności i wdrażanie
Rozliczenia przebiegają przez Stripe, zintegrowane bezpośrednio z backendem Spring Boot. Dostarczanie i hosting są skonteneryzowane i zautomatyzowane:
- Płatności: Stripe obsługuje przetwarzanie subskrypcji i płatności dla SaaS.
- Konteneryzacja: Aplikacja jest pakowana za pomocą Docker dla spójnych kompilacji w różnych środowiskach.
- CI/CD: GitHub Actions automatyzuje potok kompilacji i wdrażania.
- Hosting: Backend działa na Google Cloud Run.
Użyte technologie
Java 21Spring BootNext.jsReactTypeScriptPostgreSQLRedisWebSocketsStripeDockerGoogle Cloud Run