Plan implementacije backend-a¶
Ovaj plan predlaže redosled izrade backend sistema. Cilj je da se prvo napravi stabilan vertikalni tok od uređaja do baze, zatim administracija, pa obračun i korisnički prikaz.
Faza 1: Osnova projekta¶
Uraditi:
- izabrati backend framework,
- podesiti bazu podataka,
- definisati migracije ili schema modele,
- postaviti konfiguraciju okruženja,
- dodati logging,
- dodati osnovni health endpoint,
- dodati testnu infrastrukturu.
Izlaz:
- backend se pokreće lokalno,
- postoji health check,
- baza je dostupna,
- testovi mogu da se pokrenu.
Faza 2: Registar uređaja i provisioning¶
Uraditi:
- model
devices, - kreiranje uređaja iz admin strane ili seed skripte,
- claim code,
- bootstrap endpoint,
- izdavanje uređajskog tokena,
- čuvanje token hash-a,
- osnovna konfiguracija uređaja.
Izlaz:
- uređaj može prvi put da se registruje,
- dobija token,
- dobija početnu konfiguraciju.
Faza 3: Telemetrija¶
Uraditi:
- endpoint za telemetriju,
- validaciju tokena,
- schema validaciju,
- deduplikaciju po
device_id + seq, - čuvanje sirovog payload-a,
- normalizovana merenja,
- status odgovora uređaju.
Izlaz:
- uređaj šalje merenja,
- backend ih čuva,
- duplikati se bezbedno obrađuju.
Faza 4: Konfiguracija uređaja¶
Uraditi:
- model
device_configs, - revizije konfiguracije,
- endpoint za preuzimanje konfiguracije,
- endpoint za potvrdu primene,
- audit promene konfiguracije.
Izlaz:
- backend može promeniti konfiguraciju,
- uređaj može preuzeti i potvrditi novu reviziju.
Faza 5: Tarife¶
Uraditi:
- model
tariff_plans, - admin CRUD za tarife,
- generisanje uređajske tarifne konfiguracije,
- verifikaciju
active_tariff_code, - čuvanje rezultata verifikacije.
Izlaz:
- uređaj dobija tarifne opsege,
- backend proverava prijavljene tarife.
Faza 6: Događaji i alarmi¶
Uraditi:
- model
device_events, - pravila za tamper, power-fail i greške,
- pregled događaja u admin API-ju,
- status uređaja na osnovu poslednjeg javljanja.
Izlaz:
- servis vidi probleme uređaja,
- alarmi se mogu filtrirati i zatvarati.
Faza 7: Obračun¶
Uraditi:
- modele
billing_periodsibills, - generisanje potrošnje po periodu,
- stavke računa,
- status računa,
- verifikacionu dijagnostiku.
Izlaz:
- backend može generisati draft račun iz telemetrije.
Faza 8: Portali¶
Uraditi:
- admin portal,
- korisnički portal,
- grafove potrošnje,
- pregled računa,
- pregled statusa uređaja.
Izlaz:
- operator može upravljati sistemom,
- korisnik može videti potrošnju i račune.
Faza 9: Produkciono očvršćavanje¶
Uraditi:
- rate limiting,
- audit log,
- backup baze,
- monitoring,
- alerting,
- obradu offline batch-eva,
- migracione procedure,
- sigurnosnu proveru tokena i lozinki.