Skip to content
OnlyProjects
BCA · Web DevelopmentFor educational purposes only
Code included

Household Waste Collection Route & User-Fee Manager for Haritha Karma Sena Units (Django REST + React)

Route plans, pickup requests, user-fee ledgers and coverage reports for panchayat waste collectors

Mapped to your syllabusKerala University FYUGP 2024 · UK8RPHCAP400 / UK8CIPCAP400 Research Project / Internship Project · Semester 8

Overview

1 min read

Haritha Route & Fee Manager (HRFM) is a web application for the Haritha Karma Sena — the Kudumbashree women's workforce that collects non-biodegradable waste door-to-door across Kerala under Suchitwa Mission guidance, charging each household a small monthly user fee. Every sena worker covers at least 250 houses, keeps a paper fee card per household, and answers to a green supervisor and the local body. The money side is the hardest part: fees arrive in cash across the month, revisions are announced mid-year, households dispute what they paid, and the panchayat wants a monthly statement of fee collection and waste quantity — none of which a notebook can produce.

HRFM gives four actors one shared system: the local-body coordinator defines wards, routes and fee plans; the green supervisor assigns houses to workers and reconciles cash; the worker records each collection round and picks up bulky-waste requests; and the household gets a portal showing its fee ledger, receipts and pickup status. Fee plans are effective-dated, so a revision applies from its notification date without rewriting history; each payment gets a receipt code; and defaulters, route coverage and quantity handed to the clean-up company come out as reports.

The stack is Django 5 with Django REST Framework serving a JSON API and React on the front end, with MySQL 8 behind it — a modern separation that lets the project demonstrate REST design, JWT authentication, role-based access, transaction-safe ledgers and a component-based UI, all defensible line by line in a FYUGP semester-8 viva.

Relevant for
Kerala
Level
Advanced · 16 weeks · team of 3
Common at
University of Kerala, Indira Gandhi National Open University, GGSIPU
Updated
Nov 2026

Syllabus alignment

Kerala University · FYUGP 2024

UK8RPHCAP400 / UK8CIPCAP400 · Research Project / Internship Project · Semester 8 · 12 credits

Subjects this project applies
  • Django (UK5DSECAP307)
  • JS/React (UK4DSECAP203)
  • DBMS (UK3DSCCAP201)
  • Python programming (backend services and tests)
How it is evaluated

See your department's project guidelines.

Also fits: IGNOU BCA (revised) — BCSP-064 guidelines, GGSIPU 4-year BCA 2024, BCU SEP 2024.

What's in the box

11 parts · 5 free · 2 previewed · 4 unlock for ₹2,000

Problem & synopsis

6 min read

Problem statement

Haritha Karma Sena units collect a monthly user fee from hundreds of households each and gather non-biodegradable waste door-to-door, but the unit's records are paper fee cards, a cash diary and memory. Fees are revised from time to time, so past months, old rates and current arrears blur together; households lose track of what they paid and dispute receipts; houses skipped on a collection day are discovered only when someone complains; bulky-waste pickups are arranged by phone with no request or closure record; and the local body's monthly statement of fee collection and waste quantity is compiled by hand.

The problem is to build a role-based web application that plans routes and households, records each collection round as it happens, keeps a fee ledger whose accruals always cite the fee plan effective on that date, issues receipt codes for every payment, tracks pickup requests to closure, and produces coverage, collection and remittance reports — without storing any government identity numbers.

Synopsis

Abstract

Kerala's Haritha Karma Sena collects non-biodegradable waste from lakhs of households for a monthly user fee — about 47.9 lakh households and 2.57 lakh shops are covered, and local bodies collect crores in user charges monthly. Yet inside a typical unit the work runs on paper fee cards and memory: who paid, who is in arrears, which houses were skipped, how much waste was gathered. This project builds the Haritha Route & Fee Manager (HRFM) — a Django REST Framework backend, a React front end and MySQL — covering ward and route planning, household fee subscriptions, worker-wise collection rounds, an effective-dated fee ledger with receipt codes, bulky-waste pickup requests and coverage, collection and remittance reports.

