Meniu
Începe un proiect

Produs

Platformă de management școlar multi-organizație

O singură punere în funcțiune care servește mai multe școli și companii, fiecare văzând doar oamenii și înregistrările proprii. Modelul de permisiuni este partea care merită explicată, pentru că este cea care trebuie să reziste.

Stadiu: În dezvoltare activă.

Desen abstract cu rânduri și grupuri de blocuri de lățimi diferite, reprezentând clasele, grupele și materiile alocate lor.

Problema

O școală funcționează prin relații: care elev este în care grupă, care profesor predă care materie cărei grupe, care părinte este atașat cărui copil. Relațiile acestea se schimbă în fiecare trimestru și stau de obicei într-un fișier de calcul ținut de un singur om.

Un software pentru asta se construiește ușor greșit. Capcana este o bază unică ce lasă discret o școală să citească datele alteia, ceea ce se descoperă exact o dată și nu se iartă niciodată.

Cum funcționează

Platforma este multi-organizație. Fiecare înregistrare poartă organizația de care aparține, sub forma unui identificator, iar fiecare operație de API verifică apartenența apelantului înainte să returneze sau să scrie ceva. O interogare care nu își poate numi organizația nu rulează.

Deasupra stau entitățile de care are nevoie ziua: școli și companii, clase, grupe de clasă, elevi, părinți, profesori, materii, alocarea profesorilor la materii și a materiilor la grupe.

Ce acoperă API-ul

Listele sunt paginate, pentru că o școală cu două mii de părinți nu trebuie să încapă într-un singur răspuns.

  • Liste paginate de părinți, profesori și elevi
  • Gestionarea claselor și a grupelor de clasă
  • Alocarea materiilor la clase și la grupe
  • Alocarea profesorilor la materii, inclusiv mai mulți profesori pe aceeași materie
  • Interogările inverse: clase încă nealocate unei materii, profesori încă nealocați unei materii

De ce contează interogările inverse

Întrebarea pe care o pune un administrator în septembrie nu este „cine predă materia asta”. Este „ce materii nu au încă pe nimeni”. O platformă care răspunde doar la întrebarea pozitivă își trimite utilizatorii înapoi la fișierul de calcul ca să găsească golurile, așa că interogările inverse sunt puncte de API de sine stătătoare, nu un raport adăugat mai târziu.

Patru roluri în partea de sus, o verificare de permisiuni la mijloc și două seturi separate de date ale organizațiilor dedesubt, arătând că fiecare rol ajunge la date doar prin verificare.

Administrator
Profesor
Părinte
Elev
Verificarea permisiunilor în API
Datele școlii A
Datele școlii B
Modelul de permisiuni. Rolurile sunt pe organizație, iar fiecare citire pornește de la organizația apelantului, nu filtrează după aceea.

Arhitectură

Organizația în calea de acces

Identificatorul de organizație face parte din felul în care se ajunge la o înregistrare, nu este o coloană filtrată după aceea. Adăugarea unei școli este un rând; nu este o punere în funcțiune.

Verificări de permisiuni la granița API-ului

Fiecare operație verifică organizația și rolul apelantului înainte să atingă datele. Interfața reflectă starea aceea; nu o decide niciodată.

Cazurile negative primele

Testele care contează verifică ce se întâmplă când o înregistrare aparține altei organizații. O scurgere pică build-ul în loc să ajungă la un utilizator.

Tehnologii

PHP Laravel MySQL Redis React Next.js Docker

Spuneți-ne ce construiți.

Scrieți în engleză, franceză, română sau arabă. Fiecare mesaj primește un răspuns scris într-o zi lucrătoare.