This is a test project for Mongo Atlas hackathon. It uses RailsEventStore with PostgreSQL as an event store and MongoDB on Atlas for read models.
Overview of My Submission
Yard Sale was an idea of old to enable people to list things they have for sale and let them manage the list. I used the opportunity of the hackathon to play with a few technologies and patterns I did not know well enough, so the project is more technical than visually appealing.
These technologies were:
- Event sourcing - I had previous experience, but I wanted to do it with available libraries, not home-baked solution
- Specific read models generated from events and optimized for read (these are in MongoDB in this case, while event store is PostgreSQL)
- Rails 7 on Ruby 3.1 with Hotwire
- TailwindCSS for server-side rendered content (spoiler: oit's rather not worth it)
- SDLand for seeds (see my post about seeds-driven development)
Demo: https://yard-sale-dev.herokuapp.com/
Submission Category:
E-Commerce Creation
Link to Code
Additional Resources / Info
Open source used:
- Ruby on Rails 7 with Hotwire on Ruby 3.1
- RailsEventStore with PostgreSQL as event store
- Mongo driver (as Mongoid is not ready for Rails 7, but it's a good thing, because it forced me to use repositories)
- TailwindCSS with style inspired by:
- dry-rb
Screenshots
Home page:
Sale view:
Offer view:
RailsEventStore dashboard (available in dev env only):