Skip to content

Latest commit

ย 

History

48 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation



โ–ˆโ–ˆโ–ˆโ•—   โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ•—   โ–ˆโ–ˆโ–ˆโ•—    โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•—   โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ•—   โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•—     โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—
โ–ˆโ–ˆโ–ˆโ–ˆโ•—  โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ•‘    โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ•—  โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘     โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ•šโ•โ•โ–ˆโ–ˆโ•”โ•โ•โ•
โ–ˆโ–ˆโ•”โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•”โ–ˆโ–ˆโ–ˆโ–ˆโ•”โ–ˆโ–ˆโ•‘    โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•”โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘     โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—   โ–ˆโ–ˆโ•‘   
โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ•โ• โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘    โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘     โ–ˆโ–ˆโ•‘โ•šโ•โ•โ•โ•โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘   
โ–ˆโ–ˆโ•‘ โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘     โ–ˆโ–ˆโ•‘ โ•šโ•โ• โ–ˆโ–ˆโ•‘    โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘  โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘  โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘   
โ•šโ•โ•  โ•šโ•โ•โ•โ•โ•šโ•โ•     โ•šโ•โ•     โ•šโ•โ•    โ•šโ•โ• โ•šโ•โ•โ•โ•โ•โ•  โ•šโ•โ•โ•โ•โ•โ• โ•šโ•โ•  โ•šโ•โ•โ•šโ•โ•  โ•šโ•โ•โ•โ•โ•šโ•โ•  โ•šโ•โ•โ•šโ•โ•โ•โ•โ•โ•โ•โ•šโ•โ•โ•šโ•โ•โ•โ•โ•โ•โ•   โ•šโ•โ•

Promoting Individual Journalism to every nation village

so that democratic values of a nation can be strengthened


Visit NPM Journalist FastAPI Docs DeepWiki npmai License


โšก What is NPM Journalist v2?

NPM Journalist started as a simple anonymous complaint sender to government officers.

Version 2 is a full civic-tech platform โ€” now with a volunteer dispatch network, geo-location based complaint routing, GitHub-style volunteer profiles, photo evidence upload, and Supabase-powered real backend.

Built entirely on free infrastructure. Zero monthly cost. Serving real citizens.


๐Ÿ”„ What Changed in v2

Feature v1 v2
Anonymous complaints to officers โœ… โœ…
AI safety layer โœ… โœ…
Volunteer network โŒ โœ…
Geo-based complaint dispatch โŒ โœ…
Photo evidence upload โŒ โœ…
GitHub-style volunteer profiles โŒ โœ…
My Reports dashboard โŒ โœ…
FastAPI core backend โŒ โœ…
Supabase DB + Auth + Storage โŒ โœ…
OLA Maps distance matrix โŒ โœ…
Flask proxy layer โŒ โœ…

๐Ÿš€ How NPM Journalist whole pipeline works:-

image

๐ŸŽฏ Three Ways to Use NPM Journalist v2

๐Ÿ“ธ 1 โ€” Report a Local Problem

Citizen uploads a photo, marks location on map, describes the issue. System finds the nearest registered volunteer and dispatches the complaint to them directly. No login needed from citizen side.

๐Ÿ“จ 2 โ€” Send Anonymous Complaint to Government Officer

Select officer, write subject and complaint. AI safety layer reviews the message. If safe โ€” email sent anonymously. Identity never revealed.

Supported officers:

DM Kota          DM Patna         DM Nalanda
Rajasthan CM     Bihar CM         Delhi CM
SP Kota City     SP Nalanda       SP Patna City

๐Ÿ‘ท 3 โ€” Join as Volunteer

Register with name, location, profession and photo. Get assigned nearby complaints automatically. View your GitHub-style profile and all assigned reports in the dashboard.


๐Ÿ—๏ธ Architecture

npmjournalist.onrender.com
Flask โ€” Frontend + Proxy Layer (Render)
        |
        |  HTTP POST โ€” params + files
        โ†“
