/jungle

Primary LanguageRuby

Jungle

A mini e-commerce application built with Rails 4.2. Inherited from an existing codebase, Jungle served to learn how to navigate existing code-bases and implement new features with a new-to-me language, simulating a real world situation.

Implemented the following features for Jungle:

  • Sold Out Badge: When a product is sold out, a styled Sold Out batch will be shown to the user.
  • Admin Categories: Created restful routes to be able to create new categories within the admin namespace.
  • User Authentication: User is able to sign up and login to Jungle. Their password is encrypted, and email address is validated for uniqueness to ensure a non duplicative user-base.
  • Enhanced Order Page: Upon successful payment, a detailed order review page is shown to the user.

Stack

  • Rails
  • Ruby
  • RSpec
  • Poltergeist/Capybara
  • ERB
  • Boostrap

Setup

  1. Run bundle install to install dependencies
  2. Create config/database.yml by copying config/database.example.yml
  3. Create config/secrets.yml by copying config/secrets.example.yml
  4. Run bin/rake db:reset to create, load and seed db
  5. Create .env file based on .env.example
  6. Sign up for a Stripe account
  7. Put Stripe (test) keys into appropriate .env vars
  8. Run bin/rails s -b 0.0.0.0 to start the server

Additional Steps for Apple M1 Machines

  1. Make sure that you are runnning Ruby 2.6.6 (ruby -v)
  2. Install ImageMagick brew install imagemagick imagemagick@6 --build-from-source
  3. Remove Gemfile.lock
  4. Replace Gemfile with version provided here

Stripe Testing

Use Credit Card # 4111 1111 1111 1111 for testing success scenarios.

More information in their docs: https://stripe.com/docs/testing#cards

Dependencies