Cliffton
Back to projects

P2P Book Exchange

SoloJun 2026View code

8 features
auth, book CRUD, search, exchange requests, messaging, ratings, wishlist, AI recommendations
POC
no metrics reported; the goal was proving the mechanism, not evaluating a model

The problem

A proof of concept for giving unread physical books a second life: list a book, browse what others have listed, request an exchange, message the other side, and rate them once it's done. No metrics here by design; it's a POC meant to prove the mechanism works, not a model to evaluate.

Approach

  • Built the eight-feature loop end to end in Laravel: auth and profiles, book CRUD with cover images, search that excludes your own listings, the request/accept/reject/complete exchange flow, in-app messaging between the two parties, and post-exchange ratings surfaced on public profiles.
  • Kept the discovery and management surfaces separate on purpose: a dedicated 'My Books' page for managing your own listings, and a dashboard for browsing everyone else's, so the same screen isn't asked to do both jobs.
  • Added a lightweight OpenAI-powered 'Recommended for You' feature that suggests books from a user's listed genres, deliberately without deep behavioural modelling, since a POC doesn't need a recommender system to prove the exchange mechanism works.
  • Chose SQLite for local development specifically so anyone cloning the repo can run it with zero database setup, with a documented path to MySQL/PostgreSQL for production.

Scoping a proof of concept honestly instead of padding it

It would have been easy to bolt on a fake benchmark or an invented adoption number to make this look more finished than it is. It doesn't have one, because a marketplace mechanism doesn't produce a metric until real users are exchanging real books. What it does have is a complete, working loop across eight features and a documented three-milestone roadmap (notifications and richer search, then location matching and ISBN autofill, then production hardening) for what a next version would need.

Stack

  • Laravel
  • Blade
  • Alpine.js
  • Tailwind
  • SQLite
  • OpenAI API