A modern password management application built with Rails 8, Vue 3, and Materialize CSS.
- Rails 8.1.1 - Backend framework
- Vue 3 - Frontend framework with Composition API
- Materialize CSS - Material Design UI framework
- PostgreSQL - Database
- Vite - Fast build tool and dev server
- Hotwire - Turbo & Stimulus for reactive features
- Ruby 3.3.5 or higher
- Node.js 22.1.0 or higher
- PostgreSQL 9.3 or higher
- Foreman (for running dev server)
- Install dependencies:
bundle install
npm install- Create and setup the database:
rails db:create
rails db:migrateStart the development server:
bin/devThis will start both the Rails server (port 3000) and Vite dev server.
Visit http://localhost:3000 to see the application.
app/javascript/entrypoints/- Vite entry pointsapp/javascript/components/- Vue 3 components (.vue files)app/javascript/controllers/- Stimulus controllersconfig/database.yml- PostgreSQL configurationvite.config.mts- Vite configuration
Vue components are automatically registered from app/javascript/components/. To create a new component:
- Create a
.vuefile inapp/javascript/components/ - Use it in your ERB views with
<ComponentName />
Materialize CSS is globally available. The framework is auto-initialized on page load. You can access it in Vue components via this.$M.
rails test
rails test:systemThis app is configured with Kamal for deployment. See config/deploy.yml for deployment configuration.