๐ฌ WATCH THE DEMO VIDEO ๐ฌ
Rod Royale is the ultimate social fishing application that connects anglers worldwide. Share your greatest catches, discover fishing hotspots on interactive maps, compete on leaderboards, and build a community with fellow fishing enthusiasts.
This repository contains both the FastAPI backend and React Native mobile app in a unified codebase.
โ Stage-Ready: Both API and mobile app are stable and ready for staging.
โโโ RodRoyale/
โโโ backend/ # FastAPI Backend
โ โโโ docs/
โ โโโ models/ # Pydantic schemas
โ โโโ routers/ # API endpoints
โ โโโ services/ # Business logic
โ โโโ tests/ # Backend tests
โ โโโ main.py # FastAPI app entry
โ โโโ requirements.txt
โโโ client/ # React Native App
โ โโโ android/ # Android build files
โ โโโ ios/ # iOS build files
โ โโโ src/
โ โ โโโ components/ # Reusable UI components
โ โ โโโ screens/ # App screens
โ โ โโโ navigation/ # Navigation setup
โ โ โโโ services/ # API integration
โ โ โโโ types/ # TypeScript definitions
โ โโโ App.tsx # React Native entry
โ โโโ package.json
โโโ README.md
- Catch Sharing - Upload catches with photos, species, weight, and location data
- Interactive Maps - Pin catches to discover fishing hotspots
- Privacy Controls - Share catches publicly, with mutuals, or keep private
- User Profiles - Customizable angler profiles
- Follow System - Connect with other anglers and see their catches
- Leaderboards - Monthly and global rankings by catch size, frequency, and average weight
- Cloud Storage - Cloudinary integration for optimized image uploads
- Real-time Data - Async MongoDB operations for fast performance
- Cross-platform - Native iOS and Android apps from single codebase
- Secure Authentication - JWT-based user authentication and authorization
- Node.js (v20 or higher)
- Python (3.11 or higher)
- MongoDB (local or cloud instance)
- React Native CLI
- Android Studio (for Android development)
- Xcode (for iOS development, macOS only)
-
Navigate to backend directory:
cd backend
-
Run interactive quick setup:
./scripts/quick-start.sh
The API will be available at http://localhost:8000
with documentation at http://localhost:8000/docs
-
Navigate to client directory:
cd client
-
Run quick setup:
./scripts/quick-start.sh
OR
Run with device/emulator in mind:
npm install # Android npm run android # iOS npm run ios # web npm run web
- ๐ FastAPI - High-performance async API framework
- ๐ Motor - Async MongoDB driver
- ๐ Pydantic - Type-safe data validation
- โ๏ธ Cloudinary - Image upload and optimization
- ๐ JWT - Secure authentication
- ๐งช Pytest - Comprehensive testing
- Docker - Containerized environment for dev/deployment
- โ๏ธ React Native - Cross-platform mobile development
- ๐ท TypeScript - Type-safe JavaScript
- ๐งญ React Navigation - Navigation and routing
- ๐บ๏ธ React Native Maps - Interactive map functionality
- ๐ฆ AsyncStorage - Local data persistence
- ๐ Axios - HTTP client for API communication
docker exec -it CONTAINER_NAME pytest
# TODO
- ๐ Advanced Analytics - Detailed fishing statistics and insights
- ๐ผ๏ธ AI Fish Recognition - Automatic species identification from photos
- ๐ Weather Integration - Real-time fishing conditions and forecasts
- ๐ฎ Gamification - Achievements, badges, and fishing challenges
- ๐ Social Sharing - Share catches to Instagram, Facebook, Twitter
- ๐ก Offline Mode - Cache catches when network is unavailable
- ๐ฏ Smart Recommendations - AI-powered fishing spot suggestions
- ๐ง GraphQL API - More efficient data fetching
- ๐ฑ Push Notifications - Real-time updates and engagement
- ๐ Internationalization - Multi-language support
- ๐ Enhanced Security - OAuth integration, 2FA
- ๐ Performance Monitoring - Analytics and crash reporting
Welcoming contribution; see CONTRIBUTING.md
This project is licensed under the MIT License - see the LICENSE file for details.
- Core API functionality with full CRUD operations
- User authentication and social features
- Catch management with image uploads
- Interactive map with location pinning
- Global and monthly leaderboards
- Cross-platform mobile app (iOS and web)
- Docker containerization
- Boilerplate CI/CD pipeline setup
- Advanced analytics dashboard
- AI-powered fish species recognition
- Enhanced mobile app performance optimization
- Weather API integration
- Push notification system
- Offline mode capabilities
- Social media integrations
- Advanced privacy controls
Rod Royale - Where anglers connect, compete, and share their greatest catches. ๐ฃ