A React Native mobile app that lets college students maintain a digital closet, connect with friends, and borrow/lend clothing items.
- Digital Closet: Upload and manage your clothing items with photos and details
- Friend Network: Connect with friends and view their closets
- Borrow Requests: Request to borrow items from friends with date ranges
- Market place: Shop sustainable brand partners
- Private Feed: Share outfit posts visible only to friends
- Phone Authentication: Secure signup/login with phone number OTP
- React Native with Expo
- TypeScript
- Firebase (Auth, Firestore, Storage)
- React Navigation
- Expo Image Picker & Camera
- Node.js (v16 or higher)
- npm or yarn
- Expo CLI (
npm install -g expo-cli) - Firebase project
- Clone the repository:
git clone <repository-url>
cd StyleSwap- Install dependencies:
npm install-
Set up Firebase:
- Create a Firebase project at Firebase Console
- Enable Phone Authentication
- Create Firestore database
- Create Storage bucket
- Copy your Firebase config
-
Create
.envfile:
cp .env.example .env- Add your Firebase configuration to
.env:
EXPO_PUBLIC_FIREBASE_API_KEY=your-api-key
EXPO_PUBLIC_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com
EXPO_PUBLIC_FIREBASE_PROJECT_ID=your-project-id
EXPO_PUBLIC_FIREBASE_STORAGE_BUCKET=your-project.appspot.com
EXPO_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=123456789
EXPO_PUBLIC_FIREBASE_APP_ID=your-app-id
-
Update Firebase config in
src/services/firebase.tsif needed -
Start the development server:
npm start- Run on device/emulator:
- Press
ifor iOS simulator - Press
afor Android emulator - Scan QR code with Expo Go app on your phone
- Press
src/
├── screens/ # Screen components
│ ├── auth/ # Authentication screens
│ ├── closet/ # Closet management screens
│ ├── feed/ # Outfit feed screens
│ ├── requests/ # Borrow request screens
│ └── profile/ # Profile and settings screens
├── components/ # Reusable components
├── navigation/ # Navigation configuration
├── context/ # React Context providers
├── services/ # Firebase and API services
├── types/ # TypeScript type definitions
└── utils/ # Utility functions
users- User profilescloset_items- Clothing itemsfriendships- Friend relationshipsborrow_requests- Borrow requestsposts- Outfit posts
npm startexpo build:android
expo build:ios- Phone authentication requires Firebase Phone Auth setup
- Image uploads require Firebase Storage configuration
- Contacts access requires user permission
- Camera access requires user permission
MIT




