Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/maxbarsukov/shoeshop
🛍️👞 E-commerce website built as a training project
https://github.com/maxbarsukov/shoeshop
ecommerce rails-application rails-shop rails-store rails5 rails5-app shop shopping-cart web-shop
Last synced: 13 days ago
JSON representation
🛍️👞 E-commerce website built as a training project
- Host: GitHub
- URL: https://github.com/maxbarsukov/shoeshop
- Owner: maxbarsukov
- License: mit
- Created: 2021-03-10T14:17:14.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2021-07-21T18:02:36.000Z (over 3 years ago)
- Last Synced: 2024-10-29T14:15:21.453Z (22 days ago)
- Topics: ecommerce, rails-application, rails-shop, rails-store, rails5, rails5-app, shop, shopping-cart, web-shop
- Language: Ruby
- Homepage: https://shoeeshop.herokuapp.com
- Size: 11.3 MB
- Stars: 4
- Watchers: 1
- Forks: 2
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build Status](https://travis-ci.com/maxbarsukov/shoeshop.svg?branch=master)](https://travis-ci.com/maxbarsukov/shoeshop)
[![Coverage Status](https://coveralls.io/repos/github/maxbarsukov/shoeshop/badge.svg?branch=master)](https://coveralls.io/github/maxbarsukov/shoeshop?branch=master)
[![Security](https://hakiri.io/github/maxbarsukov/shoeshop/master.svg)](https://hakiri.io/github/maxbarsukov/shoeshop/master)
[![GuardRails badge](https://api.guardrails.io/v2/badges/maxbarsukov/shoeshop.svg?token=3d5892fecca01ce92b8bbc383010c005ccba7ec101cd480c093c8bcfb9b131cf&provider=github)](https://dashboard.guardrails.io/gh/maxbarsukov/82085)
[![Dependabot](https://img.shields.io/badge/dependabot-enabled-success.svg)](https://dependabot.com)# ShoeShop
> A simple yet fully functional web-shop application built with Ruby on Rails
This app is a store with features close to the real ones.
The user can add products to the cart and buy, navigate by categories and brands, search, filter and sort products.
The administrator is able to manage products, add and change them, and also has access to the API and the administrator page.You can go to the [website](https://shoeeshop.herokuapp.com/) or view the images in the [docs/images](https://github.com/maxbarsukov/shoeshop/tree/master/docs/images) folder
## Functionality included
- Sign up / sign in / forgot password
- Sign in with Facebook
- Filter products by categories and brands
- Add products to the shopping cart
- Search for products using auto-completion
- View related and recent products
- Product's pagination
- Use app's API if the administrator has given you UID and secret
- Admin Page
- OAuth 2 provider## About the code
- Built with `Ruby on Rails 5`
- Using `Boostrap 3` and own stylesheets for styles
- `Devise` as authentication solution
- `Pundit` for authorization
- `Pagy` for pagination
- `rails_admin` for admin page
- `HAML` as templating engine for HTML
- `CoffeeScript` instead of JS in scripts
- Using `jQuery` and plugins: `easydropdown`, `responsiveslides`, `simpleCart`, `typeahead`, etc.
- `meta-tags` for SEO optimization
- `OmniAuth` provides authentication using third-party credentials
- `Doorkeeper` as `OAuth 2` provider and `API` authenticator
- `API` built with `jbuilder` and `active_model_serializers`
- `acts-as-taggable-on` for filtering products by tags
- `rack-attack` as middleware for throttling and blocking abusive requests
- TDD with `RSpec` + `ShouldaMatchers` + `FactoryBot` + `etc.` (over `110` tests)
- Profiling and optimization tools:
- `Bullet` as `N+1` problem profiler
- `active_record_doctor` helps to keep the database in a good shape
- Code quality scanners: `rails_best_practices`, `rubocop`, `rubycritic`, `brakeman`
- CI/CD
- `Travis CI`
- `Coveralls.io` for test coverage history & statistics
- `Hakiri.io` & `GuardRails.io` as security vulnerabilities scanner
- `Docker` & `docker-compose`## Setup
Clone this repository:
`git clone [email protected]:maxbarsukov/shoeshop.git`
Install gems:
`bundle install`
Setup database and seeds:
`bundle exec rails db:create db:migrate db:seed`
Setup your test database:
`bundle exec rails db:test:prepare`
## Run
With Foreman:
- Dev:
`foreman start`
- Production:
`foreman start -f Procfile`Using Docker: `docker-compose up`
## Testing
Run tests with `rspec`
Check security vulnerability with `bundle exec brakeman --exit-on-warn -f plain -5`
Check the quality of code with `bundle exec rails_best_practices . --spec -c config/rails_best_practices.yml`
Run `bundle exec rubycritic` for code quality reporter
## License
MIT License. Copyright 2021 nyapsilon