The Telephone Staffing Management System is a comprehensive CRUD application designed to manage staff allocations and assignments for a telephone staffing system. Built with Laravel, this application offers an intuitive user interface powered by the Filament Admin Panel for efficient resource management. It handles the core functionalities related to managing entities, assignments, staff, users, chips, and more.
- CRUD Operations: Full Create, Read, Update, and Delete functionality for managing staff, allocations, assignments, and users.
- Filament Admin Panel: Utilizes Filament for an easy-to-use, visually appealing admin panel.
- Role-based Access: Access control via policies and middleware to secure user data.
- Widgets & Resources: Custom widgets and resources for easier data visualization and manipulation.
The project follows the Laravel framework structure, with additional components for Filament integration and custom business logic.
├───app
│ ├───Console # Artisan commands
│ ├───Exceptions # Exception handling
│ ├───Filament # Filament integration
│ │ ├───Resources # CRUD resources for each model
│ │ │ ├───AllocationResource
│ │ │ │ └───Pages # Filament pages for Allocation
│ │ │ ├───AssignmentResource
│ │ │ │ └───Pages # Filament pages for Assignment
│ │ │ ├───ChipResource
│ │ │ │ └───Pages # Filament pages for Chip
│ │ │ ├───EntityResource
│ │ │ │ └───Pages # Filament pages for Entity
│ │ │ ├───StaffResource
│ │ │ │ └───Pages # Filament pages for Staff
│ │ │ └───UserResource
│ │ │ └───Pages # Filament pages for User
│ │ └───Widgets # Custom Filament widgets
│ ├───Http
│ │ ├───Controllers # Controllers for routing logic
│ │ ├───Filament
│ │ │ ├───Resources # Filament resource controllers
│ │ │ └───Widgets # Custom Filament widgets logic
│ │ └───Middleware # Middleware for access control
│ ├───Models # Eloquent models for database entities
│ ├───Policies # Access control policies for different resources
│ └───Providers # Service providers for app initialization
├───bootstrap # App bootstrap files
│ └───cache # Cache files
├───config # Configuration files
├───database
│ ├───factories # Model factories for testing
│ ├───migrations # Database migration files
│ └───seeders # Database seeders
├───public # Public assets (CSS, JS, images)
├───resources
│ ├───css # CSS files for styling
│ ├───js # JS files for interactivity
│ └───views # Blade views for frontend
│ └───vendor
│ ├───filament # Filament view components
│ └───filament-breezy # Breezy Filament components for user auth
├───routes # Route definitions
├───storage # Storage for uploaded files, cache, and logs
│ ├───app
│ │ └───public # Public files storage
│ ├───framework # Framework-generated files
│ │ ├───cache # Cache data
│ │ ├───sessions # Session files
│ │ ├───testing # Testing files
│ │ └───views # View files
│ └───logs # Application logs
└───tests # Automated tests
├───Feature # Feature tests
└───Unit # Unit tests
To get started with the Telephone Staffing Management System, follow the steps below:
-
Clone the repository:
git clone <repository-url> cd TTelephone-Staffing-Management-System
-
Install dependencies: Run the following command to install the necessary dependencies via Composer and NPM:
composer install npm install
-
Set up your environment file: Copy
.env.example
to.env
and configure the necessary environment variables (e.g., database connection, app URL).cp .env.example .env
-
Generate application key:
php artisan key:generate
-
Run migrations: Run the following command to set up your database tables:
php artisan migrate
-
Seed database (optional): You can seed the database with sample data using:
php artisan db:seed
-
Start the server: You can now start the Laravel development server:
php artisan serve
Your app should now be running at
http://localhost:8000
.
The application includes feature and unit tests for ensuring the functionality of the CRUD operations and system logic. You can run the tests with:
php artisan test
The system uses Filament for the admin panel. After logging in, users can manage staff, assignments, chips, and more through the intuitive UI. Filament resources handle CRUD operations for each model, making the management of the system easy.
Each key entity in the system (e.g., Staff, Assignments, Users) has its own Filament resource with CRUD operations and corresponding pages for viewing and editing the records.
We welcome contributions! To contribute to this project:
- Fork the repository
- Create a new branch
- Make your changes
- Open a pull request with a description of your changes
This project is open-source and available under the MIT License.