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


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.