diff --git a/README.md b/README.md new file mode 100644 index 0000000..bb48f6f --- /dev/null +++ b/README.md @@ -0,0 +1,77 @@ +# Mariavel + +**Mariavel** is a modern, high-performance database management tool designed to replace traditional, clunky interfaces with a sleek, developer-centric experience. Built with **Laravel 11**, **React**, and **DevExtreme**, it offers a premium UI and robust backend architecture adhering to **SOLID** principles. + +![Mariavel Dashboard](docs/ss/dashboard_dark.png) + +## ๐Ÿš€ Features + +- **Zero-Lag Performance:** Virtual scrolling for millions of rows using DevExtreme DataGrid. +- **Dynamic Connectivity:** Switch between multiple databases and connections on-the-fly. +- **SOLID Architecture:** Maintainable and scalable codebase using Service-Repository patterns and Dependency Inversion. +- **Premium UI/UX:** A high-end "Nano Banana" aesthetic with glassmorphism, Dark/Light mode, and MUI components. +- **CLI-Powered Tools:** Asynchronous Import/Export using system-level `mysqldump` and `mysql` commands. + +## ๐Ÿ› ๏ธ Tech Stack + +- **Backend:** Laravel 11, PHP 8.5+, Sanctum, Laravel Reverb (WebSockets). +- **Frontend:** React (TypeScript), Vite, Material UI (MUI), DevExtreme DataGrid. +- **Database:** MySQL/MariaDB (Initial support, architected for multi-engine support). + +--- + +## ๐Ÿ“ฆ Getting Started + +### Prerequisites + +- PHP 8.2 or higher +- Composer +- Node.js & NPM +- MySQL Server + +### 1. Backend Setup + +```bash +cd backend +composer install +cp .env.example .env +php artisan key:generate +php artisan migrate +php artisan serve +``` + +The backend will be running at `http://localhost:8000`. + +### 2. Frontend Setup + +```bash +cd frontend +npm install +npm run dev +``` + +The frontend will be running at `http://localhost:5173`. + +--- + +## ๐Ÿ—๏ธ Architecture (SOLID) + +Mariavel is built with long-term maintainability in mind: + +- **Single Responsibility (SRP):** Business logic is decoupled into specialized Services and Repositories. +- **Dependency Inversion (DIP):** Controllers depend on Abstractions (Interfaces), allowing for seamless swaps of database drivers. +- **Open/Closed (OCP):** New database engines can be added by implementing the `DatabaseDriverInterface` without modifying existing core logic. + +--- + +## ๐Ÿ“ธ Screenshots + +| Dashboard (Dark Mode) | Table Explorer (Light Mode) | +| :--- | :--- | +| ![Dashboard](docs/ss/dashboard_dark.png) | ![Table Explorer](docs/ss/table_explorer_light.png) | + +--- + +## ๐Ÿ“„ License + +This project is developed by **Antigravity** for **Trunรงgil Teknoloji**.