A miniature version of Grain's menu management system. Admins create menus with categories and items, publish them, and customers browse the live menus. Built with Rails 8, Inertia.js, and React.
- Ruby 3.4.4 / Rails 8.1
- PostgreSQL 16 (via Docker)
- Inertia.js + React (frontend)
- Tailwind CSS (styling)
- Vite (asset bundling)
- RSpec + FactoryBot + Capybara (testing)
# Start PostgreSQL
docker compose up -d
# Install dependencies
bundle install
yarn install
# Create, migrate, and seed the database
bin/rails db:create db:migrate db:seed
# Start the dev server (Rails + Vite)
bin/devbin/dev runs both the Rails server and the Vite dev server via Procfile.dev.
bundle exec rspecSystem tests use headless Chrome via Selenium.
After seeding, log in at /admin with:
- Email: admin@grain.com.sg
- Password: password