Skip to content

KGFCH2/AquaWatch_1.0

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

97 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ’ง AquaWatch ๐Ÿ’ง

React TypeScript Vite Tailwind CSS Firebase FastAPI Python DWLR License Status

๐ŸŒ Real-time Groundwater Monitoring System for India

AquaWatch is a comprehensive web application that provides real-time monitoring and analysis of India's groundwater crisis across all states and union territories using Digital Water Level Recorder (DWLR) data from CGWB (Central Ground Water Board).

The platform offers critical insights into groundwater depletion, water availability, and population impact through an intuitive dashboard powered by 5,260+ DWLR sensor stations across India.

๐Ÿšจ India's groundwater is depleting at an alarming rate. AquaWatch empowers citizens, policymakers, and researchers with real-time data to combat this crisis.


๐Ÿ—๏ธ Application Architecture

System Architecture Overview ๐Ÿ–ผ๏ธ

AquaWatch operates through 4 integrated phases:

PHASE 1: DATA ACQUISITION โ†’ 5,260+ DWLR Sensors (CGWB Data)
PHASE 2: REAL-TIME PROCESSING โ†’ FastAPI + Pandas (6-hour updates)
PHASE 3: PLATFORM & APP โ†’ React Dashboard + Firebase Sync
PHASE 4: USER IMPACT โ†’ Citizens, Policymakers, Researchers

For detailed architecture diagrams and flow charts, see the attached architecture images above.


โœจ Features

๐Ÿ› ๏ธ Admin Dashboard

  • ๐ŸŒ National Water Crisis Overview: Real-time monitoring of states in crisis with DWLR statistics
  • ๐Ÿ—บ๏ธ State-wise DWLR Analysis: Detailed breakdown of water conditions across all 28 states + 8 UTs using DWLR measurements
  • ๐Ÿ“‘ Interactive State Cards: Clickable cards with historical water level charts powered by DWLR sensors
  • ๐Ÿ“ˆ Trend Analysis: Up/down/stable water level trends from DWLR data (meters below ground level - m bgl)
  • ๐Ÿ‘ฅ User Management: Admin panel for managing users and monitoring engagement
  • ๐Ÿ”„ Real-time DWLR Sync: Automatic updates from 5,260+ DWLR stations every 6 hours

๐Ÿ‘ค User Dashboard

  • ๐Ÿ“ Personal Groundwater Monitoring: Real-time tracking for user's selected state using DWLR sensor data
  • ๐Ÿ“Š Real-time Graphs: Interactive charts with DWLR historical trends and water level forecasts
  • ๐Ÿšฆ Status Overview: Visual indicators (Critical/Warning/Normal/Good) based on DWLR water level percentages
  • โšก Quick Actions: Easy access to emergency contacts and water conservation solutions
  • ๐Ÿ“ˆ Historical Analysis: Multi-month trend data from DWLR measurements

๐Ÿ” Authentication & Security

  • ๐Ÿง‘โ€๐Ÿ’ผ Role-based Access: Admin vs User dashboards with state-specific permissions
  • ๐Ÿ”‘ Firebase Authentication: Secure email-based login
  • ๐Ÿ“ User Registration: Signup with state selection for personalized DWLR monitoring
  • ๐Ÿ”’ Session Management: Persistent secure sessions

๐Ÿšจ Emergency Response

  • ๐Ÿ”” Crisis Alerts Panel: Real-time notifications for critical DWLR water levels
  • ๐Ÿš‘ Emergency Response Modal: Quick response procedures for groundwater crises
  • โ˜Ž๏ธ Emergency Contacts: State-wise emergency helplines
  • ๐Ÿ“ฑ Alert System: Critical level notifications

๐Ÿ’ก Solutions & Resources

  • ๐ŸŒฑ Water Management Solutions: Evidence-based conservation strategies
  • ๐Ÿ“– Data Methodology: Transparent DWLR data sources and processing pipeline
  • ๐Ÿ›๏ธ Government Resources: CGWB guidelines and official policies
  • ๐Ÿ”ฌ Research Data: Historical analysis from DWLR archives