sonuramashishnpm-npm-journalist.hf.space
FastAPI โ€” Core Backend (HuggingFace Spaces)
        |
        |โ”€โ”€ Supabase Auth     โ†’  volunteer signup / signin
        |โ”€โ”€ Supabase Storage  โ†’  profile photos + complaint photos
        |โ”€โ”€ Supabase DB       โ†’  profiles table + complaints table
        โ””โ”€โ”€ OLA Maps API      โ†’  driving distance matrix

๐Ÿ› ๏ธ Tech Stack

Layer Technology Hosting
Frontend HTML, CSS, JavaScript, Leaflet.js Render
Proxy Backend Flask (Python) Render
Core Backend FastAPI (Python) HuggingFace Spaces
Database Supabase (PostgreSQL) Supabase
File Storage Supabase Storage Supabase
Auth Supabase Auth Supabase
Maps Leaflet.js + OLA Maps OLA Krutrim
AI Safety Layer npmai Ecosystem HuggingFace
Anonymous Email npmjournalist code self

๐Ÿ‘ค Volunteer Profile โ€” GitHub Style

After signup or login volunteers see a full profile card:

LEFT SIDEBAR                    RIGHT CONTENT
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€               โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
Profile avatar                  [ Overview ] [ My Reports ]
Active / Passive badge
Name + @handle                  Overview:
Bio                               Complaints Handled | Type | Org
Profession                        Recent Activity Feed
Email
Phone                           My Reports:
Location coords                   Complaint cards with photos
Organisation                      Text description
Tags โ€” Active / Org Member        Assigned timestamp

๐Ÿ—„๏ธ Database Schema

profiles table
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
id           uuid    auto generated (primary key)
name         text
email        text
password     text
phone        text
profession   text
lat          text
longt        text
active       text
passive      text
jno          text
jyes         text
photo_url    text
organisation text
description  text
updated_at   timestamp with time zone

complaints table
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
id           uuid    auto generated (primary key)
email        text    (linked to volunteer)
complaints   text
photo_url    text

๐Ÿ“ฆ npmai Ecosystem

This project is part of the NPMAI Ecosystem โ€” all open source, all on free infra.

npmai PyPI Downloads

912,000+ total PyPI downloads
10+ live projects under NPMAI Ecosystem
Research paper โ€” LARA: Latency-Aware Rerank-then-Allocate Architecture for RAG
npmai โ€” connects Ollama + 12 open source LLMs, no API key, no login, free

๐Ÿš€ Self Host

Step 1 โ€” Clone
    git clone https://github.com/sonuramashishnpm/NPM-Journalist

Step 2 โ€” Install dependencies
    pip install flask requests

Step 3 โ€” Set environment variables
    SUPABASE_URL   =  your project url from supabase dashboard
    SUPABASE_KEY   =  your service role key
    OLA_MAPS_KEY   =  your ola maps api key from cloud.olakrutrim.com
    PORT           =  5000

Step 4 โ€” Run Flask
    python app.py

FastAPI core โ€” deploy separately on HuggingFace Spaces
with same SUPABASE_URL and SUPABASE_KEY secrets

๐Ÿค Contributing

- Add more government officers
- Improve AI safety prompt
- Add support for more Indian languages
- Improve volunteer matching algorithm
- Add real-time complaint status tracking
- Add notification system for volunteers

๐Ÿ‘จโ€๐Ÿ’ป Developer

Sonu Kumar

14 years old ยท From Nalanda, Bihar ยท Self-taught

Software Developer  |  AI Developer  |  Web Developer
Cloud Developer     |  DevOps        |  TEDx Speaker
Founder โ€” NPMAI Ecosystem

Self-taught with zero CS background in family
TEDx Speaker at age 13
Challenged state Chief Minister at age 11
100% scholarship at Allen Career Institute Kota
433K+ Facebook ยท 10k+ requests handled daily 

GitHub Email TEDx Facebook


โš ๏ธ Disclaimer

This tool is only for responsible and respectful civic communication. Misuse is not allowed. Developer is not responsible for any message content sent through the platform.


Made with โค๏ธ by Sonu Kumar ยท NPMAI Ecosystem ยท 2026

Empowering every citizen to raise their voice โ€” safely, anonymously, effectively.

โญ Star this repo if NPM Journalist helped you or inspired you

About

Here user can just enter subject and complaint or suggestion by selection officer names of India and can send complain without any email or phone number so that they cannot be traced.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages