A web-based platform for citizens to report and track Water, Sanitation, and Hygiene (WASH) issues in Bengaluru, India.
AquaWatch enables citizens to:
- Report WASH issues with photos, descriptions, and locations
- Track reports on an interactive map
- View community statistics and leaderboard
- Get AI assistance for water safety and hygiene questions
# Windows
start index.html
# macOS
open index.html
# Linux
xdg-open index.html# Python 3
python -m http.server 8000
# Then open http://localhost:8000
# Node.js
npx serve .| Feature | Description |
|---|---|
| 🗺️ Interactive Map | View all reported issues on OpenStreetMap with color-coded markers |
| 📝 Report Issues | Submit new WASH issues with category, photo, and location |
| 📊 Dashboard | View personal and community statistics |
| 🏆 Leaderboard | See top contributors in the community |
| 💬 AI Chatbot | Get instant answers about water safety and hygiene |
| 👤 Profile | Track points, badges, and manage your profile |
- Click the 📝 Report tab
- Select issue category (Contaminated Water, Open Drainage, etc.)
- Add description and location
- Optionally attach a photo
- Click Submit → Earn 10 points!
- View on the 🗺️ Map - click markers for details
- Check 📊 Dashboard for status updates
- Filter by status (Open, Investigating, Resolved)
- 🌊 First Reporter: Submit your first report
- 🛡️ Water Guardian: Submit 5 reports
- 🏆 Clean Streets: Submit 10 reports
- 💉 Lifesaver: Submit 20 reports
aquawatch/
├── index.html # Main application (single-file React app)
├── package.json # NPM configuration
├── vite.config.js # Vite dev server config
├── tailwind.config.js # Tailwind CSS config
├── postcss.config.js # PostCSS config
├── .gitignore # Git ignore rules
├── .env.example # Environment variables template
├── README.md # This file
├── ARCHITECTURE.md # System design documentation
├── task_plan.md # Development task tracking
└── docs/
└── decisions/ # Architecture Decision Records
├── ADR-001.md # Single HTML file implementation
├── ADR-002.md # LocalStorage for persistence
├── ADR-003.md # OpenStreetMap for mapping
└── ADR-004.md # Rule-based AI chatbot
After every working session, follow these steps:
# 1. Check status
git status
# 2. Stage all changes
git add -A
# 3. Commit with descriptive message
git commit -m "Description of changes made"
# 4. Push to GitHub
git push origin masterCommit Message Format:
<type>: <short description>
- Change 1
- Change 2
- Change 3
Types: feat, fix, docs, style, refactor, chore
- New Report Category: Add to
CATEGORIESobject (around line 89) - New Badge: Add to
BADGESobject (around line 104) - New AI Response: Add to
AI_RESPONSESobject - New Hygiene Tip: Add to
HYGIENE_TIPSarray
- Uses embedded React components in single HTML file
- Tailwind CSS classes for styling
- Custom CSS animations in
<style>tag - All JavaScript in
<script type="text/babel">block
// Report Categories
CATEGORIES = {
CONTAMINATED_WATER: { name, icon, color, riskWeight },
BROKEN_FACILITY: { ... },
OPEN_DRAINAGE: { ... },
LACK_SOAP: { ... },
OTHER: { ... }
}
// Report Statuses
STATUSES = {
OPEN: { name, bgColor, textColor, borderColor },
INVESTIGATING: { ... },
RESOLVED: { ... }
}
// Achievement Badges
BADGES = {
FIRST_REPORTER: { name, icon, description },
WATER_GUARDIAN: { ... },
CLEAN_STREETS: { ... },
LIFESAVER: { ... }
}After any code change:
- Open
index.htmlin browser - Test the feature
- Check browser console for errors
- Verify LocalStorage works
- Commit & Push
- Data stored locally: Reports only exist in browser localStorage
- Single user: No authentication system
- Bengaluru only: Hardcoded coordinates and BBMP references
- Fake GPS: New reports use random coordinates near Bengaluru center
See docs/LIMITATIONS.md for detailed limitations.
- URL: https://github.com/Rohith31-WD/Aqua-Watch
- Branch: main
- Remote: origin
git add -A && git commit -m "Session update: <changes>" && git push origin mainMIT License - Created for Bengaluru Water & Sanitation Monitoring.
Rohith31-WD
Built with 💙 for Bengaluru's community water safety.
Remember: Commit and push your changes after every working session!