Introduction

I interviewed a seven-member sena unit in a municipality (name changed) with its green supervisor. Each worker walks fixed streets every collection day, marking rounds in a diary; the supervisor collects each worker's cash, writes it in a ledger and remits it at the local-body office. The fee was revised last year and the unit spent weeks explaining arrears. Households call the worker directly for bulky pickups — old chairs, e-waste — with no record of request or closure. The unit's questions repeat: who has not paid this month, which houses were missed, what quantity went to the handover, and what does each worker's route owe.

Existing system and its limitations

  • Paper fee cards and a supervisor's cash ledger — no instant arrears list, no receipt for the household.
  • Fee revisions applied by announcement, so old and new rates blur mid-month.
  • Collection rounds recorded after the fact, so skipped houses surface only in complaints.
  • Bulky-waste pickup requests arrive by phone and are remembered, not tracked.
  • Local-body reporting (fee collected, quantity collected) is compiled manually each month.

Proposed system

  • Wards, routes and households in a normalised database, with category-based fee plan subscriptions.
  • Effective-dated fee plans: a revision takes effect from its date, and every accrual stores the plan it used.
  • Worker collection rounds per route-day with picked / refused / absent status and quantity in kg.
  • A fee ledger with monthly accruals, cash payments with receipt codes, arrears lists and a supervisor reconciliation view.
  • Pickup requests raised by households, scheduled to a worker, closed with a quantity note.
  • Dashboards and CSV reports: route coverage, fee collection by ward, handover quantity.
  • JWT-secured REST API with role-based access (Coordinator, Supervisor, Worker, Household) and an audit log of financial changes.

Feasibility study

  • Technical: Django and React are taught in the FYUGP BCA syllabus (UK5DSECAP307, UK4DSECAP203); MySQL in DBMS (UK3DSCCAP201). DRF provides serializers, authentication and browsable API testing; everything is open-source.
  • Economic: one low-cost VPS or the local body's existing server; no licence fees.
  • Operational: the worker's screen is one checklist per route-day, usable on a budget phone's browser; households get a read-mostly portal.
  • Schedule: 16 weeks — study, design, four build increments, testing, documentation.

Objectives

  1. 01Design a normalised MySQL schema for wards, routes, households, fee plans, collection rounds, payments, pickup requests and audit logs.
  2. 02Implement effective-dated fee plans so a revision applies from its notification date while historical accruals keep the rate actually in force.
  3. 03Record worker-wise collection rounds per route-day with status (picked, refused, absent) and quantity of non-biodegradable waste collected.
  4. 04Maintain a per-household fee ledger with monthly accruals, cash payments, unique receipt codes, arrears lists and a supervisor reconciliation view.
  5. 05Provide a pickup-request workflow — raised by the household, scheduled to a worker, closed with a quantity note.
  6. 06Expose a JWT-authenticated REST API with role-based access for Coordinator, Supervisor, Worker and Household, and log every financial change.
  7. 07Generate route-coverage, fee-collection and handover-quantity reports with CSV export for the local body.

Scope

In scope

  • One local body (municipality or panchayat) with multiple wards, multiple sena units and routes of 200–300 households each.
  • Four roles: Local-body Coordinator, Green Supervisor, Sena Worker, Household.
  • Household registry (name, address, category home/shop/institution, contact — no Aadhaar or government ID numbers), subscription and exit.
  • Fee plans per category with effective dates; monthly accrual; cash payment recording with receipt codes; arrears and defaulters reports.
  • Collection rounds per route-day with per-household status and waste quantity in kilograms.
  • Bulky-waste pickup requests with scheduling and closure notes.
  • Dashboards and CSV exports: route coverage, collection percentage by ward, fee collected, quantity handed over.

Out of scope (v1)

  • Online payment gateway; fees are collected in cash by the worker and recorded with a receipt code (a UPI collect flow is future scope).
  • GPS tracking of workers and route optimisation algorithms.
  • Biodegradable waste and composting workflows, material-recovery-facility operations and weighing-bridge integration.
  • A native mobile app (the worker uses the responsive web UI) and multi-local-body tenancy.

