Sistema de gestión escolar de código abierto

· 7 min de lectura
Sistema de gestión escolar de código abierto

UnifiedTransform es una plataforma de gestión escolar de código abierto construida con Laravel  y disponible en GitHub.

Este es un gran proyecto de Laravel, por lo que es posible que desee profundizar en el código de fuente abierta, incluidas las pruebas, para aprender cómo se construyó y aportar características. Puede obtener más información sobre esta aplicación y consultar el código fuente en GitHub en changeweb / Unifiedtransform .

Las características principales de UnifiedTransform incluyen las siguientes:

Requerimientos del software

  • PHP >= 7.3
  • OpenSSL PHP Extensión
  • PDO PHP Extensión
  • Mbstring PHP Extensión
  • Tokenizer PHP Extensión
  • XML PHP Extensión

Características

Este software tiene las siguientes características:

  • Roles:  (Maestro, administrador, profesor, estudiante, bibliotecario, contador)
  • Asistencia
  • Registro Aviso
  • Plan de estudios
  • Biblioteca
  • Exámenes
  • Calificación
  • Cuentas Mensajería
'timezone' => 'Asia/Dhaka',//'UTC',
'locale' => 'en',//'es-MX' for Spanish

Como empezar:

Instalación clásica:

Estos son algunos pasos básicos para comenzar a usar esta aplicación.

  • Clonar el repositorio
git clone https://github.com/changeweb/Unifiedtransform
  • Copie el contenido del .env.example archivo para crear .env en el mismo directorio
  • Ejecutar composer install para el entorno de  developer o entorno local y ejecutar composer install --optimize-autoloader --no-dev para el production entorno para instalar paquetes de Laravel (eliminar Laravel Debugbar , los paquetes del visor de registro de Laravel de composer.json
   //Provider
   Barryvdh\Debugbar\ServiceProvider,
   Logviewer Service provider,
   //Alias
   'Debugbar' => Barryvdh...

Desde config/app.phpantes de ejecutarse composer install en el entorno de producción )

  • Generar APP_KEY usando php artisan key:generate
  • Edite la configuración de conexión de la base de datos en un archivo .env, por ejemplo
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=unifiedtransform
DB_USERNAME=unified
DB_PASSWORD=secret
Tenga en cuenta que esto es solo un ejemplo y que los valores pueden variar según el entorno de su base de datos.
  • Establezca la APP_ENVvariable en su .env archivo de acuerdo con el entorno de su aplicación (por ejemplo, local, producción) en el .env archivo
  • Migre su base de datos con php artisan migrate
  • Siembre su base de datos con php artisan db:seed
  • En localhost, entregue su aplicación con php artisan serve

Video Tutorial de instalación

(Optional)

Laravel Page Speed está instalado pero no activado. Si desea utilizarlo para optimizar su sitio automáticamente, lo que se traduce en una optimización de más del 35%. Necesita descomentar algunas líneas del Kernel.php archivo y es posible que deba ejecutarlas php artisan vendor:publish --provider="RenatoMarinho\LaravelPageSpeed\ServiceProvider".

app/HTTP/Kernel.php

    //\RenatoMarinho\LaravelPageSpeed\Middleware\InlineCss::class,
    //\RenatoMarinho\LaravelPageSpeed\Middleware\ElideAttributes::class,
    //\RenatoMarinho\LaravelPageSpeed\Middleware\InsertDNSPrefetch::class,
    //\RenatoMarinho\LaravelPageSpeed\Middleware\RemoveComments::class,
    //\RenatoMarinho\LaravelPageSpeed\Middleware\TrimUrls::class,
    //\RenatoMarinho\LaravelPageSpeed\Middleware\RemoveQuotes::class,
    //\RenatoMarinho\LaravelPageSpeed\Middleware\CollapseWhitespace::class,

Para crear un Master, dirigete a la ruta database\seeds\UsersTableSeeder.php y cambia el name, el email y el  password y el sistema quedara con la configuración a su gusto. ¡Deje las otras configuraciones (rol, activo, verificado) sin cambios!

