Skip to content

i-ces/JantaWatch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 

Repository files navigation

JantaWatch

JantaWatch is a full-stack civic transparency and public issue reporting platform designed to bridge the gap between citizens, public issues, and government planning data.

The platform allows citizens to report issues anonymously via mobile or web, while the public can freely view reported issues, budget allocations, and project planning data through a unified dashboard. Reports are moderated using LLM-based filtering, aggregated intelligently, and visualized on a public dashboard alongside government budget and project planning data to promote transparency, accountability, and data-driven decision-making.

This repository contains three major components:

  • 📱 Mobile App (Flutter) – citizen-facing reporting application
  • 🌐 Web Frontend (React) – public dashboard for issues, budgets, and project data
  • ⚙️ Backend API (Django + DRF) – centralized backend with moderation & analytics

📁 Project Structure

.
├── janta-watch-app/
│   └── jantawatch_project/     # Flutter mobile application (Android / iOS)
│
├── janta-watch-web/            # React web frontend
│
├── janta_watch/                # Django backend (REST API)
│
└── README.md

1️⃣ janta-watch-app/jantawatch_project

  • Flutter-based mobile application

  • Allows citizens to:

    • Report public issues
    • Attach images/video
    • Public viewing of reported issues
    • View publicly available budget allocations
    • View public project planning data
  • Communicates with the Django backend via REST APIs

2️⃣ janta-watch-web

  • React-based web frontend

  • Intended for:

    • Report public issues
    • Public viewing of reported issues
    • Public viewing of budget allocations
    • Public viewing of project planning data
  • Uses the same backend APIs as the mobile app

3️⃣ janta_watch

  • Django backend using Django REST Framework (DRF)

  • Acts as a single source of truth for both frontend clients

  • Uses Django Admin as the internal admin dashboard

  • Admins use Django Admin to:

    • Manage reported issues
    • Upload and manage budget allocations
    • Upload and manage project planning data
  • Handles:

    • Authentication & authorization
    • Issue reporting & moderation
    • Location hierarchy (Province, District, Municipality, Ward)
    • File uploads (PDFs, images, etc.)

🛠️ Tech Stack

Backend

  • Python 3.10+
  • Django
  • Django REST Framework (DRF)
  • uv (Python dependency & virtual environment manager)
  • PostgreSQL / SQLite
  • LLM-based moderation layer

Mobile App

  • Flutter
  • Dart

Web Frontend

  • React
  • JavaScript / TypeScript
  • REST API integration

🚀 Getting Started

Prerequisites

Ensure the following are installed:


⚙️ Backend Setup (Django)

JantaWatch uses uv with lock & sync for Python dependency management.

cd janta_watch
uv venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
uv sync
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver
```bash
cd janta_watch
uv venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
uv pip install -r requirements.txt
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver

Backend runs at:

http://127.0.0.1:8000/

🌐 Web Frontend Setup (React)

cd janta-watch-web
npm install
npm run dev

📱 Mobile App Setup (Flutter)

cd janta-watch-app/jantawatch_project
flutter pub get
flutter run

Make sure the API base URL is correctly configured to point to the Django backend.


🔐 Environment Variables

Each component may require environment variables such as:

  • API Base URL
  • Database credentials
  • Secret keys

Refer to .env.example files (if available) or configure them manually.


🔄 System Flow (High-Level)

  1. Citizen / Janata submits an issue via Mobile App or Web App

  2. Requests reach the Frontend App Layer

  3. Data is submitted to the Django Backend API

  4. Reports pass through LLM Moderation to filter spam content

  5. A Decision Engine evaluates the report:

    • ❌ Rejected reports are stored internally but not visible on the public dashboard
    • ✅ Approved reports are stored and marked public
  6. Approved reports are checked by a Repetition Detection Engine

  7. If repetition crosses a threshold:

    • 📩 Optional notifications are sent to relevant departments
  8. All approved data appears on the Public Dashboard

  9. Admin-uploaded Budget & Project Planning data is merged

  10. Citizens, media, and the public gain transparency & awareness


📌 Key Features

  • Anonymous citizen issue reporting
  • Multi-channel input (App, Web, Email)
  • LLM-based spam & relevance moderation
  • Intelligent repetition detection
  • Optional department notifications
  • Public transparency dashboard
  • Budget & project planning data integration
  • Pattern and mismatch visualization

🧠 How It Works

  • Citizens report issues anonymously via mobile app, web app, or email

  • Reports are processed by LLM moderation to remove spam or irrelevant submissions

  • Only approved reports are stored and displayed publicly

  • Repeated issues trigger optional alerts to responsible departments

  • Admins upload public budget and project planning data

  • The public dashboard combines:

    • Citizen-reported issues
    • Budget allocations
    • Project planning data

This enables the public to identify:

  • Repeated unresolved issues
  • Budget vs ground-reality mismatches
  • Transparency and accountability gaps

📬 Contact

For questions or collaboration, please contact the project maintainers.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors