A Ruby on Rails application for software engineers who want to manage services.
- Ruby 3.4.2
- PostgreSQL
- Docker
The easiest way to get started is using VS Code's Dev Containers. This approach automatically sets up all prerequisites and provides a consistent development environment.
-
Prerequisites for this method:
- Visual Studio Code
- Docker Desktop
- VS Code Remote - Containers extension
-
Setup steps:
git clone [repository-url] cd wave-connect code .
-
When VS Code prompts to "Reopen in Container", click "Reopen in Container". Or use the command palette (F1) and select "Dev Containers: Reopen in Container"
-
Wait for the container to build. This will automatically:
- Set up Ruby 3.4.2
- Setup and run PostgreSQL
- Install all dependencies
- Configure the development environment
-
Once inside the container, start the app with:
bin/dev
The development environment is now ready to use!
- Clone the repository
git clone https://github.com/xavius-rb/wave-connect
cd wave-connect- Install dependencies
bin/bundle install- Setup database
bin/rails db:prepareStart the development server:
bin/devThe application will be available at http://localhost:3000
The project uses RSpec for testing. To run the test suite:
bin/rspecRun the linter:
bin/rubocopRun security checks:
bin/brakemanCopy the example environment file and adjust as needed:
cp .env.example .envDatabase configuration can be found in config/database.yml
This project uses Kamal for deployment. Deployment configuration can be found in config/deploy.yml.
To deploy:
bin/kamal deploy- Rails 8.x
- PostgreSQL Database
- RSpec for testing
- Rubocop for code quality
- Brakeman for security analysis
- Kamal for deployment
- Docker support
- PWA support (see
app/views/pwa/)
Background job processing is configured using Active Job.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Write tests for new features
- Follow the Ruby Style Guide enforced by Rubocop
- Run the test suite before submitting pull requests
- Keep the documentation up to date