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
01User mutation
02Convex service
03Data update
04Reactive 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
01Frontend-ul folosește Next
02Backend-ul Convex urmează o structură orientată pe servicii
03Comunicarea î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ă.
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
Backend Convex orientat pe servicii, cu module izolate logic (task, user, team, comment, notification) și definiții tipizate de evenimente
5 tabele de bază de date cu peste 10 indexuri alese cu grijă, inclusiv indexuri compuse pentru interogări eficiente de apartenență
Logică de ștergere în cascadă cu curățare între servicii - reguli explicite la nivel de aplicație, vizibile și testabile
Sistem de notificări live pentru atribuiri de sarcini, completări și comentarii, folosind comunicare event-driven inline în cadrul mutațiilor
Autentificare prin Convex Auth cu email/parolă și GitHub ca furnizor
O soluție de limitare a ratei de cereri pregătită pentru producție, care implementează algoritmii Fixed Window Counter și Sliding Window Log de la zero, cu backend-uri de stocare interschimbabile, configurare per client și teste care demonstrează exact unde dă greș fixed window.
O platformă e-commerce complet modulară, construită ca monorepo Turborepo cu un backend Fastify, un storefront Astro (insule React), un panou de administrare React + Vite și trei pachete partajate - cu RBAC dinamic, auto-înregistrare a rutelor bazată pe convenții și procesare de job-uri în fundal.
Controlul confidențialității
Analiză opțională
Acest portofoliu folosește Google Analytics doar după ce îți dai acordul. Înregistrează date agregate despre navigare și performanță, niciodată conținutul formularului de contact sau detalii de cont. Refuzul nu schimbă funcționarea site-ului.