Lazcar.-.Brave.2026-04-11.11-41-07.1.1.mp4
- Overview
- Features
- Tech Stack
- Getting Started
- Testing & Code Quality
- Environment Variables
- Deployment
car-website is a Rails 8 application for showcasing, managing, and selling vehicles online. It includes an admin workflow for inventory management and a public-facing storefront where visitors can browse listings, compare cars, and send enquiries.
- 🚗 Inventory management for makes, models, and cars.
- 🖼️ Multiple image uploads per car using Active Storage.
- 🔐 Authentication and role-based authorization (Devise + Rolify + Pundit).
- 🧭 Public catalog with filters and detailed vehicle pages.
- ⚡ Modern Rails frontend stack with Hotwire, Stimulus, and Tailwind.
- 📦 Docker-ready deployment flow and CI-friendly project layout.
- Backend: Ruby on Rails 8
- Database: PostgreSQL
- Frontend: Hotwire (Turbo + Stimulus), Tailwind CSS, esbuild
- Auth / Access Control: Devise, Rolify, Pundit
- Background Infrastructure: Solid Queue, Solid Cache, Solid Cable
- Deployment: Docker + Kamal
Install the following tools before running locally:
- Ruby (compatible with the app's Gemfile / lockfile)
- Bundler
- PostgreSQL
- Node.js + npm or yarn
-
Clone the repository
git clone https://github.com/syntaxmage05/car-website.git cd car-website -
Install dependencies
bundle install yarn install
-
Set up the database
bin/rails db:create bin/rails db:migrate # Optional: load seed data bin/rails db:seed -
Start the development server
bin/dev
-
Open your browser at:
http://localhost:3000
Build and run the project in a container:
docker build -t car-website .
docker run --rm -p 3000:3000 car-websiteRun the default Rails test suite:
bin/rails testRun security and lint checks (if configured in your environment):
bin/brakeman
bin/rubocopYou can configure optional integrations through environment variables (for example WhatsApp contact settings used for enquiries):
WHATSAPP_PHONE=1234567890For production, set required secrets using Rails credentials and your deployment environment.
This app includes Kamal configuration at config/deploy.yml. Typical deployment workflow:
bin/kamal setup
bin/kamal deployReview and customize config/deploy.yml before deploying.