E-commerce app. Shop online with Shopline. You shop, we ship!
Prerequisites
Create .env
file at the root of the project directory. Copy the content of .env.template.erb
to .env
then update the username
and password
based on your database credentials. Get STRIPE_SECRET_KEY
and STRIPE_WEBHOOK_SECRET
from your Stripe account
Install dependencies and setup database
bin/setup
Start local web server
bin/dev
Go to http://localhost:3000
Use Stripe CLI to simulate Stripe events in your local environment or learn more about Webhooks
stripe listen --forward-to localhost:3000/stripe_webhooks
To test Stripe payments, use the following test card details:
- Card Number:
4242 4242 4242 4242
- Expiration: Any future date
- CVC: Any 3-digit number
- Go to the Stripe Dashboard and create a new webhook for your production environment.
- Set the endpoint URL to your production route (e.g.,
https://yourdomain.com/stripe_webhooks
). - Select the events you want to listen for (e.g.,
checkout.session.completed
,customer.created
,customer.deleted
).
GitHub actions are setup to lint and test the application on pushes to main and feature branches. It's also setup to deploy the application on pushes to main
You can also run these actions locally before pushing to see if your run is likely to fail. See the following gems / commands for more info.
-
Brakeman - Security audit application code
bin/brakeman -q -w2
-
Brakeman: Ignoring False Positives - Creating and Managing an Ignore File
bin/brakeman -I -q -w2
-
Rubocop Rails Omakase - Ruby Linter
bin/rubocop
Note: Some linters like
ESLint
,Prettier
, etc. will automatically run onpre-commit
git hook.
Setup test database
bin/rails db:test:prepare
Default: Run all spec files (i.e., those matching spec/**/*_spec.rb)
bin/rspec
or with --fail-fast
option to stop running the test suite on the first failed test. You may add a parameter to tell RSpec to stop running the test suite after N failed tests, for example: --fail-fast=3
bin/rspec --fail-fast
Run all spec files in a single directory (recursively)
bin/rspec spec/models
Run a single spec file
bin/rspec spec/models/product_spec.rb
Run a single example from a spec file (by line number)
bin/rspec spec/models/product_spec.rb:6
Use the plain-English descriptions to generate a report of where the application conforms to (or fails to meet) the spec
bin/rspec --format documentation
bin/rspec --format documentation spec/models/product_spec.rb
See all options for running specs
bin/rspec --help
SimpleCov is a code coverage analysis tool for Ruby. It uses Ruby's built-in Coverage library to gather code coverage data, but makes processing its results much easier by providing a clean API to filter, group, merge, format, and display those results, giving you a complete code coverage suite that can be set up with just a couple lines of code. SimpleCov/Coverage track covered ruby code, gathering coverage for common templating solutions like erb, slim and haml is not supported.
After running your tests, open coverage/index.html
in the browser of your choice. For example, in a Mac Terminal,
run the following command from your application's root directory:
open coverage/index.html
in a debian/ubuntu Terminal,
xdg-open coverage/index.html
Note: This guide can help if you're unsure which command your particular operating system requires.