Lost and Found
A web app for posting lost and found items on campus. The notable engineering decision: images are base64-encoded and stored directly as JSON string values in Firebase Realtime Database — no separate storage bucket, no Cloudinary, nothing extra. **How the image storage works:** `FileReader.readAsDataURL()` converts the uploaded file to a `data:image/jpeg;base64,...` string on the client. That string is sent to the Node.js backend as a JSON field. The backend writes it to Firebase via the Admin SDK. On retrieval it drops straight into an `<img src="">`. All Firebase credentials stay server-side. The frontend only talks to the Express REST API — no Firebase config in the browser. **What happened after shipping:** The public feed — a reverse-chronological list of posts from everyone on campus — became an accidental social feed. Students posted canteen reviews, campus rants, announcements, memes. The lost-and-found framing was just a low-friction entry point. That observation informed what KEC Archives became.
TECH STACK