Methodology

The project follows the Incremental SDLC model across 16 weeks: the route and household core ships first, then rounds, then the fee ledger, then reports — each increment demonstrated to the guide. A short field study fixes the vocabulary before design.

PhaseWeeksActivitiesDeliverable
Field study & requirements1–2Interview a sena unit and its green supervisor, walk one route, collect a sample fee card and the local body's monthly formatRequirement notes
System design3–4DFD level 0/1, ER diagram, 3NF schema, REST endpoint list, React component tree, test planDesign document
Increment 15–6JWT auth, four roles, wards/routes/householdsWorking registry
Increment 27–9Collection rounds, route-day calendar, quantity entryRounds module
Increment 310–11Effective-dated fee plans, accruals, payments, receipts, arrearsFee ledger
Increment 412–13Pickup requests, dashboards, CSV reports, audit logFull feature set
Testing14Unit tests (accrual, receipt, coverage), API tests, role-access testsTest report
Documentation & viva prep15–16Report, screenshots, PPT, demo rehearsalFinal submission

Member-wise work split (team of 3). Member 1: backend core — models, JWT auth, roles, wards/routes/households API. Member 2: rounds module and pickup-request workflow, worker screens in React. Member 3: fee-plan versioning, accrual and payment logic, receipts, reconciliation, reports and the test suite. DFDs, ER diagram and the report were prepared jointly.

Fee rule. Each household accrues its plan's monthly rate on the 1st for that month, using the plan version effective on that date (category home/shop/institution). A payment records amount, date, paying household and a system-generated receipt code; part payments are allowed and the ledger balance is the sum of accruals minus payments. A fee revision inserts a new plan version with effective_from; no accrual before that date changes. All money writes run in database transactions and append an audit row.

Architecture & tech stack

2 diagrams · 6 technologies · 2 min read

  • Python 3.12
  • Django 5 + Django REST Framework
  • MySQL 8
  • React 18 (Vite) + JavaScript
  • JWT auth (djangorestframework-simplejwt, industry-standard extra)
  • Bootstrap 5 (industry-standard extra)

HRFM is a two-tier client–server web system: a React single-page app talking over HTTPS/JSON to a Django REST Framework API, which owns all business rules and talks to MySQL 8 through Django's ORM.

Component flow

flowchart TD
  HH["Household portal (React)"] -->|HTTPS + JWT| API["Django REST API"]
  WK["Worker round screen (React)"] -->|HTTPS + JWT| API
  SUP["Supervisor & Coordinator dashboards (React)"] -->|HTTPS + JWT| API
  API --> SER["Serializers + role checks"]
  SER --> SVC["Fee ledger / rounds / pickup services"]
  SVC --> ORM["Django ORM"]
  ORM --> DB[("MySQL 8")]
  SVC --> AUD["Audit log"]
  SVC --> RPT["CSV report generator"]

ER diagram