๐ŸŽจ User Experience

  • ๐ŸŒ™ Dark/Light Theme: Automatic mode toggle
  • ๐Ÿ“ฑ Responsive Design: Mobile-first for field monitoring
  • โณ Loading Animations: Smooth experience with custom spinners
  • โ™ฟ Accessible Interface: WCAG compliant
  • ๐Ÿงญ Mobile Navigation: Collapsible menu

๐Ÿ“‚ Project Structure

AquaWatch_1.0/
โ”œโ”€โ”€ ๐Ÿ–ฅ๏ธ frontend/                    # React + TypeScript Web Application
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ App.tsx             # Main application component
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ main.tsx            # Entry point
โ”‚   โ”‚   โ”œโ”€โ”€ ๐ŸŽจ index.css           # Global styles
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ’พ components/         # Reusable UI Components
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ AdminDashboard.tsx         # ๐Ÿ” Admin panel with state analytics
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ AdminLogin.tsx             # ๐Ÿ”‘ Admin authentication
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ AdminLoadingSpinner.tsx    # โณ Loading animation
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ UserDashboard.tsx          # ๐Ÿ‘ค User's groundwater dashboard
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ UserLogin.tsx              # ๐Ÿ“ User login page
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ UserSignup.tsx             # โœ๏ธ User registration
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ UserDatabase.tsx           # ๐Ÿ“Š User data management
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ AlertsPanel.tsx            # ๐Ÿšจ Alert notifications system
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ EmergencyModal.tsx         # ๐Ÿ†˜ Emergency response modal
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ RealTimeGraph.tsx          # ๐Ÿ“ˆ DWLR data visualization
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ StateDetailsPopup.tsx      # ๐Ÿ—บ๏ธ State-specific water info
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Solutions.tsx              # ๐Ÿ’ก Water management solutions
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ DataMethodologyModal.tsx   # ๐Ÿ“– Data transparency info
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Authentication.tsx         # ๐Ÿ” Auth context component
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ RoleSelection.tsx          # ๐Ÿ‘ฅ User role selector
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Header.tsx                 # ๐ŸŽฏ Navigation header
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Footer.tsx                 # ๐Ÿ“Œ Footer section
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ LoadingScreen.tsx          # โณ Initial loading screen
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ LoadingSpinner.tsx         # ๐ŸŒ€ Custom spinner
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ThemeToggle.tsx            # ๐ŸŒ™ Dark/Light mode
โ”‚   โ”‚   โ”œโ”€โ”€ ๐ŸŒ contexts/           # Global State Management
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ AuthContext.tsx           # ๐Ÿ”‘ Authentication state
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ThemeContext.tsx          # ๐ŸŽจ Theme configuration
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ WaterDataContext.tsx      # ๐Ÿ’ง DWLR data state
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ”ฅ firebase/           # Firebase Configuration
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ config.ts                 # Firebase initialization
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ pages/              # Page-level Components
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ LandingPage.tsx          # ๐Ÿ  Home/landing page
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ AlertsPage.tsx           # ๐Ÿšจ Alerts dashboard
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ SolutionsPage.tsx        # ๐Ÿ’ก Solutions page
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ› ๏ธ utils/              # Utility Functions
โ”‚   โ”‚       โ””โ”€โ”€ dataUtils.ts             # DWLR data parsing & conversion
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ฆ public/                 # Static assets
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‹ package.json            # Node dependencies
โ”‚   โ”œโ”€โ”€ โš™๏ธ vite.config.ts          # Vite build configuration
โ”‚   โ”œโ”€โ”€ ๐ŸŸฆ tsconfig.json           # TypeScript configuration
โ”‚   โ””โ”€โ”€ ๐Ÿงน eslint.config.js        # ESLint rules
โ”‚
โ”œโ”€โ”€ ๐Ÿ backend/                    # Python FastAPI Server
โ”‚   โ”œโ”€โ”€ ๐Ÿš€ main.py                # FastAPI application with DWLR data sync
โ”‚   โ”‚                              # - File watcher for CSV changes
โ”‚   โ”‚                              # - Batch upload to Firebase (โ‰ค500 writes)
โ”‚   โ”‚                              # - Real-time DWLR state synchronization
โ”‚   โ”œโ”€โ”€ ๐Ÿ“Š data/
โ”‚   โ”‚   โ””โ”€โ”€ dwlr_india.csv        # ๐Ÿ”ด CGWB DWLR Dataset
โ”‚   โ”‚                              # - 5,260+ monitoring stations
โ”‚   โ”‚                              # - All 28 states + 8 UTs
โ”‚   โ”‚                              # - Water levels in meters below ground (m bgl)
โ”‚   โ”‚                              # - Updated every 6 hours
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‹ requirements.txt        # Python dependencies (future)
โ”‚   โ””โ”€โ”€ ๐Ÿ“‘ .gitignore             # Ignore data & credentials
โ”‚
โ”œโ”€โ”€ ๐Ÿ“„ README.md                   # Project documentation
โ””โ”€โ”€ ๐Ÿ“ .env                        # Environment variables

