A full-stack Ruby on Rails application to manage an investment wallet for stocks, REITs (FIIs), and cryptocurrencies.
The project uses Hotwire and Stimulus for a reactive UI and follows SOLID principles and Clean Code practices.
ledgerPro is a portfolio manager where users can:
- Create an investment wallet
- Add assets (stocks, FIIs, crypto)
- Track current positions
- Register buy and sell operations
- Visualize data in real time using Hotwire
The goal is to provide a clean, maintainable codebase while delivering a modern full-stack Rails experience.
- Ruby 3.4.5
- Rails 8.1.1
- Hotwire (Turbo + Stimulus)
- Importmaps (no Node.js)
- PostgreSQL
- Docker & Docker Compose (development)
This project is built with:
- SOLID principles
- Clean Code practices
- Service objects and POROs where needed
- Small, focused classes and methods
- High test coverage
You only need:
- Docker
- Docker Compose
No local Ruby, Rails, Node, or database required.
Clone the repository:
git clone https://github.com/brandaoplaster/ledgerPro.git
cd ledgerProBuild and start containers:
docker compose up --buildSetup the database:
docker compose run ledger bundle exec rails db:create db:migrateOpen in browser:
http://localhost:3000
Rails console:
docker compose run ledger bundle exec rails cRun tests:
docker compose run ledger bundle exec rails testStop containers:
docker compose down.
├── app/
│ ├── controllers/
│ ├── models/
│ ├── services/
│ ├── views/
│ └── javascript/ (Stimulus)
├── config/
├── db/
├── Dockerfile
├── compose.yml
└── README.md