al-rimi / submit
A simple submission system for managing student submissions.
Requires
- php: >=8.0
- illuminate/bus: ^10.0 || ^11.0
- illuminate/contracts: ^10.0 || ^11.0
- illuminate/http: ^10.0 || ^11.0
- illuminate/mail: ^10.0 || ^11.0
- illuminate/queue: ^10.0 || ^11.0
- illuminate/support: ^10.0 || ^11.0
- laravel/framework: ^10.0 || ^11.0
Requires (Dev)
- mockery/mockery: ^1.5
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^10.0
README
A simple and customizable system for managing submissions. Designed for Laravel applications, it offers essential tools to streamline submission processes with minimal setup.
Installation
Step 1: Install the Package
composer require al-rimi/submit
Step 2: Run the Installation Command
php artisan submit:install
This command performs the following tasks:
- Publishes assets, views, and configuration files.
- Installs necessary Node.js dependencies.
- Updates the
vite.config.js
file with Submit assets (submit.css
andsubmit.js
). - Builds assets using
npm run build
. - Runs database migrations.
- Seeds the database with example data.
Features
- Submission Management: Collect, validate, and store student submissions effectively.
- Email Notifications: Rreceive notifications after each submission.
- Dynamic Table Management: Displays and updates student submissions dynamically without page reloads.
- Auto-fill: Custom JS script for client side auto fill.
- UI: vanilla CSS with simple animations and clean look..
Customization
Environment Variables
To enable submission notifications and set a deadline, add the following variables to your .env
file:
NOTIFICATION_EMAIL= # Email address to receive submission notifications SUBMISSION_DEADLINE= # Submission deadline in ISO 8601 format (e.g., "YYYY-MM-DDTHH:MM:SS")
Routes
The package publishes its routes to routes/submit.php
. You can customize these routes to:
- Change view paths.
- Add middleware for additional security or access control.
Views
All customizable views are published to your project for easy modification:
- Submission Page:
resources/views/submissions.blade.php
- Email Template:
resources/views/emails/submissions_email.blade.php
CSS and JavaScript
dependency-free assets for styling and interactivity in vanilla CSS and JavaScript:
- CSS File:
resources/css/submit.css
- JavaScript File:
resources/js/submit.js
Database
The package provides database migrations and a sample seeder to kickstart your setup:
- Migrations: Automatically created tables for submission data.
- Seeder:
database/Seeders/StudentsTableSeeder.php
populates the database with example records.
Troubleshooting
Vite Configuration
The package automatically adds resources/css/submit.css
and resources/js/submit.js
to vite.config.js
. If this step fails, manually update your vite.config.js
file:
export default defineConfig({
input: [
'resources/css/app.css',
'resources/js/app.js',
'resources/css/submit.css',
'resources/js/submit.js'
],
// other Vite configuration
});
Build Issues
If you encounter build issues, ensure Node.js and npm are properly installed. Then rerun:
npm install
npm run build
Uninstallation
Step 1: Remove all traces of the Submit package:
php artisan submit:uninstall
Step 2: remove the package:
composer remove al-rimi/submit
Requirements
- PHP 8.0 or higher
- Laravel 10.x or 11.x
- Node.js (for Vite asset compilation)
Have questions or facing issues? Check out the issues page.
License
This package is open-source and is licensed under the MIT License.