๐Ÿ› ๏ธ Technology Stack

๐ŸŽจ Frontend Stack

Component Technology Version
Framework โš›๏ธ React 19.2.1
Language ๐ŸŸฆ TypeScript 5.5.3
Build Tool โšก Vite 7.1.5
Styling ๐ŸŽจ Tailwind CSS 3.4.1
UI Components ๐Ÿ’… Styled-Components 6.1.19
State Management ๐Ÿ”„ React Context API Native
Charting ๐Ÿ“Š Recharts 3.2.0
Icons ๐ŸŽฏ Lucide React 0.344.0
Animations ๐ŸŽฌ Framer Motion 12.23.12
Routing ๐Ÿ—บ๏ธ React Router v7 7.8.2
Firebase ๐Ÿ”ฅ Firebase SDK 12.2.1
Linting โœ… ESLint 9.9.1

๐Ÿ Backend Stack

Component Technology Version
Framework ๐Ÿš€ FastAPI 0.110
Server ๐ŸŒ Uvicorn Latest
Language ๐Ÿ Python 3.13.7
Data Processing ๐Ÿ“Š Pandas Latest
Database ๐Ÿ”ฅ Firebase Firestore Cloud
File Monitoring ๐Ÿ‘€ Watchdog Latest
Environment โš™๏ธ Python-dotenv Latest

โ˜๏ธ Cloud & Services

Service Purpose
๐Ÿ”ฅ Firebase Real-time Firestore database + Authentication
๐Ÿ“ Cloud Firestore DWLR_state collection for state-wise data
๐Ÿ” Firebase Auth Email/password authentication

โšก Getting Started

๐Ÿ“‹ Prerequisites

Before you begin, ensure you have:

  • ๐Ÿ“ฆ Node.js v18 or higher (Download)
  • ๐Ÿ Python 3.8+ (for backend API - optional)
  • ๐Ÿ› ๏ธ npm or yarn package manager
  • ๐Ÿ”ฅ Firebase Account (for backend connectivity - optional)
  • ๐Ÿ“Š Git for cloning the repository

๐Ÿ”ง Installation

  1. Clone the repository

    git clone https://github.com/KGFCH2/AquaWatch_1.0.git
    cd AquaWatch_1.0
  2. Install frontend dependencies

    cd frontend
    npm install

    โš ๏ธ Note: If you encounter styled-components import errors, run:

    npm install styled-components @types/styled-components
  3. Configure Firebase (Optional - for backend API)

    Place your Firebase service account JSON key file in backend/. Do not commit the key file or paste its contents into this README. Use a descriptive filename (for example, serviceAccountKey.json) and set its path via the backend .env variable FIREBASE_CREDENTIALS_PATH. Ensure the key file is listed in .gitignore.

โ–ถ๏ธ Development

  1. Start the frontend development server

    cd frontend
    npm install
    npm run dev

    The application will be available at http://localhost:5173 ๐Ÿš€

    Terminal Output Example:

    VITE v7.1.5  ready in 450 ms
    โžœ  Local:   http://localhost:5173/
    โžœ  Press h to show help
    
  2. Build for production

    npm run build

    Generates optimized build in frontend/dist/ folder

  3. Preview production build locally

    npm run preview
  4. Run linting to check code quality

    npm run lint

๐Ÿ Backend API Server (Optional - For DWLR Sync)

