This is a Rails boilerplate use rails 7.2
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 redisTo setup a development environment (MacOS):
Clone the repo:
git clone git@github.com:GoldenOwlAsia/rails-view-template.gitInstall 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 yarnInstall Javascript Packages: Install packages:
yarnSet 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.sampletoconfig/database.ymland customise the values as needed. - Copy
.env.sampleto.envand customise the values as needed.
Run server:
- rails server:
rails s- sidekiq
bundle exec sidekiq- Vite
vite dev- Using gem:
rails-mermaid_erd- Its auto generate when runrails db:migrate - Can see ERD at
http://localhost:3000/erd
- DaisyUI: https://daisyui.com/components/
- For icons: lucide icon packages: https://lucide.dev/icons/
-
Run test by:
bundle exec rspec -
Check test coverage at
coverage/index.html
-
ESLint check:
yarn lint
-
ESLint check & auto fix:
yarn lint:fix
-
Use lefthook gem: https://github.com/evilmartians/lefthook
bundle exec lefthook install
-
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
- Can use github CLI to generate in local or create new release in github and copy changes logs from file
-
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