BorrowHood v2.0.0 - Full Platform Release
Every Garage Becomes a Rental Shop
Built for the DEV Weekend Challenge -- a community platform where neighbors rent, sell, teach, and share. Zero commission. Open source.
What's New in v2.0.0
Core Platform
- 13 SQLAlchemy models with UUID PKs, soft deletes, audit timestamps
- 33 REST API endpoints across 11 routers
- 111 automated tests (all green)
- Full EN/IT bilingual support (200+ i18n keys)
- Keycloak OIDC auth with 6 roles and 11 test users
Marketplace Features
- 7 listing types: rent, sell, commission, offer, service, training, auction
- Timed auction system with bidding, auto-outbid notifications, reserve prices
- Rental lifecycle: request -> approve -> pickup -> return -> review
- Star ratings and written reviews
Trust & Safety
- 3-step dispute resolution (file -> respond -> resolve)
- 8 dispute reasons, 7 resolution types
- Deposit hold/release/forfeit system
- Terms of Service + Community Code of Conduct (12 sections)
Payments
- PayPal REST API v2 integration (sandbox + live)
- Create order -> buyer approval -> capture -> refund flow
- Manual and Stripe provider support (extensible)
Notifications
- 15 notification event types
- In-app notification bell with real-time polling
- Telegram bot forwarding (optional)
User Experience
- 3-step onboarding wizard (profile, workshop, first item)
- Responsive Tailwind CSS + Alpine.js UI
- Mobile-first with 44px touch targets
- Dark/light OG images for social sharing
Live Demo
URL: https://46.62.138.218:8443/
Test Users (all password: helix_pass):
sally- Pastry chef with 200 cookie cuttersmike- Mechanic with 500 toolsangel- Platform adminluna- Community moderator
Tech Stack
- Backend: FastAPI + SQLAlchemy (async) + PostgreSQL
- Auth: Keycloak OIDC (JWT RS256, 6 realm roles)
- Frontend: Jinja2 + Tailwind CSS CDN + Alpine.js
- Payments: PayPal REST API v2
- Infra: Docker + Caddy reverse proxy
- CI: GitHub Actions with PostgreSQL service container
Data Model
BHUser -> BHItem -> BHListing -> BHRental -> BHReview
-> BHMedia -> BHBid -> BHDeposit
-> BHPayment
-> BHDispute
BHNotification (cross-cutting)
Running Locally
cp .env.example .env
docker compose up -d
python -m pytest tests/ -vFull instructions in README.md.