The backend processes DWLR CSV data and syncs with Firebase. It's optional for frontend-only development.

  1. Install Python dependencies

    cd backend
    pip install fastapi uvicorn pandas firebase-admin watchdog python-dotenv
  2. Prepare DWLR CSV data

    • Place dwlr_india.csv in backend/data/ directory
    • File should contain: State, Date, Time, Water_Level_m_bgl columns
  3. Start the FastAPI server

    python main.py

    The API will be available at http://localhost:8000

    Features:

    • ๐Ÿ“ก File Watcher: Automatically detects CSV changes
    • ๐Ÿ“ค Batch Upload: Uploads new rows to Firebase (โ‰ค500 per batch)
    • ๐Ÿ”„ Incremental Sync: Tracks last uploaded row index
    • โ™ป๏ธ Rollback Support: Handles data deletion/rollback scenarios

๐Ÿ—๏ธ Application Architecture

AquaWatch Architecture Diagram


๐Ÿ–ผ๏ธ Flowchart

AquaWatch Flowchart

๐Ÿ“Š Data Sources & DWLR Dataset

๐Ÿ”ด Primary Data Source: DWLR Dataset (CGWB)

Digital Water Level Recorder (DWLR) - Automated groundwater monitoring network

Metric Details
๐Ÿ“ˆ Total Stations 5,260+ DWLR monitoring stations across India
๐Ÿ—บ๏ธ Coverage All 28 states + 8 union territories
๐Ÿ“ Measurement Unit Meters Below Ground Level (m bgl)
โฑ๏ธ Update Frequency Every 6 hours (automated sync from CGWB)
๐Ÿ”ฌ Data Source Central Ground Water Board (CGWB), Ministry of Jal Shakti
๐ŸŽฏ Accuracy ยฑ0.1 meters per CGWB specifications
๐Ÿ“‹ File Format CSV with State, Date, Time, Water_Level_m_bgl

๐Ÿ“ DWLR CSV Data Structure

State,Date,Time,Water_Level_m_bgl
Andhra Pradesh,9/4/2025,0:00:00,6.56
Maharashtra,9/4/2025,6:00:00,15.89
Punjab,9/4/2025,12:00:00,8.21
Rajasthan,9/4/2025,18:00:00,42.15

Fields Explained:

  • State: Indian state/UT name
  • Date: Measurement date (MM/DD/YYYY)
  • Time: Measurement time (HH:MM:SS)
  • Water_Level_m_bgl: Water depth below ground surface in meters

๐Ÿ”„ Data Processing Pipeline

DWLR CSV File (CGWB)
    โ†“ [Backend/Python]
Parse & Validate (Pandas)
    โ†“
Filter Incomplete Rows
    โ†“
Organize by State
    โ†“ [Firebase Admin SDK]
Batch Upload to Firestore
    โ†“ [DWLR_state Collection]
State โ†’ Subcollection (data)
    โ†“ [Real-time Sync]
Firebase Listeners
    โ†“ [Frontend/React]
Update Dashboard Components
    โ†“
User Display (Charts, Maps, Alerts)

๐ŸŽฏ Water Level Status Classification

DWLR measurements are converted to percentage availability (0-100%):

Water Level (% Availability) Status Color Indicator Action Required
0-30% ๐Ÿ”ด CRITICAL Red Severe drought ๐Ÿšจ Immediate intervention
31-50% ๐ŸŸ  HIGH STRESS Orange Significant stress โš ๏ธ Urgent action needed
51-70% ๐ŸŸก MODERATE Yellow Monitoring needed ๐Ÿ‘€ Close monitoring
71-100% ๐ŸŸข GOOD Green Adequate supply โœ… Normal conditions

๐Ÿ“š Data Validation & Quality

The backend performs multiple quality checks:

  • โœ… Completeness: Ensures all required fields are present
  • โœ… Format: Validates date/time and numeric values
  • โœ… Range Check: Confirms water levels are within realistic bounds (0-50m bgl)
  • โœ… Deduplication: Prevents duplicate entries in Firebase
  • โœ… Incremental Updates: Only syncs new/modified rows

๐Ÿ“ Key Metrics & Thresholds

