Skip to content

NirKli/WattBot

Repository files navigation

⚡️ WattBot – Electricity Meter Reading Assistant

Upload UI

Build Backend Build Frontend Coverage Status License Release WattBot Pulls WattBot UI Pulls

WattBot is a full-stack web application that lets you upload images of electricity meters and automatically extract readings using a custom-trained YOLO model.
The project includes a Python FastAPI backend and a React frontend with support for dark mode, currency selection, and price tracking.


🚀 Features

  • 📸 Upload electricity meter images
  • 🔍 Detect digital readings using a trained YOLO model
  • 🌙 Dark mode support
  • 💰 Track electricity prices and consumption history
  • 🛠 Built with FastAPI (Python) and React + Material UI
  • 🐳 Easy deployment via Docker

🧠 Tech Stack

  • Frontend: React, Material UI, TypeScript
  • Backend: FastAPI, Python 3.13, Uvicorn, Pydantic
  • Machine Learning: YOLOv11s-obb (custom-trained on real electricity meter data)
  • Database: MongoDB
  • Containerization: Docker, Docker Compose
  • CI/CD: GitHub Actions

📦 Installation

🔧 Prerequisites

🛠️ Steps

  1. Create a new folder and save the contents of docker-compose.yml from this repo into a file named docker-compose.yml.

  2. Open a terminal in that folder and run:

docker compose pull
docker compose up -d
  1. Navigate to the app:

If you're deploying on a remote server, replace localhost with your server's IP (e.g., http://123.123.123.123:5173).

⚠️ Model Accuracy Note

The YOLO model was trained on a limited dataset of real electricity meters. If your meter's layout or font style is significantly different, the reading might be misinterpreted.
If you encounter inaccuracies and want to improve precision for your meter type, feel free to open an issue contributions are welcome!


🌐 Local Development

🔧 Prerequisites

Make sure you have the following installed on your machine:

🧠 Backend (API)

Runs on http://localhost:8000

cd backend
pip install -r requirements.txt
uvicorn main:app --reload

Swagger UI available at: http://localhost:8000/docs

🌍 Frontend (React)

Runs on http://localhost:5173

cd frontend
npm install
npm run dev

🔍 API Documentation

FastAPI automatically generates interactive API docs:

  • Swagger UI – Try out endpoints directly from the browser
  • ReDoc – Clean reference-style documentation

📄 License

This project is licensed under the MIT License – see the LICENSE file for details.

About

Smart OCR app for reading electricity meters from images

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Contributors 2

  •  
  •