El paquete Laravel Passport se incluye para admitir API.  La clave para Passport debe generarse automáticamente php artisan passport:keysdesde el post-install-cmdscript composer.json o debe ejecutarlo manualmente y para eliminar este paquete solo siga estos pasos

  • Elimínelo de las composer.json dependencias requeridas y elimine el comando @php artisan passport:keys del post-install-cmdscript
  • Ejecutar composer updatey composer dump-autoload.
  • Y todas las clases que dependen del passport también deben editarse. Las clases más comunes son:
  • app\User.php modelo, elimine el HasApiToken rasgo.
  • app\Proiders\AuthServiceProvider, elimínelo Passport::routes(); en su método de arranque.
  • En config/auth.php, cambie su opción de controlador de api desde passport a api autenticación.

Para crear las tablas, ejecute php artisan migrate.

  • Si no desea utilizar el paquete Passport , elimine las migraciones de Passport en la migrations tabla de la base de datos y ejecute el comando php artisan migrate:refresh
  • Para generar tablas con datos falsos, use php artisan db:seed.
  • Si desea ejecutar la migración y la siembra juntas, use php artisan migrate:refresh --seed

Debe inicializar database\seeds\UsersTableSeeder.php al menos una vez para crear la cuenta master ( para producción: ejecute la inicialización en el entorno de desarrollo y luego cambie a producción ). Para hacerlo, siga estos pasos:

  • comentar todas los  seeders excepto $this->call(UsersTableSeeder::class);  en database\seeds\DatabaseSeeder.php;
  • luego comentar factory(App\User::class, 200)->create(); en UsersTableSeeder.php.

Entonces sus archivos se verán así:

En database\seeds\DatabaseSeeder.php:

...
//$this->call(SectionsTableSeeder::class);
$this->call(UsersTableSeeder::class);
//$this->call(AttendancesTableSeeder::class);
...

En database\seeds\UsersTableSeeder.php:

...
//factory(User::class, 10)->states('admin')->create();
//factory(User::class, 10)->states('accountant')->create();
//factory(User::class, 10)->states('librarian')->create();
//factory(User::class, 30)->states('teacher')->create();
//factory(User::class, 200)->states('student')->create();

Instalar con  contenedor de Docker:

Docker ahora es compatible y mejorado.

Con la configuración mejorada de Docker, obtendrá:

  • Nginx
  • PHP 7.4
  • MySQL 8
  • PHPMyAdmin
  • Comandos de Composer: acceda a los comandos de Composer directamente sin ingresar al contenedor
  • Comandos artesanales: acceda a los comandos artesanales directamente sin ingresar al contenedor

En pocas palabras, solo necesita instalar Docker, así como docker-composeen su máquina (host) y dejar que Docker se encargue del resto.

Paso para instalar:

  1. Correr cp .env.example .env
  2. Si cree que la configuración predeterminada está bastante bien configurada, puede ejecutarla de ./docker-install.sh inmediato desde su terminal.
  3. De lo contrario, lea una sección a continuación para obtener más información sobre las propiedades que puede cambiar.
  4. Correr ./docker-install.sh

Nota

Estas son las .env propiedades que puede cambiar:

  • .env Propiedades comunes de Laravel
  • DOCKER_WEBSERVER_HOST define la dirección del puerto de Unifiedtransform. valor por defecto:4049
  • DOCKER_PHPMYADMIN_HOST define la dirección del puerto PHPMyAdmin. valor por defecto:5051

También puede personalizar el nombre de la base de datos definido en la DB_DATABASE propiedad cuando Docker se inicializa por primera vez.

Comandos agregados

  • docker-compose run --rm composer <commands>
  • docker-compose run --rm artisan <commands>

Crea una escuela y un Administrador

  • Importante: ¡solo a master puede crear una nueva escuela y sus administradores!
  • Inicie sesión example.com/login con las Master credenciales de su cuenta
  • Crear una  nuevaschool
  • Crea un nuevo adminpara la escuela recién creada

