3.1 KiB
Getting Started
Dependencies
You'll need to have in your Mac the following dependencies installed, if you don't want to use the provided Docker containers.
- Ruby
2.5.1
- Rails
5.0.7.1
- Node
11.12.0
Local Config
Instructions for running Development environment using macOS Catalina
Initial steps
Dependencies:
Have a ruby version installed, you can learn more about how to use multiple versions of Ruby installed in your computer with rbenv or rvm.
An instance of PostgresSQL running.
Setting up secrets:
Run cp .env.template .env
to copy the provided template file for env variables to create your own.
You'll need to provide a DEVISE_SECRET_KEY
and SECRET_TOKEN
which you can obtain by running bundle exec rake secret
.
Set the following secrets in your .env
file with your Stripe account information.
STRIPE_API_KEY
with your Stripe private key.STRIPE_API_PUBLIC
with your Stripe public key.
The last secrets you'll need are related to AWS. You can learn how to create an S3 Bucket within the AWS Documentation, and to obtain your access and secret key, you can learn more here.
S3_BUCKET_NAME
AWS_ACCESS_KEY
AWS_SECRET_ACCESS_KEY
Setting up the local database:
Run rake db:setup
to run all the db tasks within one command. This will create the dbs for each environment, load the structure.sql
, run pending migrations and will also run the seed functionality.
Known problems
If you encounter database doesnt exist in rake db create
after running both rake db:setup
and rake db:create
, you'll need to comment out the lines these lines at pg_type_map.rb
Qx.config(type_map: PG::BasicTypeMapForResults.new(ActiveRecord::Base.connection.raw_connection))
Qx.execute("SET TIME ZONE utc")
How to run
You'll need 2 consoles to run the project. One for the rails env and another one to run the asset pipeline through webpack , since it's not incorporated yet into the rails asset pipeline.
# Console one (1)
bundle exec rails server
# Console two (2)
npm run watch
# #### Notes ####
# If you get errors from running this command.
# You'll need to manually run the following commands.
npm run export-button-config
npm run export-i18n
npm run generate-api-js
# Now we're able to watch!
npx webpack --watch
Testing
Run bundle exec rspec
to run test suite.
Formatting
We are using Standard that is a wrapper on top of Rubocop with a predefined set of Rules. If you use VS Code you will want to install vscode-ruby extension and enable formatting on save.
To enable formatting on save add these lines to your settings.json
.
{
"[ruby]": {
"editor.formatOnSave": true
},
"ruby.lint": {
"rubocop": true
},
"ruby.format": "rubocop",
"editor.formatOnSaveTimeout": 5000
}