Back to projects

Personal project

CoTas

A full-stack pet adoption and lost-and-found board. People can browse, submit photos, and message one another, while moderators review listings before they go public.

The problem

Adoption and lost-and-found posts need different information. People browsing them need a way to filter the board, and moderators need to review new listings before they appear publicly.

How I built it

I built the REST API in C# and integrated it with the React frontend. I worked on listing creation and updates, photo uploads, and the moderation states behind the public board.

How it works

The API stores a listing separately from its photos and conversation history. A submitted listing stays pending until it is reviewed, and a lost-pet post can move to the archive once the animal is reunited. That state model keeps the public feed, the owner’s view, and moderator actions consistent.

What it does

  • Listing filters by post type and pet category
  • Photo uploads and moderation before publication
  • Private messages and archival after a reunion
The CoTas demo listings board, with fictional pet profiles and filters for adoption, lost and found pets.
The CoTas demo opens with fictional listings and sample illustrations.
The CoTas moderation queue showing the pending and approved states of fictional listings.
Moderation in the isolated demo environment.

Result and lessons

The isolated demo ran on SQLite with fictional data. I verified a complete listing flow through submission, moderation, messaging, and archival. Testing the states separately clarified which actions belong to visitors, owners, and moderators.