Yard Sale - event-driven e-commerce

Paweł Świątkowski - Jan 14 '22 - - Dev Community

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:

Home page of YardSale

Sale view:

Sale view with offers

Offer view:

Single offer view

RailsEventStore dashboard (available in dev env only):

Image description

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .