A modern, full-stack Ruby on Rails application built with cutting-edge technologies.
- 🎨 Modern UI - Beautiful, responsive design with TailwindCSS
- ⚡ Hotwire - SPA-like experience with Turbo and Stimulus
- 🧪 Comprehensive Testing - RSpec with FactoryBot and SimpleCov
- 🔒 Security - Built-in security scanning with Brakeman
- 📊 Code Quality - RuboCop linting with Rails and RSpec rules
- 🚀 CI/CD Ready - GitHub Actions workflow for automated testing
- Ruby 3.3.0
- Rails 7.1
- SQLite3 (Development & Test)
- Puma Web Server
- Hotwire (Turbo + Stimulus)
- TailwindCSS 3.x
- Import Maps for JavaScript
- SassC for CSS preprocessing
- RSpec - Testing framework
- FactoryBot - Test fixtures
- Faker - Fake data generation
- SimpleCov - Code coverage (80% minimum)
- Capybara + Selenium - System testing
- RuboCop - Code linting
- Brakeman - Security scanning
- bundler-audit - Dependency vulnerability scanning
- Ruby 3.3.0
- Node.js 20.x or higher
- SQLite3
- Git
# Clone the repository
git clone https://github.com/AirLabJP/first_app.git
cd first_app
# Install Ruby dependencies
bundle install
# Install JavaScript dependencies
npm install
# Setup database
rails db:create db:migrate
# Setup Tailwind CSS
rails tailwindcss:install# Start the Rails server
rails server
# In a separate terminal, watch Tailwind CSS changes
rails tailwindcss:watchVisit http://localhost:3000 to see your application running!
# Run all tests
bundle exec rspec
# Run specific test file
bundle exec rspec spec/models/post_spec.rb
# Run with coverage report
COVERAGE=true bundle exec rspec
# View coverage report
open coverage/index.html# Run RuboCop
bundle exec rubocop
# Auto-fix issues
bundle exec rubocop -A
# Run Brakeman security scan
brakeman
# Check for vulnerable dependencies
bundle audit --updatefirst_app/
├── app/
│ ├── assets/
│ │ └── stylesheets/
│ │ └── application.tailwind.css
│ ├── controllers/
│ ├── javascript/
│ │ ├── controllers/ # Stimulus controllers
│ │ └── application.js
│ ├── models/
│ └── views/
├── config/
│ ├── tailwind.config.js
│ └── routes.rb
├── spec/
│ ├── factories/
│ ├── models/
│ ├── requests/
│ ├── rails_helper.rb
│ └── spec_helper.rb
├── .rubocop.yml
├── .rspec
└── Gemfile
Configuration is in config/tailwind.config.js. Custom utility classes are defined in app/assets/stylesheets/application.tailwind.css.
- Turbo is enabled by default for all forms and links
- Stimulus controllers are in
app/javascript/controllers/ - Import maps configuration in
config/importmap.rb
-
Create a feature branch
git checkout -b feature/your-feature
-
Make your changes
-
Run tests and linting
bundle exec rspec bundle exec rubocop
-
Commit your changes
git commit -am "Add your feature" -
Push and create a Pull Request
git push origin feature/your-feature
This application is ready for deployment on:
- Heroku
- Fly.io
- Railway
- Render
Make sure to:
- Set up production database (PostgreSQL recommended)
- Configure environment variables
- Precompile assets
- Run migrations
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source and available under the MIT License.
- Rails Team for the amazing framework
- Hotwire for modern frontend tools
- TailwindCSS for beautiful styling
- The Ruby community
Air - @Air_RSTC
Project Link: https://github.com/AirLabJP/first_app
Built with ❤️ using Ruby on Rails 7, Hotwire, and TailwindCSS