GitHub - roberthopman/trade-tracking-and-journaling: Multi-tenant RoR app, enabling: firms/brokers, account configurations, trades, payouts, and more.

2 min read Original article ↗

Intro

This is a trade tracking and journaling application. More details in CLAUDE.md.

Screenshots

Accounts Trades Journal

Production

To create a new Heroku app for this project:

heroku create
heroku buildpacks:set heroku/ruby
heroku buildpacks:add --index 1 heroku/nodejs
heroku config:set NPM_CONFIG_INCLUDE='dev' YARN_PRODUCTION=false
git push heroku

To deploy the app to Heroku:

Prerequisites

This project requires:

  • Ruby (see .ruby-version), preferably managed using rbenv
  • Node 20 (LTS) or newer
  • Yarn 1.x (classic)
  • PostgreSQL must be installed and accepting connections

On macOS, these Homebrew packages are recommended:

brew install rbenv
brew install node
brew install yarn
brew install postgresql@17

Getting started

bin/setup

Run this script to install necessary dependencies and prepare the Rails app to be started for the first time.

Tip

The bin/setup script is idempotent and is designed to be run often. You should run it every time you pull code that introduces new dependencies or makes other significant changes to the project.

Tip

To drop your existing database and start over with a clean local environment, use bin/setup --reset.

Run the app!

Start the Rails server with this command:

The app will be located at http://localhost:3000/.

Development

Use this command to run the full suite of automated tests and lint checks:

Tip

Rake allows you to run all checks in parallel with the -m option. This is much faster, but since the output is interleaved, it may be harder to read.

Fixing lint issues

Some lint issues can be auto-corrected. To fix them, run:

Warning

A small number of Rubocop's auto-corrections are considered "unsafe" and may occasionally produce incorrect results. After running fix, you should review the changes and make sure the code still works as intended.