EnergyTrack is a full-stack web application designed to help homeowners in Ghana (and elsewhere) track, calculate, and analyze their household electricity usage and costs.
# EnergyTrack ⚡ — Electricity Usage Tracking App
EnergyTrack is a full-stack web application designed to help homeowners in Ghana (and elsewhere) track, calculate, and analyze their household electricity usage and costs.
## 🚀 **Features**
- **Dashboard**: Real-time visualization of daily usage (kWh) and estimated costs (GHS).
- **Add Appliance**: Form to register new devices with wattage and expected usage hours.
- **Cost Analysis**: Simulation tool to estimate the impact of adding a new device before buying it.
- **24/7 Monitoring**: Dedicated tracking for always-on base loads like refrigerators and routers.
- **Auto-Calculations**: Automatic cost estimation based on current Ghana ECG rates.
---
## 🏗️ **Technology Stack**
- **Frontend**: React (Vite), Axios, Lucide Icons, Vanilla CSS.
- **Backend**: Spring Boot 3.2, Java 21, Spring Data JPA, Maven.
- **Database**: MySQL.
---
## 🛠️ **Local Setup**
### 1. **Database Configuration**
Run the following SQL in your MySQL client:
```sql
CREATE DATABASE IF NOT EXISTS energy_track_db;
CREATE USER IF NOT EXISTS 'electro_track'@'localhost' IDENTIFIED BY '123@electro_pass!';
GRANT ALL PRIVILEGES ON energy_track_db.* TO 'electro_track'@'localhost';
FLUSH PRIVILEGES;
```
### 2. **Run Backend**
1. Navigate to `/backend`.
2. Run `mvn clean install` to build.
3. Run `mvn spring-boot:run` to start the API (port 8080).
### 3. **Run Frontend**
1. Navigate to `/frontend`.
2. Run `npm install` to install dependencies.
3. Run `npm run dev` to start the frontend (port 5173).
---
## 🎨 **Design System**
- **Theme**: Dark Navy / Electric Yellow / Electric Blue.
- **Styling**: Modern glassmorphism with smooth CSS transitions and mobile-first responsive layout.
- **Font**: Outfit (Google Fonts).
---
## **License**
MIT License.