An eco-conscious mobile app that rewards users for taking real environmental action.
SeaScore (also called SaveEarth) motivates users to reduce plastic waste and protect the oceans. Users complete real-world sustainability challenges, upload proof, earn points, unlock rewards, and engage with a community of eco-active people.
Goal: Make sustainability fun, social, and rewarding. 🌱
Frontend: React Native (Expo)
Backend: Node.js + Express
Machine Learning: Xenova OWLv2 (Zero-Shot Detection)
Auth / Database: Firebase Authentication + Realtime Database
Deployment: Docker + Docker Compose
Uploads: multer
Model Runtime: @xenova/transformers
Design: Figma UI
- Node.js + npm
- Docker (optional but recommended)
git clone https://github.com/your-username/SaveEarth.git cd SaveEarth
- Install dependencies
Client:
npm install
Server:
cd src/server npm install cd ../..
-
Download the ML model node src/server/download-model.mjs
-
Run locally npm start
Make sure the model is downloaded first:
node src/server/download-model.mjs
docker-compose up -d
App will be available at: http://localhost:3000
Users sign up and log in using Firebase Auth.
Each challenge includes:
- A description
- A category (example: recycling, cleanup)
- A point value
Users upload a photo to complete challenges. The backend uses a zero-shot model to verify the action before awarding points.
- Model:
Xenova/owlv2-base-patch16 - Can detect objects based on text prompts
- Does not require retraining for each challenge
Users collect stamps for completed challenges and see their total impact.
Points can be exchanged for rewards.
Real-time feed showing completed challenges across the community.
Users can join teams and compete on scoreboards.
Educational content for reducing plastic waste and protecting the oceans.
- User uploads image
- Server receives image + challenge keywords
- ML model runs zero-shot detection
- The model returns a confidence score
- If above threshold → challenge is marked complete
- Express.js API
multerhandles file uploads@xenova/transformersloads ML model- Singleton pattern ensures performance
- Script:
src/server/download-model.mjscaches model locally
- Efficient ML inference on low-power devices
- Handling edge case submissions
- Balancing strictness vs usability in validation
- Optimizing performance and model load times
- Train a custom sustainability-focused model
- AI-based suggestions & challenge personalization
- Offline mode
- Public sharing of completed challenges
- Better reward marketplace
- Brand partnerships for eco-rewards
- Carbon impact tracker
- Team chat system
Figma UI: https://www.figma.com/design/8LZeuVJY5Hvdr1lU6qBlnK/EcoPassport-Mobile-App-UI