
Learn to style devise authentication forms in Rails 8 by creating dedicated templates, applying bootstrap cards and floating labels, and refining the navbar for a polished login experience.
Explore routing in Rails using routes.rb and resources to generate seven RESTful routes for the entry model, including get and post mappings to index and create actions.
Implement a show action in the entries controller to fetch a single entry by id from the current user, link entries on the index page, and render a show template.
Transform the app into a single page application by building a dashboard with a sidebar of entries and a main details pane, styled with entries.css and bem for scoped css.
Delete an entry using turbo streams and bootstrap dropdowns in Rails; wire the destroy action, update the UI in real time, and show no entries when empty.
Seed the database to prefill entries and prevent delete errors. Use the seeds file with ActiveRecord to assign ids and enable CRUD with turbo frames and turbo streams.
Implement a storage service with set session storage and get session storage to persist a sign-in token (JWT) in session storage for the app and extension.
Build the entries view with hotwire templates, wiring a sidebar and main panel to display authenticated user entries, with copy-to-clipboard, password toggle, and token-safe fetch.
Implement a Stimulus toggle password feature by creating and registering a toggle password controller, binding the input target, and triggering a password reveal with icon updates in the extension.
In this course, we're going to build a password manager inspired by popular applications like 1Password and LastPass. Our application will enable users to create secure accounts, allowing them to store login credentials for their favorite websites. These credentials will be easily accessible through a Chrome Extension, powered by a secure, robust JSON API from our Rails backend.
We'll begin by creating a Ruby on Rails 8, Full-stack web application. Leveraging the power of Hotwire, we'll create a lightning-fast Single Page Application (SPA). We'll also take advantage of advanced Rails 8 tools such as Active Record Encryption, ensuring sensitive user information like usernames and passwords are securely encrypted and safely stored in our database.
Next, while working in the same Ruby on Rails 8 web application we'll start building out a secure JSON API, implementing user authentication using JSON Web Tokens (JWT). Users who successfully authenticate will receive an expiring token to securely fetch their data through subsequent requests.
Finally, we'll use the Google Chrome Extension API and Hotwire (yes, you can use Hotwire outside of Rails!) to build a similar version of our web application as a Chrome Extension. We'll cover essential topics such as using local storage, communicating between the Popup and Content Script, retrieving URLs from active tabs, and automatically filling login forms with a single click.
CHANGELOG:
- July 17, 2025 (Section 1 - Lesson 3): Update SafePassExtension zip file with missing assets.