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
- Molly Krumholz (Me!)
Github | LinkedIn - Sidarth Bagawandoss
Github | LinkedIn - Lawrence Whalen
Github | LinkedIn - Aliya Merali
Github | LinkedIn
- 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
- Ruby 2.7.2
- Rails 5.2.6
- ActiveRecord
- SQL
- RSpec (Capybara, Shoulda-Matchers)
- Factory Bot
- GitHub REST API
- Nager.Date API - NextPublicHolidays (V3)
Testing
API Consumption
Front End
- Fork and clone the repo
- Install any missing gems from gem file
- Install gem packages with
bundle install
- Run
$ rails db:{create,migrate}
- Run
$ rake csv_load:all
- From your terminal run
$ rails s
and navigate to http://localhost:3000/ in your browser to navigate the app
- 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