Administrar una escuela

  • Importante: ¡ master NO PUEDE administrar los datos de una escuela!
  • Iniciar sesión como adminen example.com/login
  • Ahora agregue datos a la escuela según sea necesario.

Pasos básicos por serie (Orden correcto de registro)

  • Crear clases
  • Crear secciones
  • Crear examen
  • Agregar estudiantes
  • Agregar departamento
  • Agregar profesores
  • Agregar cursos
  • Entonces el maestro puede tomar asistencia, dar calificaciones

Administrar examen (en la página de administración de exámenes) por administrador

  1. Marque la casilla de verificación Aviso publicado para un examen después de cargar el Aviso de examen.

Marque la casilla de verificación Resultado publicado para un examen después de que todos los profesores hayan actualizado las calificaciones de sus cursos.

  • Si se verifica el resultado publicado, se establece el examen como completado.
  1. El examen se establece como Activo de forma predeterminada mientras se crea. Puede desactivar el examen marcando la casilla de verificación relacionada.

Administrar GPA y calificación

  1. El administrador agrega GPA para los respectivos rangos de calificaciones.

Para otorgar calificaciones, el profesor hace clic en el botón Enviar calificación y hace lo siguiente:

  1. Seleccione un GPA por nombre en el menú desplegable
  2. Configurar prueba de clase, cuestionario,  etc. cuenta, porcentaje (Opcional)
  3. Calificar
  4. Para obtener la calificación de los estudiantes de un curso para las calificaciones determinadas, el profesor hace clic en el botón Obtener calificaciones totales. (Por lo general, esto se hace al final del semestre)

Dar certificado o diploma a los estudiantes

  • Configure su configuración de correo en el .env archivo si desea enviar correo electrónico. Los usuarios registrados actualmente son notificados por correo de invitación si Mail está configurado correctamente.
  • Este proyecto utiliza Laravel Impersonate en entornos de desarrollo y ensayo, por lo que puede ver la aplicación a través de los ojos de otro usuario, lo que es útil para realizar pruebas. Consulte la guía para utilizar la Impersonation. .
  • En .env , gire APP_DEBUG a false para entornos de producción.
  • Eliminar Route::get('logs','\Rap2hpoutre\LaravelLogViewer\LogViewerController@index'); de routes/web.php mientras se encuentra en el entorno de producción.
  • Puede cambiar ay desde el modo de mantenimiento ejecutando php artisan upy php artisan down.
  • Optimización de la carga de ruta php artisan route:cache
  • El contenido de la página del tablero (por ejemplo, recuento de estudiantes, recuento de profesores, aviso, etc.) se almacena en caché porque no se modifican con frecuencia. Si no desea que se almacenen en caché, simplemente elimine las líneas de caché en el index método app\Http\Controller\HomeController.php como en el siguiente ejemplo. Entonces su edición sería algo como esto:

De:

...
$classes = \Cache::remember('classes-'.$school_id, $minutes, function () use($school_id) {
   return \App\Myclass::where('school_id', $school_id)
                        ->pluck('id')
                        ->toArray();
});
...

A:

...
$classes = \App\Myclass::where('school_id', $school_id)
                        ->pluck('id')
                        ->toArray();
...

Puede hacer algo similar para otras líneas de caché.

Algunas capturas de pantalla:

Se utilizaron datos falsos generados automáticamente.

changeweb/Unifiedtransform
A school management Software. Contribute to changeweb/Unifiedtransform development by creating an account on GitHub.
yond1994 - Overview
Soy un experto en desarrollo tecnológico orientado a aplicaciones web con experiencia tanto en back como en frontend. - yond1994

Artículos Relacionados

Software para restaurantes (GRATIS) 🤑
· 4 min de lectura
Como Subir proyecto Laravel a un Hosting
· 3 min de lectura
Sistema de préstamos, PHP (Laravel & MySQL)
· 2 min de lectura
Sistema de reportes
· 2 min de lectura
¿Cómo entregar un proyecto?
· 3 min de lectura