Specs:
- Ruby 3.0.0
- Rails 7.0.4!
- Authentication with Devise Gem
- PostgreSQL Database
- Tailwind CSS
- Hotwire-Turbo+Stimulus
- Stripe Checkout!!!!
This is a mock-e-commerce site for users to create accounts, load up their carts, checkout their carts, and then browse through their orders.
The purpose of this project was to familiarize myself with Rails 7 and its primary frontend implementation, Hotwire. Hotwire, through Turbo and Stimulus, allows for the creation of the Single-Page-Application feel of modern frameworks like React by sending HTML instead of JSON over the "wire". Turbo eliminates the need to re-render the page while Stimulus provides a means of introducing just enough JavaScript to add interactivity to a Rails project. Additionally, this project was a much needed refresher on using Rails for a full-stack project.
The main actions of this project are barebones as I spent most of my energy trying to create the seamless shopping experience of modern platforms with Hotwire. There are many areas to expand upon including setting up a mailer for information regarding orders and receipts, and a search function to sort through the list of products. Additionally, the admin side of this project could be fully fleshed out in order to have a functional service on both sides of the website.
Shoutouts to:
-
mklickman for his sample contact form (https://gist.github.com/mklickman/1790914)
-
Nick Agliano for his rails 7 tutorial using tailwindcss (https://www.simplethread.com/how-to-create-a-new-rails-7-app-with-tailwind/)
-
Howard Mann for his Shopping Cart Tutorial (https://github.com/howardmann/Tutorials/blob/master/Rails_Shopping_Cart.md)
-
GoRails for his Turbo Tutorial (https://www.youtube.com/watch?v=Qp6sxgjA-xY&t=529s)
-
Andy Leverenz for his Stripe Tutorial (https://web-crunch.com/posts/stripe-checkout-billing-portal-ruby-on-rails)