Skip to content

Latest commit

 

History

History
125 lines (83 loc) · 3.48 KB

README.md

File metadata and controls

125 lines (83 loc) · 3.48 KB

README

Templatus (use hotwire edition)

Template is an opinionated template to build web applications with Ruby on Rails and flowbite ui. It simplifies the process of setting up a new application while following best practices.

Live demo available at

Backend

  • Ruby 3.2.2
  • Ruby on Rails 7.0.4 PostgreSQL for use as SQL database
  • Sidekiq for background processing
  • Redis for Caching, ActionCable, and Sidekiq
  • Puma is a simple, fast, multi-threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications.

Frontend

  • hotwire Hotwire is an alternative approach to building modern web applications without using much JavaScript by sending HTML instead of JSON over the wire
  • Tailwind CSS 3 to not have to write CSS at all
  • https://flowbite.com/ Build websites even faster with components on top of Tailwind CSS.
  • esbuild An extremely fast bundler for the web

Development

  • Foreman for starting up the application locally
  • dotenv to load environment variables from .env into ENV
  • Prettier for auto-formatting JavaScript and Ruby code in Visual Studio Code
  • Lookbook as development UI for ViewComponent
  • Live reloading

Linting and testing

  • RuboCop for Ruby static code analysis
  • ESLint for JavaScript static code analysis
  • RSpec for Ruby testing
  • Factory Bot for setting up Ruby objects as test data
  • Cypress for E2E testing

Deployment

  • Docker for production deployment, NOT for development
  • GitHub Actions for testing, linting, and building Docker image
  • Dependabot configuration for updating dependencies (with auto-merge)
  • Ready for serving assets via CDN like CloudFront
  • Lockup to place a staging server behind a basic codeword

Getting started

Install for development

  1. Clone the repo locally:
git clone https://github.com/jisuanjixue/Flowbite_rails_template
cd Flowbite_rails_template
  1. Install PostgreSQL, Redis, ruby, gem, javascript node module etc Setup the application to install gems and NPM packages and create the database::
bin/setup
  1. Start the application locally:
bin/dev

Then open http://localhost:3000 in your browser.

Running linters

RuboCop:

bin/rubocop

ESLint:

bin/yarn lint

Running tests locally

Ruby tests:

bin/rspec
open coverage/index.html

JavaScript unit tests:

bin/yarn test

E2E tests with Cypress:

bin/cypress open

This opens Cypress and starts Rails in development environment, but with CYPRESS=true, so the test database is used. This allows code editing without class reloading and recompiling assets.

To run Cypress in headless mode:

bin/cypress run

Test deployment locally

docker network create public
docker-compose up