Skip to content

A fictitious e-commerce platform where merchants and admins can manage inventory and fulfill customer invoices.

Notifications You must be signed in to change notification settings

mkrumholz/little-shop-of-rails

 
 

Repository files navigation

Little Shop of Rails

About this Project

Little Shop of Rails is a solo project that builds off of a 4-person group project, Little Esty Shop. The original group project required our team to build a fictitious e-commerce platform where merchants and admins could manage inventory and fulfill customer invoices.

In this solo extension, I explore Rails and ActiveRecord through creating and integrating bulk discounts, which are unique to specific merchants within the app. Work on bulk discounts is mine, along with the implementation for FactoryBot, WebMock, and the Nager.Date API for public holidays.

Timeframe: 9 days (for the original project) + 6 days (for my solo extension)

Check out my app on Heroku: Little Shop of Rails

View the original app here: Little Esty Shop

Original Project (Little Esty Shop) Contributors

Original Project Learning Goals

  • Practice designing a normalized database schema and defining model relationships
  • Utilize advanced routing techniques including namespacing to organize and group like functionality together
  • Utilize advanced active record techniques to perform complex database queries
  • Practice consuming a public API while utilizing POROs as a way to apply OOP principles to organize code

Built With

  • Ruby 2.7.2
  • Rails 5.2.6
  • ActiveRecord
  • SQL
  • RSpec (Capybara, Shoulda-Matchers)
  • Factory Bot
  • GitHub REST API
  • Nager.Date API - NextPublicHolidays (V3)

Important Gems(Libraries):

Testing

API Consumption

Front End

Getting Started

  1. Fork and clone the repo
  2. Install any missing gems from gem file
  3. Install gem packages with bundle install
  4. Run $ rails db:{create,migrate}
  5. Run $ rake csv_load:all
  6. From your terminal run $ rails s and navigate to http://localhost:3000/ in your browser to navigate the app

Testing

  • RSpec and Capybara were used for unit and integration testing and project development adhered to TDD principles.
  • FactoryBot was used to generate test data.
  • WebMock was used to stub out API requests and actual requests are blocked from the test environment.
  • Simplecov was used to track total test coverage.
  • To run our test suite, RSpec, enter $ bundle exec rspec in the terminal.
  • To see a coverage report enter $ open coverage/index.html

Phases and Original Project Documentation

  1. Database Setup
  2. User Stories
  3. Extensions
  4. Evaluation

Additonal References

About

A fictitious e-commerce platform where merchants and admins can manage inventory and fulfill customer invoices.

Topics

Resources

Stars

Watchers

Forks

Languages

  • Ruby 86.8%
  • HTML 12.1%
  • Other 1.1%