Git Product home page Git Product logo

e15cp1a1's Introduction

Experiencia 15 - Actividad Presencial I

Autenticación desde cero

Para poder realizar este actividad debes haber realizado los cursos previos junto con los videos online correspondientes a la experiencia 15.

El objetivo de esta actividad es la implementación de un Sistema de autenticación manual para permitir el logeo de un usuario en una aplicación.

Setup:

En esta actividad se utilizó la gema carrierwave para el manejo de archivos por lo que antes de empezar tendrás que instalar imagemagik en tu computador. Si ya lo has instalado antes, omite este paso.

Para saber si ya está instalado vamos a escribir:

convert -version

Si obtenemos un mensaje de command not found entonces debemos instalar la herramienta.

Instalando ImageMagick

En OSX:

brew update
brew install imagemagick

EN Ubuntu:

sudo apt-get update
sudo apt-get install imagemagick

Más información en Documentación carrierwave

Comienza la actividad

Pictory es una aplicación para que diversos usuarios guarden sus historias y puedan compartirlas, pero esta aplicación no está terminada, el cliente necesita:

  • Crear un modelo user con los campos name (string), email (string) y password (string).

  • Generar la ruta para la creación y la vista de new de un usuario.

    get 'users/sign_up', to: "users#new"
    post 'users', to: "users#create"
  • En la terminal ejecutar rails routes para corroborar las ruta creada. La ruta generada debe apuntar a los métodos users#new y users#create.

  • Crear un controlador de users vacío.

  • En el controller users crear el método new.

  • En el controller users crear el método user_params. Este método debe permitir y retornar los campos necesarios para la creación de un nuevo usuario, es decir, name, email y password.

  • En el controller users crear el método create. Este método debe generar una nueva instancia de User recibiendo como argumento user_params y almacenarlo en la BD. Luego, si el usuario es creado exitosamente, agregar @user.id a una variable de session (session[:user_id]) y redireccionar al root_path, en caso de error, que haga render del método new.

  • En la vista New de users se debe agregar un formulario que permita ingresar un nuevo usuario.

    • El formulario debe ser generado utilizando el helper form_with añadiendo el modelo y debe implementar las clases de bootstrap (revisar docs).
    <%= form_with(model: @user) do |form| %>
    • Donde @user debe ser declarado en el método correspondiente (new) como una nueva instancia de User.

    • El formulario debe tener el campo para name, email y password.

  • Crear los métodos current_user y logged? en UsersHelper.

  • Añadir ruta de sessions para crear y destruir sesion de usuario.

     resources :sessions, only: [:create, :destroy]
  • Crear controller de sessions vacío.

  • En controlador de sessions crear método destroy reseteando las variables de sesion y redireccionando a la página root.

  • Agregar un link para que el usuario pueda cerrar su sesión (solo en caso que haya iniciado sesión).

  • Agregar un link para que el usuario pueda registrarse o iniciar sesión (solo en caso que NO haya iniciado sesión).

  • Agregar las rutas para logear un usuario.

  • Crear el método new de sessions, agregar su ruta respectiva, y añadir la vista con un formulario de logueo.

  • Añadir usuario a history.

    Utilizar current_user para guardar el dato en la base de datos en el método create.

  • Crear vista con las historias que le pertenecen al usuario.

e15cp1a1's People

Contributors

dbarrientos avatar jpcuevaslavin avatar gsanchezd avatar pbodr avatar

Watchers

James Cloos avatar

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.