A React Native mobile application for sharing and borrowing clothing items within groups, built with Expo and Firebase.
Collaborated with: Brennan Megregian and Kathryn Radziwonski
Mooch is a social clothing sharing platform that allows users to share their wardrobe items with friends and borrow items from others. The app is designed for groups (like sororities, friend circles, etc.) to create a sustainable and cost-effective way to access different clothing items for various occasions.
- User Authentication: Secure login and account creation with Firebase Auth
- Group Management: Create and join different clothing sharing groups
- Item Upload: Upload clothing items with detailed metadata (brand, size, cleaning preferences, categories)
- Browse & Filter: Explore available items with category-based filtering (tops, bottoms, dresses, accessories, sets, shoes)
- Item Requests: Request to borrow items with date range selection
- Direct Messaging: Built-in chat system for coordinating item exchanges
- Profile Management: User profiles with personal information and uploaded items
- Image Upload: Camera roll integration for item photos
- Real-time Data: Firebase Firestore for live updates
- Cloud Storage: Firebase Storage for image management
- Responsive UI: Material Design components with custom styling
- Navigation: Tab-based navigation with drawer menus for groups
- Frontend: React Native with Expo
- Backend: Firebase (Firestore, Auth, Storage)
- Navigation: React Navigation v6
- UI Components:
- React Native Elements
- Material-UI
- React Native Paper
- Image Handling: Expo Image Picker
- State Management: React Hooks
- Styling: StyleSheet with custom color scheme
- Node.js (v14 or higher)
- npm or yarn
- Expo CLI
- iOS Simulator (for iOS development) or Android Studio (for Android development)
-
Clone the repository
git clone <repository-url> cd mooch
-
Install dependencies
cd src/mooch npm install # or yarn install
-
Firebase Configuration
- The app is already configured with Firebase
- Firebase config is located in
src/mooch/firebase/firebaseConfig.js - Ensure your Firebase project has Firestore, Authentication, and Storage enabled
-
Start the development server
npm start # or yarn start -
Run on device/simulator
- For iOS:
npm run iosor pressiin the Expo CLI - For Android:
npm run androidor pressain the Expo CLI - For web:
npm run webor presswin the Expo CLI
- For iOS:
src/mooch/
├── App.js # Main app component with navigation
├── Screens/ # All screen components
│ ├── Landing.js # Welcome/login screen
│ ├── Login.js # User authentication
│ ├── CreateAccount.js # Account creation
│ ├── Home.js # Main tab navigation
│ ├── Explore.js # Group selection drawer
│ ├── aphi.js # Sample group (Alpha Phi)
│ ├── formals.js # Formals group
│ ├── Upload.js # Item upload functionality
│ ├── Profile.js # User profile
│ ├── DMs.js # Direct messages list
│ ├── DMing.js # Individual chat
│ └── ...
├── firebase/
│ └── firebaseConfig.js # Firebase configuration
├── assets/ # App icons and splash screens
├── icons/ # UI icons and images
├── clothes_images/ # Sample clothing images
└── package.json # Dependencies and scripts
- Stack Navigator: Handles authentication flow and main navigation
- Tab Navigator: Bottom tabs for DMs, Explore, and Profile
- Drawer Navigator: Group selection within Explore
- Users: Authentication and profile information
- Groups: Clothing sharing groups (e.g., "Aphi", "Formals")
- Posts: Individual clothing items with metadata
- Messages: Direct messaging between users
Each clothing item includes:
- Image
- Brand
- Size
- Category tags (tops, bottoms, dresses, etc.)
- Cleaning preferences
- Owner information
- Availability dates
- Sign Up/Login: Create an account or log in with existing credentials
- Join Groups: Access different clothing groups through the Explore tab
- Upload Items: Add your clothing items with photos and details
- Browse Items: Filter by category to find items you want to borrow
- Request Items: Select date ranges for borrowing items
- Coordinate: Use the messaging system to arrange pickups and returns
npm start: Start the Expo development servernpm run ios: Run on iOS simulatornpm run android: Run on Android emulatornpm run web: Run in web browser
- Uses functional components with React Hooks
- Custom styling with StyleSheet
- Consistent color scheme:
#e8def9(light purple),#f7f4fd(background),#5A5A5A(text)
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is private and proprietary.
For questions or issues, please contact the development team.
Note: This app is designed for group-based clothing sharing and includes features specific to social organizations like sororities. The current implementation includes sample data and may require additional configuration for production use.