Descripción de la prueba básica de PHP Codeigniter V3.
===============================
Se requiere un sistema con un panel administrativo que permita iniciar sesión a dos perfiles de usuarios distintos. Un perfil de Administrador que tendrá permisos administrativos y el perfil usuario con permisos básicos. El administrador podrá crear más usuarios en el sistema, quienes también podrán iniciar sesión.
Acciones especificas del administrador:
El usuario administrador estará registrado previamente en la base de datos.
Iniciar sesión
Editar su propio perfil, datos y avatar
Editar otros usuarios, datos y avatar
Crear nuevos usuarios
Activar usuarios autoregistrados
Desactivar usuarios
Descargar su perfil en formato PDF
Descargar el perfil de otros usuarios en formato PDF
Enviar a su propio correo un mensaje con su perfil en formato PDF
Enviar a los demás usuarios un mensaje con el perfil del usuario en formato PDF
Permisos del usuario estandar:
Iniciar sesión
Editar su propio perfil, datos y avatar
Descargar su perfil en formato PDF
Enviar a su propio correo un mensaje con su perfil en formato PDF
Los datos básicos para que el administrador registre un usuario nuevo son los siguientes. Los mismos datos son los requeridos cuando un usuario externo desee registrarse.
Nombres
Apellidos
Email
Contraseña
Avatar
Cuando un usuario se registre él mismo, el sistema enviará a su email el link de activación. Tambiénmostrará en la pantalla la indicación correspondiente
“Hemos enviado un mensaje a su correo electrónico para validar su cuenta. Abra su email y haga clic en el link.”
Inicio de sesión
El inicio de sesión se basará en el email y la contraseña.
El usuario podrá registrarse él mismo y quedará con perfil de usuario, no de administrador.
Al regitrarse, el sistema enviará al email del usuario un correo de confirmación con un link que activará la cuente.
Para iniciar sesión, se debe resolver el captcha de Google.
Habrá un botón “Recuperar cuenta” que no hará nada.
El perfil del usuario
El perfil del usuario deberá mostrar estos elementos:
Botón para cerrar sesión
Nombre completo del usuario
Email
Lista de gustos (actualizable al seleccionar las opciones disponibles)
Botón para descargar el perfil en PDF
Botón para enviar su perfil en formato PDF su propio correo electrónico
El perfil del Administrador
El perfil del administrador deberá mostrar estos elementos:
Todo lo que tiene el perfil del usuario estándar
Botón para registrar un nuevo usuario.
En el perfil del usuario estándar, botón para activar el usuario que esté pendiente por activación.
En el perfil del usuario estándar, botón para bloquear el usuario
Temas de interés por usuario
En el perfil del usuario, habrá una lista de temas de interés. El usuario podrá elegir máximo 4 de ellos, sin que se repitan.
Requisitos mínimos de seguridad:
La contraseña no se debe almacenar en texto plano, ni en base_64.
Todas las cuentas nuevas creadas por los usuarios deberán ser validadas a través de email. Las cuentas creadas por administrador no necesitan validación.
Para iniciar sesión o registrarse, se debe validar el captcha de google
Lenguajes y herramientas
===============================
PHP 7.3, POO
Se debe usar el framework codeigniter V.3. Es un requisito esencial.
React (la interfaz gráfica debe desarrollarse en react), usar react es opcional, pero se prefiere.
Jquery, opcional. En caso de que no se use react, es obligatorio.
MySql, es un requisito.
HTML5
CSS3
¿Qué se evalúa?
===============================
No se aceptan entrega que no cumplan con el lleno de los requisitos.
Si hay algo que no se incluyó en este documento y es necesario para que el proyecto funcione, se debe incluir.
Estándares usados al escribir el código fuente.
Legibilidad del código
Apariencia del entregable, tanto de la interfaz como del documento PDF enviado por correo.
Documentación del código escrita en comentarios
Calidad del diseño HTML5 y CSS3
Calidad del desarrollo en Javascript.
Modalidad de desarrollo del examen
El desarrollo se realizará de manera remota. El sistema se revisará demanera remota a través de teamviewer. Se debe usar un repositorio en bitbucket para el control de cambios.
Apariencia solicitada de la aplicación.
Se debe usar un panel de administración bootstrap.
Las siguientes imágenes ilustran el entregable final.