Administrative panel for the Metaverse Rang Microservice ecosystem, built with Laravel and Vite.
This application provides a centralized administration interface for managing administrative operations and interacting with the services that form the Metaverse Rang platform.
- Overview
- Features
- Technology Stack
- Requirements
- Installation
- Environment Configuration
- Database Setup
- Running the Application
- Frontend Assets
- Testing
- Code Quality
- Project Structure
- Development Workflow
- Contributing
- Security
- License
Metaverse Rang Microservice Admin Panel is an administrative application developed as part of the Metaverse Rang platform.
The project is designed to provide an administration layer for the platform and its microservice-based ecosystem.
The Admin Panel is responsible for providing an administrative interface where authorized users can perform management and operational tasks through a centralized web application.
The application is built with Laravel and uses Vite for frontend asset development and bundling.
The Admin Panel is designed to support administrative workflows across the Metaverse Rang ecosystem.
Depending on the enabled modules and connected services, the application may provide functionality such as:
- Administrative dashboard
- Authentication and access control
- User and account management
- Resource management
- Data management
- CRUD operations
- Form validation
- Search and filtering
- Pagination
- Administrative workflows
- Integration with backend services
- Database-driven functionality
- Localization support
- Responsive administrative interface
- Automated testing
- Production-ready asset building
The exact functionality available in the application is determined by the current implementation and enabled modules.
- PHP
- Laravel
- Laravel Routing
- Laravel Middleware
- Laravel Controllers
- Laravel Models
- Laravel Migrations
- Laravel Validation
- Laravel Configuration
- Blade templates
- Vite
- JavaScript
- CSS
- Frontend assets managed through the Vite build system
The application uses Laravel's database layer and migration system.
The exact database engine is configured through the application's environment variables.
- PHPUnit
- Laravel testing utilities
- Composer
- Node.js
- npm
- Vite
- Git
- GitHub
Before installing the project, make sure the following tools are available on your development machine.
- PHP
- Composer
- Node.js
- npm
- A supported database
- Git
The exact PHP version and package requirements are defined by the project's composer.json.
The frontend Node.js requirements and available scripts are defined by package.json.
You can check the installed versions with:
php -vcomposer -Vnode -vnpm -vgit clone https://github.com/iranpsc/Metaverse-Rang-Microservice-Admin-Panel.gitMove into the project directory:
cd Metaverse-Rang-Microservice-Admin-PanelInstall Laravel and PHP dependencies using Composer:
composer installFor production environments, use:
composer install --no-dev --optimize-autoloaderInstall Node.js dependencies:
npm installCreate your local environment configuration from the example environment file if one is provided by the repository:
cp .env.example .envOn Windows PowerShell:
Copy-Item .env.example .envConfigure the required environment variables in .env.
Typical Laravel configuration includes:
APP_NAME="Metaverse Rang Admin Panel"
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhostDatabase configuration:
DB_CONNECTION=
DB_HOST=
DB_PORT=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=Additional environment variables may be required depending on the services and integrations used by the application.
Never commit your
.envfile to the repository.
Do not commit:
- Passwords
- API keys
- Access tokens
- Private keys
- Database credentials
- Production credentials
- SMTP credentials
- Other sensitive configuration
Generate the Laravel application key:
php artisan key:generateThis command updates the APP_KEY value in your .env file.
Configure your database connection in .env.
After configuring the database, run Laravel migrations:
php artisan migrateIf the project provides seeders and you need to populate the database with development data:
php artisan db:seedOr:
php artisan migrate --seedOnly run database reset commands such as
migrate:freshin development or test environments where data loss is acceptable.
If the application uses Laravel's public storage disk, create the required symbolic link:
php artisan storage:linkStart the Laravel development server:
php artisan serveThe application will be available at the local address displayed by Laravel.
The project uses Vite for frontend asset development and bundling.
Start the Vite development server:
npm run devFor production assets:
npm run buildDuring development, you may need to run both Laravel and Vite:
Laravel Application
│
▼
php artisan serve
+
Vite Development Server
│
▼
npm run dev
For production deployments, build the frontend assets before starting the application according to the project's deployment process.
Run the development server:
php artisan serveClear application cache:
php artisan cache:clearClear configuration cache:
php artisan config:clearClear route cache:
php artisan route:clearClear compiled application files:
php artisan clear-compiledRun migrations:
php artisan migrateCreate a migration:
php artisan make:migration create_example_tableCreate a model:
php artisan make:model ExampleCreate a controller:
php artisan make:controller ExampleControllerInstall dependencies:
npm installStart development mode:
npm run devBuild production assets:
npm run buildThe exact scripts available in the project are defined in package.json.
Testing is an important part of the project's development and quality assurance process.
The project uses PHPUnit and Laravel's testing capabilities.
Run the test suite with:
php artisan testOr directly with PHPUnit:
vendor/bin/phpunitRun a specific test file:
php artisan test tests/Feature/ExampleTest.phpRun a specific test by name:
php artisan test --filter=ExampleTestBefore opening a Pull Request, contributors should ensure that:
- Existing tests pass.
- New functionality has appropriate tests.
- Bug fixes include regression tests where applicable.
- Tests are deterministic.
- Tests do not depend on local production data.
Tests should focus on application behavior rather than implementation details.
Important areas to test include:
- Authentication
- Authorization
- Validation
- Business logic
- Controllers
- Database interactions
- API integrations
- Error handling
- Edge cases
- Regression scenarios
When changing existing functionality, update affected tests accordingly.
When adding new functionality, include tests that demonstrate both expected behavior and important failure scenarios.
All contributions should maintain the quality and consistency of the existing codebase.
Contributors should:
- Follow Laravel conventions.
- Keep controllers focused.
- Avoid unnecessary business logic inside controllers.
- Reuse existing services and utilities where appropriate.
- Validate user input.
- Handle errors consistently.
- Avoid duplicated logic.
- Keep database queries efficient.
- Avoid unnecessary dependencies.
- Write maintainable and readable code.
- Add tests for meaningful behavior changes.
The project follows a Laravel application structure.
The main directories include:
.
├── app/
│ ├── Console/
│ ├── Exceptions/
│ ├── Http/
│ ├── Models/
│ └── Providers/
│
├── bootstrap/
│
├── config/
│
├── database/
│ ├── factories/
│ ├── migrations/
│ └── seeders/
│
├── lang/
│
├── public/
│
├── resources/
│
├── routes/
│
├── storage/
│
├── tests/
│
├── .github/
│
├── artisan
├── composer.json
├── package.json
├── phpunit.xml
├── vite.config.js
├── CONTRIBUTING.md
├── LICENSE
├── SECURITY.md
└── README.md
The exact structure may evolve as the project grows.
The Admin Panel is part of the broader Metaverse Rang microservice ecosystem.
Depending on the implemented modules, the application may communicate with backend services through configured APIs or service integrations.
When modifying service integrations, contributors should consider:
- API contracts
- Authentication
- Authorization
- Request validation
- Response handling
- Error handling
- Timeouts
- Retry behavior
- Backward compatibility
- Logging
- Security
Changes that affect communication with backend microservices should be documented in the Pull Request.
Breaking changes to service contracts should be coordinated with the maintainers of the affected services.
The recommended workflow is:
Issue / Task
│
▼
Create Branch
│
▼
Implement Change
│
▼
Add / Update Tests
│
▼
Run Quality Checks
│
▼
Commit Changes
│
▼
Push Branch
│
▼
Open Pull Request
│
▼
CI Validation
│
▼
Code Review
│
▼
Approval
│
▼
Merge
All contributors should read CONTRIBUTING.md before submitting changes.
Use descriptive branch names.
Recommended naming conventions:
feature/<description>
fix/<description>
refactor/<description>
test/<description>
docs/<description>
chore/<description>
hotfix/<description>
Examples:
feature/admin-user-management
fix/authentication-error
test/user-management
refactor/service-layer
docs/update-readme
chore/update-dependencies
Keep branches focused on one logical change.
Use clear and meaningful commit messages.
Recommended format:
type(scope): short description
Examples:
feat(users): add user management
fix(auth): handle expired session
test(users): add user management tests
refactor(api): improve service integration
docs(readme): update installation guide
chore(ci): update test workflow
Recommended commit types:
feat— New functionalityfix— Bug fixtest— Testsrefactor— Code restructuringdocs— Documentationstyle— Formatting or style-only changesperf— Performance improvementchore— Maintenanceci— CI/CD changesbuild— Build system changes
All code changes should be submitted through Pull Requests.
A Pull Request should:
- Have a clear title.
- Explain what was changed.
- Explain why the change was necessary.
- Reference the related Issue or task when applicable.
- Include appropriate tests.
- Pass required CI checks.
- Avoid unrelated changes.
- Include screenshots for significant UI changes.
- Document configuration changes.
- Document API or microservice contract changes.
Before requesting review:
- The change follows project conventions.
- Relevant tests were added or updated.
- Existing tests pass.
- The application runs successfully.
- Frontend assets build successfully.
- No secrets were committed.
- Environment changes are documented.
- Documentation was updated when necessary.
- The Pull Request is focused on one logical change.
- CI checks are passing.
Security is a critical part of the project.
Never commit sensitive information to the repository.
This includes:
- Passwords
- API keys
- Access tokens
- Private keys
- Database credentials
- Production environment files
- SMTP credentials
Security vulnerabilities should not be reported through public GitHub Issues.
Please follow the security reporting process described in SECURITY.md.
Contributions are welcome.
Before contributing, please read:
All contributions are subject to code review and automated quality checks.
This project is distributed under the license specified in LICENSE.
Please review the license file before using, modifying, or redistributing the project.
Maintained as part of the Metaverse Rang project ecosystem.
Repository:
https://github.com/iranpsc/Metaverse-Rang-Microservice-Admin-Panel
Thank you to everyone who contributes to the Metaverse Rang ecosystem through code, testing, documentation, issue reports, and technical feedback.