Skip to content

GoldenOwlAsia/rails-view-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rails boilerplate - From Golden Owl Solutions

This is a Rails boilerplate use rails 7.2

Prerequisites

This project requires:

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

On macOS, these Homebrew packages are recommended:

  brew install rbenv
  brew install node 20.9.0
  brew install yarn
  brew install postgresql@16
  brew install redis

Getting started

Install - setup app

To setup a development environment (MacOS):

Clone the repo:

  git clone [email protected]:GoldenOwlAsia/rails-view-template.git

Install Ruby:

This project currently uses Ruby 3.3.0, which is most easily managed through a version manager like asdf, rbenv

Install Nodejs:

This project user Node 20.9.0, which is most easily managed through a version manager like asdf, rvm

Install Ruby gems:

  • install bundle version 2.5.4 (or similar if you are using an older version on your development)

    gem install bundler -v 2.5.4
  • bundle

    bundle install

Install Yarn.

  npm install -g yarn

Install Javascript Packages: Install packages:

  yarn

Set the RACK_ENV (optional): Later steps expect a RACK_ENV environment variable, so define one (usually 'development'.) This can be done by exporting a value in your shell config (by adding something like export RACK_ENV=development to your shell configuration file - .bashrc, etc)

Personalise the app settings:

  • Copy config/database.yml.sample to config/database.yml and customise the values as needed.
  • Copy .env.sample to .env and customise the values as needed.

Run server:

  • rails server:
  rails s
  • sidekiq
  bundle exec sidekiq
  • Vite
  vite dev

Development

ERD

  • Using gem: rails-mermaid_erd - Its auto generate when run rails db:migrate
  • Can see ERD at http://localhost:3000/erd

FE references

Rspec

  • Run test by:

      bundle exec rspec
  • Check test coverage at coverage/index.html

ESLint

  • ESLint check:

      yarn lint
  • ESLint check & auto fix:

      yarn lint:fix

Config Git hooks manager

For create tag & release - github

  • Use git-cliff: install with brew

      brew install git-cliff

    or

      git cliff --bump
  • create version with git-cliff:

      git cliff --tag 1.0.0 --output CHANGELOG.md
  • example:

      git tag -a 1.0.0 -m "Release version 1.0.0"
    • Can use github CLI to generate in local or create new release in github and copy changes logs from file CHANGELOG.md

Project Directory Structure

  • To generate the directory structure in YAML format, run the following command:

    rake docs:generate_yaml
  • If you have not installed the tree command, you can install it by running:

    brew install tree
---
|
  .
  ├── CHANGELOG.md
  ├── DEPLOYMENT.md
  ├── Dockerfile
  ├── Gemfile
  ├── Gemfile.lock
  ├── Procfile
  ├── README.md
  ├── Rakefile
  ├── app
  │   ├── channels
  │   ├── controllers
  │   ├── frontend
  │   ├── helpers
  │   ├── models
  │   ├── policies
  │   ├── queries
  │   ├── services
  │   ├── structure.txt
  │   └── views
  ├── bin
  │   ├── brakeman
  │   ├── bundle
  │   ├── bundle-audit
  │   ├── bundler-audit
  │   ├── dev
  │   ├── docker-entrypoint
  │   ├── rails
  │   ├── rake
  │   ├── rspec
  │   ├── rubocop
  │   ├── setup
  │   └── vite
  ├── cliff.toml
  ├── commitlint.config.js
  ├── config
  │   ├── application.rb
  │   ├── boot.rb
  │   ├── cable.yml
  │   ├── credentials.yml.enc
  │   ├── database.yml
  │   ├── database.yml.sample
  │   ├── environment.rb
  │   ├── environments
  │   ├── i18n-tasks.yml
  │   ├── initializers
  │   ├── locales
  │   ├── master.key
  │   ├── mermaid_erd.yml
  │   ├── puma.rb
  │   ├── routes.rb
  │   ├── sidekiq.yml
  │   ├── storage.rb
  │   ├── storage.yml
  │   └── vite.json
  ├── config.ru
  ├── coverage
  │   ├── assets
  │   └── index.html
  ├── db
  │   ├── migrate
  │   ├── schema.rb
  │   ├── seeds
  │   └── seeds.rb
  ├── docs
  │   └── erd.html
  ├── eslint.config.js
  ├── lefthook.yml
  ├── lib
  │   ├── assets
  │   ├── tasks
  │   └── templates
  ├── package.json
  ├── postcss.config.cjs
  ├── spec
  │   ├── cassettes
  │   ├── factories
  │   ├── fixtures
  │   ├── helpers
  │   ├── i18n_spec.rb
  │   ├── mailers
  │   ├── models
  │   ├── queries
  │   ├── rails_helper.rb
  │   ├── spec_helper.rb
  │   ├── supports
  │   └── views
  ├── tailwind.config.js
  ├── vite.config.ts
  └── yarn.lock