Metric Range Status Impact
Water Level (% availability) 0-30% ๐Ÿ”ด Critical Severe drought conditions
Water Level (% availability) 31-50% ๐ŸŸ  High Stress Water rationing needed
Water Level (% availability) 51-70% ๐ŸŸก Moderate Monitoring required
Water Level (% availability) 71-100% ๐ŸŸข Good Adequate water supply

๐Ÿ“Š Data Analytics

Key Metrics Tracked

  • ๐Ÿ“ˆ Water Level Trends: Historical data analysis
  • ๐Ÿ”ด Crisis Index: Real-time crisis status per state
  • ๐Ÿ‘ฅ User Engagement: Active users per state
  • ๐Ÿ“ Regional Analysis: State-wise comparisons
  • โฐ Temporal Patterns: Seasonal water variations

โš™๏ธ Configuration & Setup

๐Ÿ”ฅ Firebase Configuration

Firebase is used for:

  • ๐Ÿ” User authentication (Admin & User roles)
  • ๐Ÿ’พ Real-time database (Firestore)
  • ๐Ÿ“ฑ Data synchronization

Step 1: Create Firebase Project

  1. Go to Firebase Console
  2. Click "Create a new project"
  3. Name it "aquawatch" (or your preferred name)
  4. Enable Google Analytics (optional)

Step 2: Enable Firestore Database

  1. Navigate to Firestore Database in left sidebar
  2. Click "Create Database"
  3. Choose "Production mode" โ†’ "Next"
  4. Select region: "asia-south1 (Delhi)" โ†’ "Enable"

Step 3: Create Collections

  1. In Firestore, create collection: DWLR_state
  2. Set document ID as state name (e.g., Maharashtra)

Step 4: Get Firebase Config

  1. Go to Project Settings (gear icon) โ†’ "General" tab
  2. Copy your Firebase config details
  3. Update frontend/.env with your credentials

โšก Environment Variables

Frontend Configuration (frontend/.env)

# Firebase Configuration
VITE_FIREBASE_API_KEY=YOUR_API_KEY
VITE_FIREBASE_AUTH_DOMAIN=YOUR_PROJECT.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your-project-id
VITE_FIREBASE_STORAGE_BUCKET=your-project.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=123456789
VITE_FIREBASE_APP_ID=1:123456789:web:xxxxx
VITE_FIREBASE_MEASUREMENT_ID=G-XXXXXXXXXX

Backend Configuration (backend/.env) - Optional

# CSV Configuration
CSV_FILE=data/dwlr_india.csv

# Firebase Credentials
# Set this to the relative path of your service account JSON file (do NOT commit this file):
FIREBASE_CREDENTIALS_PATH=path/to/serviceAccountKey.json

# Firestore
COLLECTION_NAME=DWLR_state

# API Security
API_KEY=your-secure-api-key

๐Ÿ”’ Security Note

Do not store actual API keys, service account JSON, or other secrets in README.md. Keep secrets in environment files (listed in .gitignore) or a secure secrets manager, and document only the variable names and how to set them.

๐Ÿ”’ Firebase Security Rules

Recommended Firestore security rules (in Firebase Console):

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    // Allow authenticated users to read DWLR_state data
    match /DWLR_state/{state=**} {
      allow read: if request.auth != null;
      allow write: if request.auth.token.admin == true;
    }
    
    // Allow users to read/write their own user data
    match /users/{userId} {
      allow read, write: if request.auth.uid == userId;
    }
  }
}

๐Ÿ†˜ Support

If you encounter any issues or bugs, please:

  • ๐Ÿ“Œ Check the Issues page to see if it's already reported
    • ๐Ÿ“ If not, create a new issue with:
    • ๐Ÿ–ฅ๏ธ Your OS and environment details
    • โš ๏ธ Error messages/logs
    • ๐Ÿ“ท Screenshots (if applicable)
    • ๐Ÿ” Steps to reproduce

For general questions or suggestions, feel free to open a discussion thread.


๐Ÿ› Troubleshooting

Common Issues & Solutions

Issue Solution
โŒ styled-components not found npm install styled-components @types/styled-components
โŒ Port 5173 already in use npm run dev -- --port 3000
โŒ Firebase connection fails Check .env credentials, verify Firestore is enabled
โŒ DWLR data not syncing Ensure CSV exists, check Firebase credentials
โŒ TypeScript errors rm -rf node_modules package-lock.json && npm install

