Studiu de caz / 04

TaskFlow - Manager Colaborativ de Sarcini în Timp Real

O aplicație colaborativă de management al sarcinilor cu echipe, sincronizare în timp real, notificări live și control al accesului bazat pe roluri - construită cu Next.js 15 și Convex pentru a explora subscripțiile reactive la baza de date și pattern-urile de comunicare event-driven.

Statut
Proiect selectat
Contextul sistemului
TypeScript, Next.js, React, Convex
Sursă
Repository public

01 / Comportamentul sistemului

Dovadă interactivă

Un mecanism tehnic specific proiectului, bazat pe arhitectura și contextul de implementare înregistrate.

Dovadă interactivăTaskFlow - Manager Colaborativ de Sarcini în Timp Real
User mutation
Convex service
Data update
Reactive query
Client A
Client B
Client C

Context și intenție

TaskFlow este o aplicație colaborativă de management al sarcinilor concepută ca o explorare aprofundată a capabilităților real-time ale Convex. Fiecare apel useQuery este o subscripție live care re-randează automat când datele se schimbă - fără cod WebSocket, fără pub/sub, fără invalidare de cache.

Backend-ul Convex este organizat ca module de servicii izolate logic cu granițe clare: taskService (CRUD, tranziții de stare, filtrare), userService (profiluri, validare unicitate email), teamService (management echipe, roluri de membri, ștergeri în cascadă), commentService (comentarii ierarhice per sarcină), notificationService (alerte pentru atribuiri și completări), și un eventBus tipizat pentru comunicarea între servicii.

03 / Înregistrarea arhitecturii

Arhitectură

O interpretare structurată a arhitecturii înregistrate pentru acest proiect.

Înregistrarea arhitecturiiTaskFlow - Manager Colaborativ de Sarcini în Timp Real
Frontend-ul folosește Next
Backend-ul Convex urmează o structură orientată pe servicii
Comunicarea între servicii are loc inline în cadrul mutațiilor
Citește înregistrarea completă a arhitecturii

Frontend-ul folosește Next.js 15 cu App Router. Fiecare componentă care necesită date folosește hook-ul useQuery din Convex, care creează o subscripție la datele respective - când orice mutație modifică tabelele relevante, query-ul se reevaluează pe server și transmite noul rezultat fiecărui client conectat.

Backend-ul Convex urmează o structură orientată pe servicii: fiecare modul de serviciu (task, user, team, comment, notification) își exportă propriile tipuri și helperi privați, iar fișierele publice reexportă totul ca o fațadă pentru frontend.

Comunicarea între servicii are loc inline în cadrul mutațiilor - când o sarcină este atribuită, mutația verifică dacă persoana atribuită diferă de creator și inserează direct o notificare. Query-ul useQuery al serviciului de notificări o preia instantaneu.

Cum este structurat sistemul

Schema definește cinci tabele cu indexuri compuse alese cu grijă - indexul compus teamMembers(teamId, userId) este esențial pentru verificarea apartenenței la echipă, care altfel ar scana întregul tabel.

Regulile de business includ ștergeri în cascadă cu curățare între servicii (ștergerea unei echipe elimină toți membrii, apoi sarcinile, apoi echipa în sine), validare de unicitate a emailului la nivel de mutație și verificări de dependență înainte de operațiuni distructive.

05 / Aspecte selectate

Note de implementare selectate

Deciziile și fluxurile cu cea mai mare valoare explicativă.

  1. Sincronizare în timp real prin query-uri reactive Convex - actualizările sarcinilor apar pe toți clienții conectați în milisecunde, fără nicio linie de cod WebSocket sau invalidare de cache
  2. Backend Convex orientat pe servicii, cu module izolate logic (task, user, team, comment, notification) și definiții tipizate de evenimente
  3. 5 tabele de bază de date cu peste 10 indexuri alese cu grijă, inclusiv indexuri compuse pentru interogări eficiente de apartenență
  4. Logică de ștergere în cascadă cu curățare între servicii - reguli explicite la nivel de aplicație, vizibile și testabile
  5. Sistem de notificări live pentru atribuiri de sarcini, completări și comentarii, folosind comunicare event-driven inline în cadrul mutațiilor
  6. Autentificare prin Convex Auth cu email/parolă și GitHub ca furnizor

06 / Metrici susținute

Înregistrarea verificată a proiectului

Servicii Real-Time
5
Indexuri de Bază de Date
10+
Cod WebSocket Scris
0 linii
Furnizori de Autentificare
2

Tehnologie în context

TypeScript, Next.js, React, Convex, Convex Auth, Tailwind CSS, Radix UI

Vezi repository-ul sursă