PREVIEW · drawings before / after← all roundsround 3current homeoption B homedrawings before/afterGFGNivaranPrometheusevery releasehow it's builtlink image

Architecture drawings, before and after

Same hand-drawn style and size class. Each box now says what it does, the arrows say what travels on them, and the boundaries show what runs where. Every label comes from the code excerpts or the public repo.

GFG RKGIT platform

Now (live)

Public site (React)Admin portal (React)Team portal (React)Worker API · api.gfg.rkgit.inFirestore + rulesKV · keys, rate limitsR2 · photoscron: graduates archived every 1 June

Proposed: more detail

Public sitegfg.rkgit.in · formsAdmin portalevents, membersTeam portalown profileFirebase Authsign-in → ID tokenWorker APIchecks token + roleCron triggersdaily · 1 JuneFirestoreevents, members, formsKVtoken keys, rate limitsR2event photossign informs, teamBearer ID tokenrole, datakeys, limitsphotosone door: every app goes through the Worker

Nivaran

Now (live)

React web appSupabase Postgres + triggersEdge Function · send-pushFirebase Cloud Messagingphoto + GPS in, push out

Proposed: more detail

Supabase PostgresReact web appreport: photo + GPS, voteSupabase Authwho is votingissuestrigger: score → prioritycast_verification_votejury: reporter + affectednotificationsa row per status changeFirebase Cloud MessagingFCM v1 APIEdge Function · send-pushlooks up the citizen’s FCM tokensign innew reportvote: fixed?status changedwebhookpushan officer marks it Resolved → the jury votes: fixed or not?

Prometheus

Now (live)

git tag v*GitHub Actionsdocker buildGHCR imageFastAPI appPostgreSQL/metricsSentryevery tag is a deployable image

Proposed: more detail

render.yaml: Render builds thisgit pushto mainCIruff · pytest · Postgres testsCodeQLsecurity scangit tag v*releasedocker builduv, non-rootsmoke testGET /healthGHCR:v1.x + :latestFastAPI appauth · transactionsPostgreSQLasync SQLAlchemy/metricsPrometheus formatSentrywhen a DSN is setBudget checkActions cron · daily 09:00same Dockerfile runs the appover limit? alertevery tag is a deployable image