๐Ÿ“š API Documentation

Backend Endpoints (Optional FastAPI)

Method Endpoint Description
GET /today-data Today's DWLR data for all states
GET /state-data DWLR data for specific state
POST /sync Manually trigger CSVโ†’Firebase sync

Example Requests:

# Get today's data
curl "http://localhost:8000/today-data?api_key=YOUR_API_KEY"

# Get state data
curl "http://localhost:8000/state-data?state=Maharashtra&api_key=YOUR_API_KEY"

# Trigger sync
curl -X POST "http://localhost:8000/sync?api_key=YOUR_API_KEY"

๐ŸŒ Impact

Our Mission

To empower India with real-time groundwater intelligence and enable data-driven solutions to the nation's water crisis.

What We Achieve

  • ๐Ÿ“ข Raise Awareness: About India's critical groundwater crisis using verified DWLR data from CGWB
  • ๐Ÿšจ Enable Fast Response: Quick emergency response procedures for water crises
  • ๐Ÿ“Š Data-Driven Policy: Support government agencies with actionable insights
  • ๐ŸŒฑ Promote Conservation: Provide community-level solutions and water saving tips
  • ๐Ÿค Community Connect: Link citizens with resources, NGOs, and emergency support

Who Benefits

User Group Benefits
๐Ÿ‘ฅ Citizens & Farmers Real-time water availability, conservation tips, emergency alerts
๐Ÿ›๏ธ Government Agencies DWLR analytics, policy support, crisis prediction
๐Ÿ”ฌ Researchers Historical trends, groundwater evaluation data
๐Ÿ“š NGOs & CSOs Community awareness tools, disaster management support
๐Ÿ“ฐ Media & Journalists Data transparency, story angles on water crisis

Sustainable Development Goals

AquaWatch contributes to multiple UN SDGs:

  • ๐ŸŽฏ SDG 6: Clean Water and Sanitation
  • ๐ŸŽฏ SDG 13: Climate Action
  • ๐ŸŽฏ SDG 15: Life on Land

๐Ÿค Contributing to AquaWatch

We welcome contributions from developers, data scientists, designers, and water experts!

How to Contribute

  1. ๐Ÿด Fork the repository
  2. ๐ŸŒฟ Create a feature branch: git checkout -b feature/YourFeature
  3. ๐Ÿ’ป Make your changes with clear, documented code
  4. โœ… Test your changes locally
  5. ๐Ÿ“ Commit with meaningful messages: git commit -m 'Add YourFeature'
  6. ๐Ÿ“ค Push to branch: git push origin feature/YourFeature
  7. ๐Ÿ”€ Create a Pull Request

Development Guidelines

  • โœ”๏ธ Follow TypeScript strict mode
  • โœ”๏ธ Add unit tests for new features
  • โœ”๏ธ Update documentation in README
  • โœ”๏ธ Maintain code consistency with ESLint
  • โœ”๏ธ Write meaningful commit messages
  • โœ”๏ธ Ensure Firebase security rules are updated

Areas We Need Help With

  • ๐ŸŽจ UI/UX Design: Improve dashboard aesthetics
  • ๐Ÿ“ฑ Mobile Optimization: Better mobile responsiveness
  • ๐ŸŒ Internationalization: Support regional languages
  • ๐Ÿ“Š Data Visualization: Enhanced charts and maps
  • ๐Ÿงช Testing: Unit & integration tests
  • ๐Ÿ“š Documentation: API docs, user guides
  • ๐Ÿ Backend Features: Advanced analytics, ML predictions

๐Ÿ“ž Contact & Links

Resource Link
๐Ÿ™ GitHub Repository KGFCH2/AquaWatch_1.0
๐Ÿ‘จ๐Ÿผโ€๐Ÿ’ป Creator Babin Bid
๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ Contributors Atanu Saha & Rohit Kumar Adak
๐ŸŒ Project Website AquaWatch
๐Ÿ“š CGWB Portal cgwb.gov.in
๐Ÿ“š Ministry of Jal Shakti jalsakhti.gov.in

๐ŸŒŠ AquaWatch Project Licensing

