GithubHelp home page GithubHelp logo

manual_jam_devise's Introduction

Heroku

La aplicación está en Heroku. Para verla, abre el siguiente link: https://pictory-g39-chris.herokuapp.com

Actividad Presencial I

Autenticación Manual desde cero

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

El objetivo de este ejercicio es la implementación de un sistema de autenticación sin incluir dependencias externas.

Setup

Forkear el proyecto a tu cuenta de Github y luego clonar en tu entorno de desarrollo local

git clone [email protected]:TuGithub/manual_jam.git

cd manual_jam

rails db:migrate

rails s

Revisa el proyecto partiendo por las rutas. Puedes revisar el archivo de rutas o directamente en la consola con rails routes.

Comienzo de actividad.

PicStory 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_digest (string).

  • Añadir el método has_secure_password al modelo User y agregar la gema bcrypt al Gemfile

  • Añadir validación para que el campo email sea único.

  • Generar la ruta necesarias para crear usuarios.

resources :users, only: [:new, :create, :show]
  • Se recomienda no usar la herramienta scaffolding y hacer los métodos y vistas manualmente.

  • Revisar las rutas creadas y actualizar el link del navbar para que el perfil de usuario apunte al show de users.

  • Crear controlador y formulario para 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).

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

  • Crear el método user_params para permitir solo los atributos 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.

  • Añadir rutas de sesiones para crear y destruir sesion de usuario. Usar los helpers en el navbar para iniciar y cerrar sesión

resources :sessions, only: [:create, :destroy, :new]
  • Crear el controlador de sesiones con los métodos new, create y destroy

  • Crear los métodos current_user y logged? en ApplicationHelper. HINT (El método logged? debe indicar si está presente la llave :user_id en el hash de sesión)

  • Completar los links del navbar para inicio de sesión y cerrar sesión (toggle entre ambos según la evaluación del helper logged?).

  • En caso de que no exista ningún usuario logeado mostar en el navbar links para registarse e iniciar sesión

  • El método destroy debe resetear las variables de sesion y redireccionar a la página root.

  • Añadir usuario actual a cada Story creada (Se requiere de migracion para agregar la referencia a la tabla Stories y ajustar las relaciones de los modelos).

  • Crear vistas con las historias por usuario en el método show de user.

manual_jam_devise's People

Contributors

chrila avatar sbstn-jmnz avatar

Watchers

 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.