Built at the University of New Orleans 2025 Hackathon.
At Crafty, we believe sustainability should be fun, creative, and for everyone. Crafty is a mobile app that helps you turn everyday packaging — plastic bottles, cardboard boxes, and other items you already own — into exciting DIY projects instead of throwing them away.
Reuse more. Waste less. Get crafty!
Whether you're a parent, teacher, or adult looking for a fun and affordable activity, Crafty makes recycling easy and enjoyable.
Hudson Vu Jenah Mansour Farzeen Nafees
- Filter Search – Find craft ideas based on the materials you already have at home. Enter one or more materials (e.g. "plastic bottle", "cardboard") and Crafty searches community posts for projects that use them.
- Image-Based Scan – Snap or upload a photo of an item and Crafty uses on-device object detection (TensorFlow.js + COCO-SSD) to identify it as a candidate material for a project.
- Posting & Sharing – Upload DIY projects, including step-by-step instructions and photos.
- Community Engagement – Like, comment, and follow other users for inspiration.
- Expo / React Native with expo-router for file-based navigation
- TypeScript
- Firebase (Firestore) for posts, likes, comments, and materials data
- TensorFlow.js with the COCO-SSD model for in-app object detection
- Expo modules:
expo-camera,expo-image-picker,expo-image-manipulator,expo-file-system,expo-media-library
app/ Expo Router screens
(tabs)/ Bottom tab navigation (Profile, Community, Search)
components/
Community/ Post creation, listing, and post detail views
Scan/ Material search and image-based object detection
constants/ Shared constants (colors, etc.)
assets/ Fonts and images
Install dependencies:
npm installStart the app:
npx expo startFrom the Expo CLI output you can open the app in:
- An Android emulator
- An iOS simulator
- The Expo Go app on a physical device
- A web browser (
npm run web)
Crafty stores posts, materials, likes, and comments in Firestore. You'll need to provide your own Firebase project credentials (e.g. via a FirebaseConfig.ts file at the project root) with a db export for Firestore access.