Ejemplo de uso de Laravel para crear un sencillo manejador de usuarios y contactos.
Soporte a html injectado en los archivos blade, en este caso se utilizo para que laravel manejara correctamente la subida del spreadsheet con los contactos.
{!! Form::open(array('url' => 'contacts/import_contacts',
'method' => 'post',
'class' => 'form',
'novalidate' => 'novalidate',
'files' => true)) !!}
Usado para el manejo de roles en la aplicación en conjunto con el middleware (Auth) que viene con Laravel.
Entrust::routeNeedsPermission('admin/*', 'edit-users',Redirect::to('errors/403'));
Para evitar el desarrollo de un validator propio para la condición: "phone number (US only, supporting multiple entries)", se uso esta libreria en conjunto con el validator de laravel.
Libreria que integra PHPExcel facilmente a Laravel, se uso para leer correctamente los archivos xls y xlsx con los que se importan los contactos.
Libreria usada para leer los archivos csv y tsv con los que se importan los contactos.
-
AdminController: Agrupa todos los comportamientos de las paginas a las que puede acceder el administrador, quien puede crear, eliminar o editar usuarios.
-
ContactsController: Agrupa todos los comportamientos de las paginas a las que puede acceder el usuario excepto la de importar contactos.
-
ImportController: Funciones para subir el archivo e insertar los contactos.
Todos los modelos son implementados, User esta por defecto pero se hicieron algunas modificaciones.
- Contact
- ContactEmail
- ContactImportLog
- ContactNumber
- Permission
- Role
- User
Se agrega el esquema de la base de datos en database/DML, pero la base de datos se debe manejar con los migrations.
Se crean las migraciones apropiadas para inicializar la base de datos y un custom seeder para generar informacion inicial basica.
Se debe crear una base de datos y cambiar el nombre en .env y config/database.php, luego se debe correr:
php artisan migrate:refresh --seed
En el database seed se crean dos usuarios por defecto:
- Admin:
'email' => 'email1@example.com',
'password' => 'password',
- User:
'email' => 'user1@email.com',
'password' => 'password',
Los archivos de prueba para subir contactos estan en la carpeta tests/Data.
- Tests
- Implementar la carga de contactos en archivos CSV y TSV.
- Actualizacion de contactos.
- Delete de emails y telefonos adicionales en el formulario de crear contactos.