Wróć do wszystkich projektów

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