SimPKL is a comprehensive internship monitoring system built with Laravel and Filament for the backend/admin panel, and Vue.js for the frontend interface. This system helps educational institutions manage and monitor student internships with role-based permissions and real-time tracking capabilities.
- Role-Based Access Control: Multi-level user management with permissions
- Student Management: Track student internship status and details
- Industry Partnership: Manage industry partners and their business fields
- Teacher Supervision: Assign teachers to supervise student internships
- Real-time Monitoring: Track internship progress and documentation
- API Integration: RESTful API for frontend integration
- File Management: Handle internship documentation and reports
- Database Triggers: Automatic student status updates
- Laravel - PHP web application framework
- Filament - Admin panel and dashboard
- Spatie Laravel Permission - Role and permission management
- Laravel Sanctum - API authentication
- MySQL - Database management
- Vue.js - Progressive JavaScript framework
- Repository: Internship Monitoring Vue
The system includes the following main entities:
- Users: System users with polymorphic role relationships
- Students: Student information with internship status
- Teachers: Teacher information and supervision assignments
- Industries: Industry partners with business field categorization
- Internships: Core internship records with relationships
- Business Fields: Industry categorization
- PHP >= 8.1
- Composer
- Node.js & NPM
- MySQL/MariaDB
- Git
-
Clone the repository
git clone https://github.com/shfwnz/internship-monitoring-laravel.git backend cd backend
-
Install PHP dependencies
composer install
-
Environment configuration
cp .env.example .env
Update your
.env
file with database credentials and other configuration:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=simpkl DB_USERNAME=your_username DB_PASSWORD=your_password
-
Generate application key
php artisan key:generate
-
Generate JWT secret (if using JWT authentication)
php artisan jwt:secret
-
Run database migrations
php artisan migrate --seed
-
Install Filament Shield for permissions
php artisan shield:install admin php artisan shield:generate --all
-
Start the development server
php artisan serve --host=0.0.0.0 --port=8000
-
Clone the Vue.js frontend repository
git clone https://github.com/shfwnz/internship-monitoring-vue.git frontend cd frontend
-
Install Node.js dependencies
npm install
-
Configure API endpoint Update the API base URL in your Vue.js configuration to point to your Laravel backend.
-
Start the development server
npm run dev
- Navigate to
ip_addr:8000/admin
to access the Filament admin panel - Login with the
[email protected]
and password12345678
- Manage users, students, teachers, industries, and internships
The system provides RESTful API endpoints for:
- User authentication and authorization
- Student management
- Internship tracking
- Industry and teacher management
- File uploads and document management
- Access the Vue.js frontend for student and teacher interfaces
- Real-time internship monitoring and status updates
- Document submission and progress tracking
The system includes automatic triggers that:
- Set student status to
true
when an internship is created - Set student status to
false
when an internship is deleted
The system supports multiple user roles:
- Super Admin: Full system access
- Teacher: Student supervision and monitoring
- Student: Personal internship management
- Custom: Custom role name and permission
├── app/
│ ├── Http/Controllers/ # API Controllers
│ ├── Models/ # Eloquent Models
│ └── Filament/ # Filament Resources
├── database/
│ ├── migrations/ # Database Migrations
│ └── seeders/ # Database Seeders
├── routes/
│ ├── api.php # API Routes
│ └── web.php # Web Routes
└── README.md
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
- Frontend (Vue.js): Internship Monitoring Vue
For support and questions, please open an issue in the repository or contact the development team.
SimPKL - Simplifying internship monitoring for educational institutions.