A beautiful React Native app built with Expo for sharing homemade food within communities.
- 🍽️ Browse and discover homemade food from local cooks
- 👨🍳 Post your own food items for sale
- 💬 Chat with buyers and sellers
- 🔐 Secure authentication with Firebase
- 📱 Cross-platform (iOS, Android, Web)
- Node.js (v18 or later)
- npm or yarn
- Expo CLI (
npm install -g @expo/cli)
- Clone the repository:
git clone <repository-url>
cd flamingo-food- Install dependencies:
npm install- Set up environment variables:
cp .env.example .env-
Configure Firebase:
- Create a new Firebase project at Firebase Console
- Enable Authentication (Email/Password)
- Create a Firestore database
- Enable Storage
- Copy your Firebase configuration values to the
.envfile
-
Start the development server:
npm run devThe following environment variables are required:
EXPO_PUBLIC_FIREBASE_API_KEY- Your Firebase API keyEXPO_PUBLIC_FIREBASE_AUTH_DOMAIN- Your Firebase auth domainEXPO_PUBLIC_FIREBASE_PROJECT_ID- Your Firebase project IDEXPO_PUBLIC_FIREBASE_STORAGE_BUCKET- Your Firebase storage bucketEXPO_PUBLIC_FIREBASE_MESSAGING_SENDER_ID- Your Firebase messaging sender IDEXPO_PUBLIC_FIREBASE_APP_ID- Your Firebase app IDEXPO_PUBLIC_FIREBASE_MEASUREMENT_ID- Your Firebase measurement ID (optional)
app/
├── (tabs)/ # Tab navigation screens
├── auth/ # Authentication screens
├── product/ # Product detail screens
├── _layout.tsx # Root layout
└── ...
components/ # Reusable components
config/ # Configuration files
contexts/ # React contexts
data/ # Mock data and constants
hooks/ # Custom hooks
services/ # API services
types/ # TypeScript type definitions
- React Native - Mobile app framework
- Expo - Development platform
- TypeScript - Type safety
- Firebase - Backend services (Auth, Firestore, Storage)
- Expo Router - File-based navigation
- Lucide React Native - Icons
- Firebase configuration is stored in environment variables
- Authentication is handled securely through Firebase Auth
- All sensitive data is protected with proper access controls
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
Copyright held be the team given access to the repo