Web application that tracks and notifies users via email of price-changes in crypto assets
- Modeled custom database schema and RESTful API with Active Record, Postgres, and Ruby on Rails
- Integrated Resque and AWS Simple Email Service to dispatch price-change notifications to users based on alerts they create
- Front-end built using React, TypeScript, Bootstrap, SCSS, and the browser Fetch API
- Ruby 2.7.4
- NodeJS (v14 or higher), and npm
- Heroku CLI
- Postgresql
See Environment Setup below for instructions on installing these tools if you don't already have them.
This application has all the starter code needed to help you deploy your application to Heroku. It's recommended to deploy your project early and push up changes often to ensure that your code works equally well in production and development environments.
If you've already set up your environment to deploy to Heroku, you can run the commands below to deploy your application. If not, make sure to check out the Environment Setup section below.
To deploy, first log in to your Heroku account using the Heroku CLI:
heroku login
Create the new Heroku app:
heroku create my-app-name
Add the buildpacks for Heroku to build the React app on Node and run the Rails app on Ruby:
heroku buildpacks:add heroku/nodejs --index 1
heroku buildpacks:add heroku/ruby --index 2
To deploy, commit your code and push the changes to Heroku:
git add .
git commit -m 'Commit message'
git push heroku main
Note: depending on your Git configuration, your default branch might be named
master
ormain
. You can verify which by runninggit branch --show-current
. If it'smaster
, you'll need to rungit push heroku master
instead.
Any time you have changes to deploy, just make sure your changes are committed on the main branch of your repo, and push those changes to Heroku to deploy them.
You can view your deployed app with:
heroku open
Verify which version of Ruby you're running by entering this in the terminal:
ruby -v
Make sure that the Ruby version you're running is listed in the supported runtimes by Heroku. At the time of writing, supported versions are 2.6.8, 2.7.4, or 3.0.2. Our recommendation is 2.7.4, but make sure to check the site for the latest supported versions.
If it's not, you can use rvm
to install a newer version of Ruby:
rvm install 2.7.4 --default
You should also install the latest versions of bundler
and rails
:
gem install bundler
gem install rails
Verify you are running a recent version of Node with:
node -v
If your Node version is less than 14, update it with:
nvm install node
You can also update your npm version with:
npm i -g npm
Sign Up for a Heroku Account
You can sign up at for a free account at https://signup.heroku.com/devcenter.
Download the Heroku CLI Application
Download the Heroku CLI. For OSX users, you can use Homebrew:
brew tap heroku/brew && brew install heroku
For WSL users, run this command in the Ubuntu terminal:
curl https://cli-assets.heroku.com/install.sh | sh
If you run into issues installing, check out the Heroku CLI downloads page for more options.
After downloading, you can login via the CLI in the terminal:
heroku login
This will open a browser window to log you into your Heroku account. After
logging in, close the browser window and return to the terminal. You can run
heroku whoami
in the terminal to verify that you have logged in successfully.
Heroku requires that you use PostgreSQL for your database instead of SQLite. PostgreSQL (or just Postgres for short) is an advanced database management system with more features than SQLite. If you don't already have it installed, you'll need to set it up.
To install Postgres for WSL, run the following commands from your Ubuntu terminal:
sudo apt update
sudo apt install postgresql postgresql-contrib
Then confirm that Postgres was installed successfully:
psql --version
Run this command to start the Postgres service:
sudo service postgresql start
Finally, you'll also need to create a database user so that you are able to connect to the database from Rails. First, check what your operating system username is:
whoami
If your username is "ian", for example, you'd need to create a Postgres user with that same name. To do so, run this command to open the Postgres CLI:
sudo -u postgres -i
From the Postgres CLI, run this command (replacing "ian" with your username):
createuser -sr ian
Then enter control + d
or type logout
to exit.
This guide has more info on setting up Postgres on WSL if you get stuck.
To install Postgres for OSX, you can use Homebrew:
brew install postgresql
Once Postgres has been installed, run this command to start the Postgres service:
brew services start postgresql