Git Product home page Git Product logo

mads-todolist-inicial's People

Contributors

domingogallardo avatar

Watchers

 avatar  avatar

mads-todolist-inicial's Issues

Refactorizar

  • Crear una excepción UsuarioService. Es mejor que el método de servicio de registro devuelva una excepción de tipo UsuarioServiceException en lugar de una excepción estándar.
  • Mover la inyección de dependencias a los constructores en las clases de servicio
  • Cambiar los nombres de las plantillas de formulario para que empiecen por form.

Creación del modelo de usuario

  • Crear un modelo JPA inicial de usuario con atributos:

    • dirección correo
    • nombre
    • contraseña
    • fecha de nacimiento.
  • Crear el DAO y probar los métodos save y findById

Modelo de datos de tareas

Definir una clase de modelo Tarea, con la siguiente información:

  • String titulo
  • Relación uno-a-muchos con usuario

Controller y vista para borrar tarea

  • Añadir el botón para borrar la tarea en la lista de tareas
  • Hacer por JavaScript una petición DELETE a la URL "/tareas/{id}"
  • Confirmar el borrado con una alerta JavaScript

Distintas configuraciones

Permitir y definir distintas configuraciones de ejecución y test de la aplicación:

  • Configuraciones de desarrollo y test:
    • La que estamos usando por defecto con H2
    • Otra con base de datos MySQL

Método de servicio de registro

  • Método de servicio para añadir un usuario.
    Se pasará un objeto Usuario con los campos:

    • Correo electrónico
    • Contraseña
    • Nombre (opcional)
    • Fecha nacimiento (opcional)
      Se lanzará una excepción si el correo electrónico ya existe en la base de datos o si el correo electrónico o la contraseña son nulos. Si todo va bien, el usuario se añadirá a la base de datos.
  • Método de servicio para comprobar si existe un usuario con un email. Necesario para que el controller compruebe si ya existe el correo que se introduce.

Definir métodos de igualdad para usuario

Definir métodos típicos equals y hashCode para entidades:

  • Si tienen definido ID comparar por ID
  • Si no, comparar por campos obligatorios, definidos en el constructor

Página de registro

  • Añadir página de registro, que pida:
    • correo electrónico (obligatorio)
    • contraseña (obligatoria)
    • nombre
    • fecha de nacimiento
  • Si el correo ya está registrado volver a la página de registro escribiendo un mensaje de error.
  • Si se registra correctamente ir a la página de login.

Página de login

  • Página con un formulario que pida el login y el password
  • Si el login es correcto se irá a una página de saludo
  • Si el login es incorrecto se irá a la misma página de login mostrando uno de los dos mensajes de error:
    • No existe usuario
    • Contraseña incorrecta

Controller y vista para modificar una tarea

  • Botón en el listado de tareas que permite modificar
  • En la página de modificar podemos confirmar o cancelar la modificación
  • Mensaje flash en la lista de tareas con la indicación de que se ha modificado con éxito

Autorización sencilla

  • Guardar el id del usuario logeado en la sesión HTTP
  • Comprobar en los métodos con autorización que el usuario logeado se corresponde con la URL
  • Método para logout

Redirección login y logout

  • Redirigir desde login a la lista de tareas del usuario
  • Enlace para salir desde lista de tareas que te lleva a login

Listado de tareas de un usuario

  • La petición a /usuarios/{id}/tareas devolverá un listado con las tareas de un usuario
  • Implementar capa de servicio y test
  • Implementar controlador que devuelva error cuando el usuario no existe

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.