A mini e-commerce application built with Rails 4.2. Learned how to navaigate existing code-bases and implement new features with an unfamiliar language. Applied previous research tactics to become familiar with new paradigms, language and frameworks. Able to implement features without thorough explanation. simulating real world situations.
https://jungle-app.herokuapp.com/
Implemented the following features for Jungle:
- Sold Out Badge: Implemented boolean function to display badge when inventory 0.
- Admin Categories: Created restful routes to be able to create new categories within the admin namespace.
- User Authentication: User is able to signup/login to Jungle where password is encrypted and email is validated through uniqueness to ensure non existing user.
- Enhanced Order Page: Order details shown with description, quantity and cart total upon successful payment.
- Confirmation Email: Email is sent to user to confirm purchase with order details.
- Product Ratings: Users logged in are able to leave reviews for each product and can delete reviews. Visitors are able to see product ratings, but must be logged in in order to leaver review.
Code is DRY and modular, follow The Rails Way.
- Rails
- Ruby
- RSpec
- Poltergeist/Capybara
- ERB
- Boostrap
class UsersController < ApplicationController
def new
end
def create
user = User.new(user_params)
if user.save
session[:user_id] = user.id
redirect_to '/'
else
flash[:alert] = user.errors.full_messages
redirect_to '/signup'
end
end
def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation)
end
end
- Fork & Clone
- 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
Use Credit Card # 4111 1111 1111 1111 for testing success scenarios.
More information in their docs: https://stripe.com/docs/testing#cards
- Rails 4.2 Rails Guide
- PostgreSQL 9.x
- Stripe