If you are building a Learning Management System or a School Management System and targeting the Algerian market, this package is perfect to kick start your project by providing migrations and seeders according to the Algerian education system structure. see tables.md
Install the package via composer:
composer require elaborate-code/laravel-algerian-education-system
Publish and run the migrations:
php artisan vendor:publish --tag="algerian-education-system-migrations"
php artisan migrate
You may need to rename the migration to something like 2014_10_12_200000_create_cycles_table.php
, 2014_10_12_200000_create_class_types_table.php
to make them run automatically with the first migrations.
You can publish the config file with:
php artisan vendor:publish --tag="algerian-education-system-config"
This is the contents of the published config file:
return [
'cycles_table_name' => null, // defaults to cycles
'class_types_table_name' => null, // defaults to class_types
];
That allows you to rename the tables
names before running the migrations.
After publishing and running the migrations, add the seeders to the called seeders list:
AlgerianEducationSystemSeeder
is the main seeder that calls:CycleSeeder
ClassTypeSeeder
MergePrescolaireIntoPrimaireCycleSeeder
as the name states it deletes thepre-scolaire
cycle row, and edits thepre-scolaire
class type to belong toprimaire
cycle
// Database\Seeders\DatabaseSeeder
public function run()
{
$this->call([
ElaborateCode\AlgerianEducationSystem\Database\Seeders\AlgerianEducationSystemSeeder::class,
// ElaborateCode\AlgerianEducationSystem\Database\Seeders\MergePrescolaireIntoPrimaireCycleSeeder::class,
]);
}
Or call it directly from the command line:
php .\artisan db:seed --class=ElaborateCode\AlgerianEducationSystem\Database\Seeders\AlgerianEducationSystemSeeder
The models ElaborateCode\AlgerianEducationSystem\Models\Cycle
and ElaborateCode\AlgerianEducationSystem\Models\ClassType
give you access to a set of relationships. so either use them or extend them.
Cycle::classTypes(): HasMany
ClassType::cycle(): BelongsTo
ClassType::previousClassType(): BelongsTo
ClassType::nextClassTypes(): HasMany
ClassType::previousLevelClassTypes(): HasMany
ClassType::nextLevelClassTypes(): HasMany
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.