A production-ready MVP for connecting entrepreneurs with their ideal co-founders. Built with React Native and Node.js, featuring real-time chat, smart matching, and comprehensive profile management.
- Smart Matching Algorithm: Swipe-based discovery with mutual matching
- Real-time Chat: WhatsApp-style messaging with Socket.IO
- Profile Management: Comprehensive profiles with skills, industries, and goals
- Verification System: Document upload and verification process
- Location-based Discovery: Find co-founders in your area
- JWT-based authentication
- Email/Phone login with OTP verification
- Password strength validation
- Secure file uploads
- Input sanitization and rate limiting
- Clean, minimal UI with light mode only
- Swipe gestures for profile discovery
- Online/offline status indicators
- Message read receipts and typing indicators
- Responsive design for all screen sizes
- Framework: Expo with React Navigation
- State Management: Context API
- API Client: Axios
- Real-time: Socket.IO Client
- Storage: Expo SecureStore
- File Handling: Expo Image Picker & Document Picker
- Framework: Express.js
- Database: MongoDB with Mongoose
- Authentication: JWT with bcryptjs
- Real-time: Socket.IO
- File Uploads: Multer with local storage
- Email: Nodemailer
- Validation: Express Validator
- User, Profile, Skill, Industry
- Like, Match, Message, Block
- Document, OTP, Feedback
- Proper indexing for performance
- Node.js 16+
- MongoDB 4.4+
- Expo CLI
- Git
- Clone and navigate to backend
cd backend- Install dependencies
npm install- Set up environment variables
cp .env.example .envEdit .env with your configuration:
PORT=5000
MONGODB_URI=mongodb://localhost:27017/found
JWT_SECRET=your_jwt_secret_key_here
FRONTEND_URL=http://localhost:19006
# Email configuration
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER=your_email@gmail.com
EMAIL_PASS=your_app_password
EMAIL_FROM=noreply@found.com
# Google OAuth (optional)
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
# File upload settings
MAX_FILE_SIZE=10485760
UPLOAD_PATH=./uploads- Create uploads directory
mkdir -p uploads/documents- Start the backend
npm run dev- Navigate to frontend
cd frontend- Install dependencies
npm install- Start the frontend
npm start- Run on device/simulator
# For iOS
npm run ios
# For Android
npm run android
# For web (development only)
npm run web- Seed the database with sample data
cd backend
node scripts/seed.jsThis creates 5 sample users with profiles:
- john.doe@example.com / Password123!
- jane.smith@example.com / Password123!
- mike.wilson@example.com / Password123!
- sarah.jones@example.com / Password123!
- alex.brown@example.com / Password123!
- App splash screen with branding
- Email/Phone login with password validation
- OTP verification via email
- Google OAuth integration (LinkedIn stub)
- 4-slide carousel explaining the app
- Goal selection (startup owner, idea stage, looking to join)
- Multi-step profile creation with validation
- Swipe-based card interface
- Distance-based filtering
- Mutual matching creates connections
- "Connection Established" modal on match
- List of matched profiles with online status
- Real-time messaging with Socket.IO
- Message status indicators (sent/delivered/read)
- Chat actions (remove connection, block user)
- Document management and verification
- Discover preferences and filters
- Help & support with WhatsApp integration
- Feedback system with email notifications
- App Background: #F7F7F7
- Card Background: #EFE9E1
- Primary Text: #4A4A4A
- Secondary Text: #7A7A7A
- CTA Button: #1155ccff
- CTA Text: #ffffff
- Online Green: #00b000
- Offline Grey: #b7b7b7
- Clean, minimal card-based design
- Swipe gestures with visual feedback
- Consistent typography and spacing
- Proper accessibility considerations
POST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/verify-otp- OTP verificationPOST /api/auth/resend-otp- Resend OTPGET /api/auth/me- Get current user
POST /api/profile- Create/update profileGET /api/profile/me- Get current user profileGET /api/profile/:userId- Get user profilePUT /api/profile/photo- Update profile photo
GET /api/discovery/next- Get next profilePOST /api/discovery/action- Like/pass profileGET /api/discovery/stats- Discovery statistics
GET /api/match- Get user matchesGET /api/match/:matchId- Get match detailsDELETE /api/match/:matchId- Remove connectionPOST /api/match/:matchId/block- Block user
GET /api/chat/:matchId- Get chat messagesPOST /api/chat/:matchId- Send messagePUT /api/chat/:matchId/read- Mark messages as readDELETE /api/chat/:matchId/:messageId- Delete message
POST /api/documents/upload- Upload documentGET /api/documents- Get user documentsDELETE /api/documents/:documentId- Delete document
POST /api/settings/feedback- Submit feedbackGET /api/settings/verification- Get verification statusGET /api/settings/discover- Get discover settingsPUT /api/settings/discover- Update discover settings
- Authentication: JWT tokens with secure storage
- Password Security: Bcrypt hashing with salt rounds
- Input Validation: Express-validator for all inputs
- Rate Limiting: Express-rate-limit for API protection
- File Security: Multer with file type and size validation
- Content Sanitization: XSS prevention
- CORS: Proper cross-origin resource sharing
- Set production environment variables
- Configure MongoDB connection
- Set up file storage (S3 for production)
- Configure email service
- Deploy to your preferred platform (Heroku, AWS, etc.)
- Build the Expo app:
expo build:androidorexpo build:ios - Submit to app stores or use OTA updates
- Configure production API endpoints
- User: Authentication and basic user info
- Profile: Comprehensive user profile with location, skills, etc.
- Match: Mutual connections between users
- Message: Chat messages with status tracking
- Document: File uploads with metadata
- OTP: One-time passwords for verification
- Geospatial index for location queries
- Compound indexes for efficient filtering
- User ID indexes for fast lookups
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License.
For support and questions:
- Email: support@found.com
- WhatsApp: +91 98765 43210
- Check the Help & Support section in the app
- Video calling integration
- Advanced matching algorithms
- Team collaboration features
- Investment matching
- Event management
- Advanced analytics dashboard
Built with β€οΈ for entrepreneurs worldwide