This web app is to coordinate Solar energy companies in Sudan
# ☀️ Solar Energy Management System
A full-stack web application designed to streamline solar inventory operations, monitor renewable equipment assets, and handle client equipment requests efficiently.
---
## 💼 1. Business Scenario & Feature Matrix
### Business Scenario
Modern solar distribution businesses and renewable energy suppliers struggle to manage complex component inventories—ranging from individual high-efficiency panels and battery storage units to bundled off-grid system packages.
The **Solar Energy Management System** addresses this challenge by providing:
* **For Customers:** An intuitive portal to explore, filter, and queue solar energy products and packages for order requests.
* **For Staff & Admins:** A centralized control dashboard to maintain live inventory, track asset availability, and review past order histories.
---
### Feature Matrix
| Feature Module | Functionality / Description | User Role |
| :--- | :--- | :--- |
| **Catalog & Discovery** | Search and filter solar equipment by category (Panels, Batteries, Packages). | All Users |
| **Interactive Cart** | Real-time drawer pop-up to update item quantities, review subtotals, and stage items before checkout. | Customer |
| **Inventory Management** | Dynamic dashboard view to inspect stock statuses, add new catalog assets, or remove obsolete items. | Admin / Staff |
| **Order History** | View historical receipts, order reference codes, and payment completion statuses. | Customer / Staff |
| **Account Management** | Modal interface to update user credentials and security credentials. | Registered Users |
| **Authentication Flow** | Dual-mode login and sign-up interface connected to secure backend validation. | All Users |
---
## 🗄️ 2. Database Schema Architecture
The relational schema for managing catalog assets, system users, shopping carts, and past transactions is structured as follows:
### Entity Relationships
1. **`USERS` → `ORDERS` (1 : N):** One user can place multiple equipme …