# MerchBay Admin Panel A comprehensive administration platform built with Laravel 5.2 for managing e-commerce operations, product catalogs, and customer relationships. ## Overview MerchBay Admin is a web-based administration interface designed to streamline business operations for custom merchandise and sportswear management. The platform provides robust tools for inventory control, order processing, and analytics. ## Technology Stack - **Framework**: Laravel 5.2 - **PHP Version**: 7.4 - **Web Server**: Apache 2.4 - **Database**: MySQL - **Reverse Proxy**: Traefik with Let's Encrypt SSL - **Containerization**: Docker & Docker Compose - **CI/CD**: Gitea Actions ## Features - User authentication and role-based access control - Product and inventory management - Order processing and tracking - Customer relationship management - Analytics and reporting dashboard - RESTful API endpoints - Secure HTTPS communication ## Requirements - Docker Engine 20.10+ - Docker Compose 2.0+ - PHP 7.4 (for local development) - Composer 1.x - MySQL 5.7+ or MariaDB 10.3+ ## Quick Start ### Using Docker (Recommended) ```bash # Clone the repository git clone cd merchbay_admin # Copy environment file cp .env.example .env # Configure your environment variables vim .env # Build and start containers docker-compose up -d # Install dependencies docker exec merchbay_admin_app composer install # Generate application key docker exec merchbay_admin_app php artisan key:generate # Run migrations docker exec merchbay_admin_app php artisan migrate ``` ### Local Development ```bash # Install PHP dependencies composer install # Copy environment file cp .env.example .env # Generate application key php artisan key:generate # Configure database in .env file # Run migrations php artisan migrate # Start development server php artisan serve ``` ## Configuration ### Environment Variables Key environment variables to configure: - `APP_URL` - Application URL (e.g., https://admin.merchbay.app) - `DB_HOST` - Database host - `DB_DATABASE` - Database name - `DB_USERNAME` - Database username - `DB_PASSWORD` - Database password ### SSL/HTTPS Configuration The application uses Traefik as a reverse proxy with automatic Let's Encrypt SSL certificates. Ensure your DNS is properly configured and the following Traefik labels are set in `docker-compose.yml`. ## Deployment This project includes automated CI/CD pipelines via Gitea Actions: - **Development**: Auto-deploys on push to `dev` branch - **Production**: Auto-deploys on push to `main`/`master` branch - **Manual Builds**: Trigger builds with custom tags Refer to [DEPLOYMENT.md](DEPLOYMENT.md) and [DEPLOYMENT-PORTAINER.md](DEPLOYMENT-PORTAINER.md) for detailed deployment instructions. ## Project Structure ``` merchbay_admin/ ├── app/ # Application core files │ ├── Http/ # Controllers, middleware, routes │ ├── Models/ # Eloquent models │ └── Providers/ # Service providers ├── config/ # Configuration files ├── database/ # Migrations and seeds ├── public/ # Public assets ├── resources/ # Views, assets, lang files ├── storage/ # Application storage ├── .gitea/workflows/ # CI/CD pipelines └── docker-compose.yml # Docker configuration ``` ## Development ### Running Tests ```bash # Run PHPUnit tests docker exec merchbay_admin_app vendor/bin/phpunit # Or locally ./vendor/bin/phpunit ``` ### Artisan Commands ```bash # List all available commands docker exec merchbay_admin_app php artisan list # Clear application cache docker exec merchbay_admin_app php artisan cache:clear # Run database migrations docker exec merchbay_admin_app php artisan migrate ``` ## Security - All HTTP traffic is automatically redirected to HTTPS - Environment variables are managed securely via `.env` files - SQL injection prevention via Eloquent ORM - CSRF protection enabled on all forms - XSS protection via Blade templating For security vulnerabilities, please contact the development team directly. ## Documentation Additional documentation is available: - [Docker Setup Guide](README-DOCKER.md) - [Deployment Guide](DEPLOYMENT.md) - [Portainer Deployment](DEPLOYMENT-PORTAINER.md) - [Traefik SSL Configuration](TRAEFIK-SSL-CONFIG.md) ## Support For issues, questions, or contributions, please contact the development team or open an issue in the repository. ## License This project is proprietary software. All rights reserved.