sxsphinxstack

Projects / A buy-and-sell board for your school

A buy-and-sell board for your school

Level 3: a month or more, real users. Use with: backend-basics, database-basics, auth-basics, build-web-app. Resume line when done: Built {project_name}, a listings board with accounts, in-app messaging, and moderation, used by {n} students at my school — {url}

Brief

A listings board for students at your school: textbooks, calculators, uniforms, concert tickets someone can't use. Post a listing with photos and a price, message the seller inside the app, mark it sold. No payments in the system at any point; buyers and sellers meet at school and settle in person, and the site says so plainly. Honest architecture: a backend on Render or Fly.io's free tier, free Postgres on Neon, image uploads to Cloudinary's free tier (25 GB bandwidth a month, fine at school scale), and accounts restricted to your school's email domain. The real users are students who post and buy real things.

Personalize

Milestones

  1. Week 1: talk to the administrator and your adult backstop. Agree the ground rules: allowed categories, banned items, what gets a listing removed, and who removes it.
  2. Week 1: repo, README data model (user, listing, photo, message thread, report), plus a short visible rules page: no payments on the site, meet at school, banned items listed.
  3. Week 1: walking skeleton deployed. Listings render from the database at a live URL. Secrets in host environment variables from the first commit.
  4. Week 2: accounts limited to your school email domain, verified by a confirmation link. Hashed passwords, sessions.
  5. Week 2: create a listing with photos and a price; edit and delete your own listings only, enforced on the server.
  6. Week 2: browse, search, and filter by category; mark sold.
  7. Week 3: in-app messaging, thread per listing per buyer. Only the two parties can read a thread; verify from a third account.
  8. Week 3: moderation. A report button, an admin view for you, removal that leaves a tombstone, and a block for repeat abuse.
  9. Week 3: pilot with 5 friends posting real listings and one full sale arranged through messages. Fix what confuses them.
  10. Week 4: launch to the school: posters with a QR code, the class group chats, whatever reaches people.
  11. Week 4: first real sales between people you did not recruit. Watch the report queue daily and act on it.
  12. Week 4: back up the database, then write the postmortem: moderation surprises, what people actually sold, what you would change about the data model.

Done means