๐Ÿ“œ Overall License

The AquaWatch project is licensed under the MIT License, a permissive open-source license that allows for broad use, modification, and distribution of the software. The full text of the MIT License is available in the LICENSE file at the root of this repository.

๐Ÿ”‘ Key Points of the MIT License

  • Copyright (c) 2025 AquaWatch: All rights are reserved by the copyright holder.
  • Permission Granted: Free use, copying, modification, merging, publishing, distribution, sublicensing, and selling of the software is permitted without restriction.
  • Condition: The copyright notice and permission notice must be included in all copies or substantial portions of the Software.
  • Disclaimer: The software is provided "AS IS" without warranty of any kind.

โš ๏ธ Crucial Aspects

  1. ๐ŸŒ Open-Source Nature: AquaWatch is committed to open-source principles, promoting transparency, collaboration, and community-driven development.
  2. ๐Ÿ”“ Permissive Licensing: The MIT License allows commercial use, private modifications, and redistribution, making it suitable for integration into various applications and services.
  3. ๐Ÿค Community Contributions: Contributors must agree to license their contributions under the same MIT License.
  4. ๐Ÿ“ Attribution: Proper attribution to the original authors and the AquaWatch project is essential for maintaining credit and legal compliance.

โœ… Do's and โŒ Don'ts for the AquaWatch Project

โœ… Do's

  • ๐Ÿ†“ Use Freely: Utilize the software in personal, academic, or commercial projects without seeking permission.
  • ๐Ÿ”ง Modify and Distribute: Make changes to the code and share your modifications with others.
  • ๐Ÿ’ก Contribute: Submit pull requests, bug reports, and feature requests to improve the project.
  • ๐Ÿ“‹ Include Copyright Notice: Always include the MIT License text and copyright notice when distributing copies of the software.
  • ๐Ÿ”— Combine with Other Software: Integrate AquaWatch components into larger systems or applications.
  • ๐Ÿ’ฌ Provide Feedback: Report issues, suggest improvements, and participate in discussions.

โŒ Don'ts

  • ๐Ÿšซ Remove Copyright Notice: Do not delete or alter the copyright notice or license text from any distributed copies.
  • ๐Ÿšซ Claim Ownership: Do not claim exclusive rights or ownership over the software or its derivatives.
  • ๐Ÿšซ Misrepresent Origin: Avoid presenting modified versions as the original AquaWatch software without clear indication of changes.
  • ๐Ÿšซ Violate Laws: Do not use the software for illegal purposes or in ways that infringe on other copyrights or trademarks.
  • ๐Ÿšซ Expect Warranty: Do not rely on implied warranties; the software is provided without guarantees.
  • ๐Ÿšซ Ignore Community Guidelines: Refrain from submitting contributions that violate the project's code of conduct or contribution guidelines.

๐Ÿ“Œ Additional Notes

  • For commercial use, while the MIT License allows it, consider contributing back improvements or acknowledging the project in your products.
  • If you have questions about licensing or contributions, please open an issue in the repository or contact the maintainers.
  • This licensing information applies to all components of the AquaWatch project, including frontend, backend, and associated data files.

For the complete legal text, refer to the LICENSE file.


๐Ÿ™ Acknowledgments

  • ๐Ÿ›๏ธ Central Ground Water Board (CGWB) - For DWLR dataset and resources
  • ๐Ÿ‡ฎ๐Ÿ‡ณ Ministry of Jal Shakti - Policy and guidance
  • ๐Ÿ’ป Open Source Community - React, Firebase, Tailwind, FastAPI ecosystem
  • ๐Ÿ‘ฅ Contributors & Users - Your feedback and improvements

๐Ÿ”ต Built for India's Water Security ๐Ÿ‡ฎ๐Ÿ‡ณ ๐Ÿ”ต

๐Ÿ’ง Monitoring Groundwater. Managing Crisis. Empowering Communities. ๐Ÿ’ง

Every drop counts. Every state matters. Every action helps.


Made with โค๏ธ for India's sustainable water future

๐Ÿ•’ Last Updated: December 6, 2025 | ๐Ÿ“Œ Version: 1.0.0 | ๐Ÿ“ Status: Active Development


โฌ† Back to top


About

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors