Echo is a mobile marketplace specifically designed for sustainable second-hand shopping. The application uses a swipe-based interface similar to dating apps, making the discovery of second-hand items both engaging and intuitive. Each product includes a sustainability score and badges, educating users about their environmental impact.
- AI-Powered Assistant: Chat with "Echo," an AI stylist that helps users discover sustainable fashion matching their style preferences
- Tinder-Style Discovery: Swipe interface for browsing products (right for like, left for pass)
- Sustainability Metrics: Each product displays a sustainability score (0-100) and specific badges (Organic, Recycled, Fair Trade, etc.)
- In-App Messaging: Direct communication between buyers and sellers
- Personalized Recommendations: Machine learning algorithms match users with relevant products
This repository contains both frontend and backend code:
/echo- Frontend React Native mobile application/server- Backend Node.js/Express API server/data- Sample data and import scripts
- React Native with Expo
- TypeScript
- React Navigation
- Supabase Client
- Node.js
- Express
- TypeScript
- PostgreSQL (via Supabase)
- JWT Authentication
- Node.js (v14+)
- npm or yarn
- Expo CLI
- Supabase account
-
Navigate to the frontend directory:
cd echo
-
Install dependencies:
npm install
-
Create a
.envfile with your Supabase credentials:EXPO_PUBLIC_SUPABASE_URL=your_supabase_url EXPO_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key EXPO_PUBLIC_API_URL=http://localhost:5000
-
Navigate to the server directory:
cd server -
Install dependencies:
npm install
-
Create a
.envfile with required configuration:PORT=5000 NODE_ENV=development SUPABASE_URL=your_supabase_url SUPABASE_KEY=your_supabase_service_key JWT_SECRET=your_jwt_secret
-
Start the Expo development server:
cd echo npm start
-
Use the Expo Go app on your mobile device to scan the QR code, or press 'i' for iOS simulator or 'a' for Android emulator.
- Start the backend server:
cd server npm run dev
The server includes scripts for setting up the database schema and importing sample data:
-
Set up database schema:
cd server npm run setup-db -
Import sample product data:
cd server npm run import-data
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request