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.

Ilustraciones de apoyo




Vista del PDF enviado por email: