SmartWatt is a full-stack residential energy estimation platform for Kerala households. The project combines a machine learning inference layer with physics-based constraints to produce appliance-level consumption estimates, bill projections, and usage insights.
SmartWatt is designed to provide practical, software-only household energy intelligence without requiring additional IoT hardware. The platform estimates appliance-wise consumption from user-provided inputs, reconciles predictions with physics constraints, and produces transparent reports aligned with Kerala tariff structures. It is intended for student research, engineering validation, and real-world decision support for electricity cost optimization.
| Application Home | User Workflow |
|---|---|
![]() |
![]() |
| Dashboard | Results Report |
|---|---|
![]() |
![]() |
If images are not visible yet, add files to docs/screenshots/ as described in docs/screenshots/README.md.
Backend/: FastAPI-based inference and billing service.Frontend/: Next.js-based web application and dashboard.start_backend.bat: convenience launcher for backend development.Run.txt: minimal local run reference.
- Hybrid AI and deterministic physics pipeline.
- Appliance-level and batch prediction endpoints.
- KSEB slab-aware bill calculation.
- Scenario simulation for potential savings.
- Dashboard reporting and persisted assessment history.
Hybrid Inference Pipeline
- Routes complex appliances through trained neural models.
- Uses deterministic physics constraints for stable outputs.
- Provides confidence and anomaly metadata for transparency.
End-to-End User Flow
- Guided multi-step input on the frontend.
- Batch prediction and reconciliation in backend services.
- KSEB tariff-aware billing and optimization insights.
- Start backend:
cd Backend
python -m uvicorn main:app --reload --port 8000- Start frontend in a second terminal:
cd Frontend
npm install
npm run dev- Open the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- Backend docs: http://localhost:8000/docs
- Keep local secrets only in
.envor.env.localfiles. - Use
.env.examplefiles as templates for required keys.
- TypeScript and Python code should remain lint- and test-friendly.
- API schema and frontend field mappings should be updated together.
- Documentation changes should accompany architectural or interface changes.
This repository is licensed under the MIT License. See LICENSE.



