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
- Run
bundle install
to install dependencies - Create
config/database.yml
by copyingconfig/database.example.yml
- Create
config/secrets.yml
by copyingconfig/secrets.example.yml
- Run
bin/rake db:reset
to create, load and seed db - Create .env file based on .env.example
- Sign up for a Stripe account
- Put Stripe (test) keys into appropriate .env vars
- Run
bin/rails s -b 0.0.0.0
to start the server
Additional Steps for Apple M1 Machines
- Make sure that you are runnning Ruby 2.6.6 (
ruby -v
) - Install ImageMagick
brew install imagemagick imagemagick@6 --build-from-source
- Remove Gemfile.lock
- 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
- Rails 4.2 Rails Guide
- PostgreSQL 9.x
- Stripe