Building acme, a small e-shopping website, in seven progressive versions.
Each exercise is an independent Rails app, deployed to its own subdomain on the same server.
Ruby 3.0.2 · Rails 7.0 · PostgreSQL · Devise · CarrierWave + Cloudinary · RailsAdmin · CanCanCan + Rolify · Docker · Kamal
| # | Exercise | Adds | Live |
|---|---|---|---|
| ex00 | MySQL is a bad habit | PostgreSQL-backed app, containerized & deployable | ror-advanced-00 |
| ex01 | You Sir? | Authentication with Devise (User) |
ror-advanced-01 |
| ex02 | Get me something to sell | Brand & Product, images on Cloudinary |
ror-advanced-02 |
| ex03 | Cart | Session cart, quantities, checkout & orders | ror-advanced-03 |
| ex04 | One panel to rule them all | Admin dashboard with RailsAdmin | ror-advanced-04 |
| ex05 | One account to rule them all | Roles (admin / moderator) via Rolify + CanCanCan | ror-advanced-05 |
| ex06 | Show me what you got | Online + seed: 2500 products, 50 brands, 20 users | ror-advanced-06 |
Local dev:
cd exNN && docker compose up· Deploy:make setup-exNN(seeMakefile).
A PostgreSQL-backed “acme” app, containerized and ready to ship.
Sign up, sign in, edit your profile — authentication done right with Devise.
A catalog of brands and products, with images served from the Cloudinary CDN.
Add to cart, adjust quantities, and check out — a session-based basket.
A full administration dashboard, generated by RailsAdmin.
Administrators and moderators, each with exactly the powers they should have.
Live on the web, seeded with 2500 products across 50 brands.