erDiagram
  WARD ||--|{ ROUTE : contains
  ROUTE ||--|{ HOUSEHOLD : covers
  USER ||--o{ AUDIT_LOG : writes
  FEE_PLAN ||--o{ ACCRUAL : "prices"
  HOUSEHOLD ||--o{ ACCRUAL : "is billed"
  HOUSEHOLD ||--o{ PAYMENT : makes
  HOUSEHOLD ||--o{ PICKUP_REQUEST : raises
  WORKER ||--o{ ROUND_ENTRY : records
  ROUTE ||--o{ ROUTE_DAY : schedules
  ROUTE_DAY ||--o{ ROUND_ENTRY : produces
  PICKUP_REQUEST ||--o| ROUND_ENTRY : "closed in"

  WARD {
    int id PK
    string name
    string local_body
  }
  ROUTE {
    int id PK
    int ward_id FK
    string name
    string weekday_pattern
  }
  HOUSEHOLD {
    int id PK
    int route_id FK
    string code UK
    string name
    string address
    string category
    string phone
    boolean active
  }
  FEE_PLAN {
    int id PK
    string category
    decimal monthly_fee
    date effective_from
    date effective_to
  }
  ACCRUAL {
    int id PK
    int household_id FK
    int fee_plan_id FK
    string period_month
    decimal amount
  }
  PAYMENT {
    int id PK
    int household_id FK
    decimal amount
    date paid_on
    string receipt_code UK
    int collected_by FK
  }
  ROUTE_DAY {
    int id PK
    int route_id FK
    date work_date
    boolean closed
  }
  WORKER {
    int id PK
    int user_id FK
    string unit_name
  }
  ROUND_ENTRY {
    int id PK
    int route_day_id FK
    int household_id FK
    int worker_id FK
    string status
    decimal quantity_kg
  }
  PICKUP_REQUEST {
    int id PK
    int household_id FK
    string waste_type
    string status
    datetime raised_at
    datetime closed_at
  }
  USER {
    int id PK
    string username UK
    string password_hash
    string role
  }
  AUDIT_LOG {
    int id PK
    int user_id FK
    string action
    string entity
    datetime created_at
  }

Key design decisions. Fee plans are temporal: each row carries effective_from/effective_to, and an accrual stores a foreign key to the exact plan version it used — this is the cleanest answer to "what rate applied in March after the June revision?". ROUND_ENTRY keys on (route_day, household) so one house cannot be recorded twice in a round, and its status enum keeps coverage computation a simple query. PAYMENT.receipt_code is unique and generated in a transaction with the payment insert, so no two receipts can collide even with two supervisors entering cash simultaneously. The REST API is the only door: every endpoint authenticates with JWT and checks the role, so a household token simply cannot reach the supervisor's reconciliation endpoint, regardless of what the UI shows. Pickup requests are closed by a ROUND_ENTRY, which keeps waste quantities in one place for the handover report.

Modules

6 modules

  1. Module 01

    Authentication, Roles and Audit Log

    JWT login with refresh tokens for four roles (Coordinator, Supervisor, Worker, Household); permission classes enforce role per endpoint, and every fee, route or accrual change writes an append-only audit row with user and timestamp. Owner: Member 1.

  2. Module 02

    Ward, Route and Household Registry

    The coordinator defines wards and named routes with weekday patterns; the supervisor assigns households (code, name, address, category, phone) to routes and manages subscriptions and exits with history preserved. Owner: Member 1.

  3. Module 03

    Collection Rounds

    Route-days are generated from the route's weekday pattern; on the day, the worker ticks each household as picked, refused or absent, with optional quantity in kg, and closes the round — coverage and skipped houses become queryable immediately. Owner: Member 2.

  4. Module 04

    Fee Plans, Accruals and Payments

    Category-based fee plans with effective dates; a scheduled job accrues monthly fees per household citing the exact plan version; cash payments are recorded with unique receipt codes and part payments, producing arrears and defaulters lists. Owner: Member 3.

  5. Module 05

    Pickup Requests

    Households raise bulky-waste or e-waste pickup requests from the portal; the supervisor schedules them onto a worker's route-day; the worker closes them with a quantity note, and the household sees the status. Owner: Member 2.

  6. Module 06

    Dashboards, Reconciliation and Reports

    Role-specific dashboards (coverage today, arrears, open pickups), the supervisor's cash reconciliation view per worker, and CSV exports for the local body: fee collection by ward, route coverage percentage and handover quantity. Owner: Member 3.

Slides

12 slides · titles free · bullets, notes and the .pptx unlock

  1. Slide 1

    Haritha Route & Fee Manager

  2. Slide 2

    The Haritha Karma Sena context

  3. Slide 3

    Problem

  4. Slide 4

    Objectives

  5. Slide 5

    Tools and justification

  6. Slide 6

    System design

  7. Slide 7

    The fee ledger design

  8. Slide 8

    Rounds, coverage and pickups

  9. Slide 9

    Who built what

  10. Slide 10

    Demo

  11. Slide 11

    Testing

  12. Slide 12

    Conclusion and future scope

Bullets, speaker notes and the .pptx · ₹2,000

The titles above are the real outline. The rest is what you present from.

Unlock for ₹2,000

Viva questions & answers

3 of 17 answered free · 14 unlock

Read each answer, close it, and say it in your own words. Your viva will ask. Now you'll know.

  1. 01Concept

    What is a REST API and why did you separate React from Django?

    REST exposes resources as URLs manipulated with HTTP methods and JSON representations, keeping the server stateless between requests. We separated React from Django so the API owns all business rules and data integrity while the front end only presents — meaning a future Android app for workers could reuse the same endpoints without touching the backend, and teams can work on UI and API independently.

  2. 02Concept

    How does JWT authentication work in your system?

    At login the API returns a short-lived access token and a longer-lived refresh token signed by the server. The React app sends the access token in the Authorization header of every request; the backend verifies the signature and reads the role from the token payload without a session store. When the access token expires, the refresh token fetches a new one, so the worker's round screen never logs out mid-route.

  3. 03Concept

    Why is your fee ledger called accrual-based?

    Fee liability is created by a scheduled accrual job on the first of each month — one ACCRUAL row per household citing the plan version effective that day — and payments settle those accruals. The balance is simply accruals minus payments. This mirrors how the supervisor's paper ledger works and makes arrears a query instead of a recalculation.

+14 more questions, with answers

Try the free ones out loud first. Your examiner will not accept “it's in the PPT”.

Source code & how to run

6 steps · complete source code · unlocks with the project

Unlocks with the project · ₹2,000

6 steps · source code zip

Prerequisites, install, seed data and tests, written for demo day. Plus the complete source.

Unlock for ₹2,000

READMEFIRST

280 words · unlocks with the project

What to change before it goes anywhere near a submission. Skipping it is how the demo fails live.

Unlocks with the project · ₹2,000

280 words · ~1 min read

The checklist of things to rename, re-seed and re-think so the project reads as yours.

Unlock for ₹2,000

Instructions

352 words · unlocks with the project

How to study it, adapt it and walk your examiner through it, step by step.

Unlocks with the project · ₹2,000

352 words · ~2 min read

Report structure, formatting rules and the submission checklist your department will grade.

Unlock for ₹2,000

References

8 sources

  1. Django Documentation
  2. Django REST Framework — Official documentation
  3. React Documentation — Learn React
  4. Kudumbashree — About Haritha Karma Sena (official page)
  5. Suchitwa Mission, Local Self Government Department, Government of Kerala
  6. OWASP Top 10 — Web Application Security Risks
  7. Ramez Elmasri and Shamkant B. Navathe, Fundamentals of Database Systems, 7th ed., Pearson
  8. Roger S. Pressman and Bruce R. Maxim, Software Engineering: A Practitioner's Approach, 9th ed., McGraw-Hill

Cite this bundle

OnlyProjects. (2026). Household Waste Collection Route & User-Fee Manager for Haritha Karma Sena Units (Django REST + React): BCA Web Development project bundle [Educational resource]. https://onlyprojects.online/projects/bca-web-hks-waste-collection-fee-manager

Future scope

1 min read

  • UPI collect-request payments from the household portal with automatic ledger matching against the receipt code.
  • A worker companion app (Android) with offline round capture that syncs when connectivity returns.
  • Route optimisation — ordering households within a route-day to cut walking distance, using the recorded geo-points as future data.
  • Integration with material recovery facilities — handover manifests and Clean Kerala Company-style quantity certificates generated directly.
  • Analytics for the local body — category-wise compliance, seasonal waste quantity, and predicted defaulters for targeted awareness.
  • Multi-local-body tenancy so a district can run every sena unit from one deployment with ward-level data isolation.

Keep browsing

Same degree, same syllabus slot, different idea. Pick the one your guide will actually approve.

BCACode included

Web Development

Smart Hostel Management System

Room allocation, complaints and mess billing without the register

  • Next.js
  • TypeScript
  • Node.js
  • +3

intermediate8 wk2 students