chore(docs): update README.md

This commit is contained in:
idevakk
2025-09-29 13:43:14 +05:30
parent 82958b9047
commit 35cc3d0f2c

233
README.md
View File

@@ -1,42 +1,233 @@
# 📩 iSMS - Temporary SMS Receiver # 🚀 Laravel Filament Admin Starter Kit
A Laravel-based web application that allows users to receive SMS messages online via temporary phone numbers. Useful for testing or anonymous verification. A pre-configured **Laravel Admin Panel Starter Kit** built with [Livewire Starter Kit](https://github.com/laravel-livewire/starter-kit) and powered by [FilamentPHP](https://filamentphp.com/).
Ideal for developers who want to skip boilerplate setup and jump straight into building robust admin dashboards, with essential tools and permissions already in place.
--- ---
## 🚀 Features ## Features at a Glance
* 📱 Temporary phone numbers (dynamic or pre-defined) * ✅ Livewire Starter Kit foundation
* 📨 Real-time SMS receiving and display * ✅ Elegant UI with **FilamentPHP**
* 🛠 Admin panel for managing numbers and messages * ✅ Filament Panel configurable via `.env`
* 🔒 Basic spam protection and rate limiting * ✅ Roles & Permissions (Spatie)
* 📊 Logs and analytics (optional) * ✅ Activity Logging
* ✅ Mail & Log Viewer
* ✅ Code quality with **RectorPHP**
* ✅ Authentication with default seeded admin
--- ---
## 🧰 Tech Stack ## 📂 Admin Panel Access
* **Framework:** Laravel 12+ * **Panel ID:** `dash`
* **Database:** MySQL * **Admin Route:** `/dash` (configurable)
* **Frontend:** Blade / Tailwind CSS * **Default Admin Credentials:**
* **Real-time:** Laravel Echo + Pusher (optional)
* **Queue:** Redis / Database queues | Email | Password |
| ------------------- | ---------- |
| `admin@example.com` | `password` |
> ⚠️ **Change these credentials before deploying to production.**
--- ---
## 🔐 Security Notes ## ⚙️ Environment Configuration
* Do not use this in production without proper rate-limiting & abuse prevention. All major features are easily configurable using environment variables:
* Use HTTPS and secure access to the admin panel.
```env
# Filament Admin Panel
FILAMENT_ROUTE=dash
FILAMENT_ENABLE_LOGIN=true
FILAMENT_ENABLE_REGISTER=false
FILAMENT_ENABLE_PROFILE=false
# Activity Logger
ACTIVITY_LOGGER_ENABLED=true
ACTIVITY_LOGGER_TABLE_NAME=activity_log
# Log Viewer
FILAMENT_LOG_VIEWER_DRIVER=raw
```
--- ---
## 📄 License ## 🎨 Filament Panel Configuration
This project is open-source under the [MIT License](LICENSE). The Filament admin panel's appearance and basic behaviors are defined in `config/filament-php.php`:
```php
<?php
use Filament\Support\Colors\Color;
return [
'route' => env('FILAMENT_ROUTE', 'dash'),
'colors' => [
'primary' => Color::Teal,
'danger' => Color::Red,
'gray' => Color::Zinc,
'info' => Color::Blue,
'success' => Color::Green,
'warning' => Color::Amber,
],
'enable_login' => env('FILAMENT_ENABLE_LOGIN', true),
'enable_registration'=> env('FILAMENT_ENABLE_REGISTER', false),
'enable_profile' => env('FILAMENT_ENABLE_PROFILE', false),
];
```
You can easily override the route, theming colors, and feature toggles via `.env`.
--- ---
## 👨‍💻 Contributing ## 🔐 Roles & Permissions
Feel free to fork the repo and submit PRs. Bug reports and feature suggestions are welcome! This starter kit uses [Spatie Laravel Permission](https://spatie.be/docs/laravel-permission) with the following default setup:
### 👤 Roles
* `admin` Full control, including access to logs and mails
* `user` No permissions assigned by default
### 🔑 Permissions
The `admin` role is granted the following permissions:
* `manage mails`
* `manage panels`
These are assigned in the `RoleSeeder` class:
```php
class RoleSeeder extends Seeder
{
public function run(): void
{
$role = Role::findOrCreate(name: 'admin', guardName: 'web');
Role::findOrCreate(name: 'user', guardName: 'web');
$permissionManageMails = Permission::findOrCreate(name: 'manage mails', guardName: 'web');
$role->givePermissionTo($permissionManageMails);
$permissionManageFilamentPanel = Permission::findOrCreate(name: 'manage panels', guardName: 'web');
$role->givePermissionTo($permissionManageFilamentPanel);
}
}
```
> ✅ You can expand this by adding more roles and permissions via the Filament UI or custom seeders.
---
## 📨 Mail Viewer
View all outgoing mail inside the Filament admin panel — ideal for local and staging environments.
---
## 🪵 Log Viewer
Filament Log Viewer is pre-configured to use the `raw` driver:
```env
FILAMENT_LOG_VIEWER_DRIVER=raw
```
View and analyze application logs from the admin panel.
For advanced configuration, see the [Log Viewer docs](https://github.com/ryangjchandler/filament-log).
---
## 🕵️ Activity Logger
Tracks user actions and stores them in the `activity_log` table (or custom name via `.env`):
```env
ACTIVITY_LOGGER_ENABLED=true
ACTIVITY_LOGGER_TABLE_NAME=activity_log
```
More configuration options available in [Spaties documentation](https://spatie.be/docs/laravel-activitylog).
---
## 🧼 Automated Refactoring with Rector
The root of the project includes a pre-configured `rector.php` file.
This allows for auto-refactoring and upgrading code to Laravel best practices.
### Run Rector:
```bash
vendor/bin/rector
```
---
## 🚀 Installation
```bash
git clone https://github.com/your-org/admin-starter-kit.git your-project
cd your-project
composer install
cp .env.example .env
php artisan key:generate
```
Update your `.env` with database and mail configuration:
```bash
php artisan migrate --seed
npm install && npm run dev
php artisan serve
```
Visit: [http://localhost:8000/dash](http://localhost:8000/dash) (or your configured route)
---
## 📁 Key Structure
```
├── config/
│ ├── filament.php # Filament core settings
│ ├── filament-php.php # UI theming + custom toggles
│ ├── activitylog.php # Activity log config
├── database/
│ └── seeders/FilamentAdminSeeder.php
│ └── seeders/RoleSeeder.php
├── rector.php # Rector config
```
---
## 🤝 Contributing
Contributions are welcome. Feel free to fork, submit issues or create pull requests.
---
## 🛡 License
Open-sourced under the [MIT license](LICENSE).
---
## 🙏 Credits
* [Laravel](https://laravel.com)
* [Livewire Starter Kit](https://github.com/laravel-livewire/starter-kit)
* [FilamentPHP](https://filamentphp.com/)
* [Spatie Permissions](https://github.com/spatie/laravel-permission)
* [Spatie Activity Log](https://spatie.be/docs/laravel-activitylog)
* [Filament Log Viewer](https://github.com/ryangjchandler/filament-log)
* [Filament Mail Viewer](https://github.com/ryangjchandler/filament-mail)
* [RectorPHP](https://getrector.com)
---