Hope Link
Hope Link is a full-stack multi-portal platform built to connect NGOs, charities, and volunteers across Lebanon. Three isolated role contexts Admin, Charity, and Volunteer run under a single Express server with role middleware enforcing access at the route level. The signature engineering problem was making a personalized opportunity ranking that stays fast as both sides of the marketplace grow: scores are pre-computed by a BullMQ background worker and written to an indexed junction table, which turns every paginated feed request into a B-tree scan instead of a full table scan plus sort.
Next.js · TypeScript · Express · Prisma · PostgreSQL · Supabase · BullMQ · Redis · Socket.io
Match scores pre-computed by BullMQ + Upstash Redis workers move expensive ranking entirely off the request path
Family-based JWT refresh token rotation with theft detection reusing a revoked token invalidates every session in the family
Jest + Supertest suite using factory patterns to mock Prisma models, covering core API endpoints
Three isolated role contexts (Admin / Charity / Volunteer) share one Express server with middleware-enforced access
Socket.io chat rooms tied to the volunteer application lifecycle: created on approval, closed when the opportunity ends
Idempotent score writes via INSERT ... ON CONFLICT DO UPDATE, safe under BullMQ job retries