This is a starter Rails application with everything you need to properly bootstrap a useful Rails application. This is a fully self-contained application with backend stack.
You need to have the following installed before you can run this application:
- Refer to the
.tool-versions
file for current Ruby / NodeJS versions. - Docker for Mac
asdf is the recommended version manager for Ruby.
Installing pg gem on macOS
If you're trying to install the postgresql gem pg
and it is failing with the following error message:
Installing pg 1.2.3 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: ~/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/pg-1.2.3/ext
~/.rbenv/versions/3.0.0/bin/ruby -I ~/.rbenv/versions/3.0.0/lib/ruby/3.0.0 -r ./siteconf20210125-97201-pycpo.rb extconf.rb
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
--with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
The following helped me resolve the issue without having to install the entire postgresql as recommended in the stop Stack Overflow post (already using it in a Docker container):
brew install libpq
gem install pg -- --with-pg-config=/usr/local/opt/libpq/bin/pg_config
Backend services defined in the docker-compose.yml
are:
- Postgres
15.3
- Redis
7.2
- Memcached
1.6
The backed services are configured in the docker-compose.yml
file. These services are controlled via some convenience scripts in ./bin/docker
:
./bin/up
-> Install docker images and start the services../bin/stop
-> Stop all the services../bin/watch
-> Monitor all services in real-time../bin/teardown
-> Remove all docker containers and images.
- Start all the docker services.
- Run the provided setup script:
./bin/setup
- Seed the database:
rake development:truncate_and_seed
- Start the app:
foreman start
- You can override environment settings in the
.env
file.
- Start the application:
foreman start
- Navigate to http://localhost:3000
- Login using the default user credentials:
- Email:
jim@example.com
- Password:
Changeme1!
- Email:
- Run the provided rake task to prepare a clean dataset:
rake development:truncate_and_seed
- To run the test suite simply run:
rspec
- You can also run guard for TDD-style testing:
guard
-
There are 3 sample data files provided for general use / experimentation:
-
data/credit-cards.json
-> Sample JSON credit card data created at generatedata.com -
data/moviedata.json
-> Sample JSON data file from the AWS DynamoDB tutorial -
data/people.csv
-> Sample CSV data file from the ConvertCSV
This starter kit is released under the MIT License.