PROTOCOL36 is a bilingual public accountability, rehabilitation, justice, and historical archive platform for Bangladesh's July 2024 mass uprising, with citizen evidence submission, admin review, and public transparency features.

Stars

5

7-day growth

No data

Forks

0

Open issues

0

License

No data

Last updated

2026-07-30

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It combines forensic evidence handling, AI image screening, and IPFS/blockchain elements with role-based portals and public access, and documents the full system design for reproducible deployment.

Who it is for

  • Citizens and victims of the July 2024 uprising who want to submit evidence or view public records
  • Administrators and reviewers who need to validate, approve, or reject submitted evidence
  • Developers and organizations building accountability or archival platforms with Next.js and Supabase
  • Researchers and journalists seeking a transparent archive of case progress, budgets, and JulyStories

Use cases

  • Submit victim or representative evidence through a protected uploader after creating a citizen account
  • Publicly browse records, budgets, case progress, JulyStories, and timeline without an account
  • Admin review, approval, or rejection of submitted evidence via role-protected routes
  • Deploy and operate the platform locally or in production using the documented architecture and checks

Strengths

  • Forensic pipeline includes client-side ELA/OCR/dHash checks and a server-side AI-image recheck before saving evidence
  • Role-based access with separate admin login and route protection
  • Public transparency: key records remain readable without authentication while submission is protected
  • Comprehensive as-built documentation covers architecture, workflows, RLS, forensics, blockchain model, deployment, security, and roadmap

Considerations

  • Citizen email addresses are not ownership-verified while SMTP is unavailable, so email alone cannot prove submitter identity
  • The storage provider is currently a local mock adapter; a durable production adapter is required before evidence intake on serverless deployments
  • AI screening results are only review flags, not proof, and the default shared secret is for local development only

README quick start

PROTOCOL36

PROTOCOL36 is a bilingual public accountability, rehabilitation, justice, and historical archive platform for Bangladesh's July 2024 mass uprising.

Documentation

The complete as-built architecture, workflows, database/RLS design, forensics, blockchain model, setup, deployment, security, operations, and roadmap are documented in docs/SYSTEM_DESIGN.md.

Access Model

  • Citizen portal: citizens create an email-and-password account before submitting victim or representative evidence. Registration is server-side, rate-limited, and opens the protected evidence uploader without depending on an email provider. Public records, budgets, case progress, JulyStories, and the timeline remain readable without an account.
  • Admin portal: approved administrators authenticate through the separate password login page. Role checks protect every admin route and allow review, approval, or rejection of submitted evidence.

Stack

Next.js 16, React 19, TypeScript, Tailwind CSS 4, next-intl, Supabase Auth/Postgres/RLS, client-side ELA/OCR/dHash forensics, a FastAPI/Transformers AI-image screening service, IPFS adapters, Solidity, Ethers, Polygon Amoy, Recharts, and Leaflet.

Local Setup

  1. Copy .env.example to .env.local and add the Supabase keys.
  2. Apply the Supabase migrations.
  3. Set ADMIN_INITIAL_PASSWORD in the current shell and create or promote an admin with npm run seed:admin -- administrator@example.com. Remove the temporary environment variable after the command.
  4. Install the AI checker with python -m pip install -r services/ai_checker/requirements.txt.
  5. Start the AI checker with npm run ai:dev.
  6. In another terminal, start the app with npm run dev.
  7. Open http://localhost:3000.

Authentication

Password authentication is the operational default for citizens and administrators. Citizen registration is handled by a same-origin, rate-limited server endpoint; it creates only citizen accounts. Administrators must be explicitly created or promoted with:

npm run seed:admin -- administrator@example.com

Email-link infrastructure can be restored later without changing protected routes. The callback still supports PKCE authorization codes and SSR-safe token hashes, and the local Supabase template remains at [supabase/templates/protocol-magic-link.html](supabase/templates/pro

Description

Explore the live platform: protocol36.vercel.app

Related repositories

Similar projects matched by category, topics, and programming language.

jamesob
Featured
jamesob GitHub avatar

local-llm

A comprehensive guide for building and configuring a high-end local machine to run state-of-the-art LLMs, with detailed hardware choices, BIOS tuning, and Docker-based model serving.

AI & Machine LearningLarge Language Models
1,660
makecindy
Featured
makecindy GitHub avatar

cindy

Cindy is an open-source AI agent that runs locally on your machine, integrates multiple AI harnesses and models, and provides memory, skills, and automation to perform real work in your projects and apps.

AI & Machine LearningLarge Language Models
958
hahhforest
Featured
hahhforest GitHub avatar

pi-textbook

A hands-on course that walks through building a Pi-style coding agent from scratch across 15 checkpoints, starting from an offline agent trajectory.

AI & Machine LearningLarge Language Models
625