Skip to content

A social fishing platform that supports user accounts, catch sharing with image uploads, leaderboards, and interactive maps. Backend built with async MongoDB, Cloudinary, and secure JWT auth.

Notifications You must be signed in to change notification settings

BeckettFrey/RodRoyale

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

42 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฌ WATCH THE DEMO VIDEO ๐ŸŽฌ

๐ŸŽฃ Rod Royale

CI

codecov

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.


๐Ÿ“‚ Project Structure

โ””โ”€โ”€ 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

โœจ Features

๐ŸŽฃ Core Fishing Features

  • 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

๐Ÿ‘ฅ Social Features

  • 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

๐Ÿ”ง Technical Features

  • 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

๐Ÿš€ Quick Start

Prerequisites

  • 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)

Backend Setup

  1. Navigate to backend directory:

    cd backend
  2. Run interactive quick setup:

    ./scripts/quick-start.sh

The API will be available at http://localhost:8000 with documentation at http://localhost:8000/docs

Frontend Setup

  1. Navigate to client directory:

    cd client
  2. 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

๐Ÿ—๏ธ Architecture

Backend Stack

  • ๐Ÿš€ 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

Frontend Stack

  • โš›๏ธ 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

๐Ÿงช Testing

Backend Tests

docker exec -it CONTAINER_NAME pytest

Frontend Tests

# TODO

๐Ÿ—บ๏ธ Roadmap

Upcoming Features

  • ๐Ÿ“Š 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

Technical Improvements

  • ๐Ÿ”ง 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

๐Ÿค Contributing

Welcoming contribution; see CONTRIBUTING.md


๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐ŸŽฏ Current Status

โœ… Completed

  • 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

๐Ÿšง In Progress

  • Advanced analytics dashboard
  • AI-powered fish species recognition
  • Enhanced mobile app performance optimization
  • Weather API integration

๐Ÿ“‹ Planned

  • Push notification system
  • Offline mode capabilities
  • Social media integrations
  • Advanced privacy controls

Rod Royale - Where anglers connect, compete, and share their greatest catches. ๐ŸŽฃ

About

A social fishing platform that supports user accounts, catch sharing with image uploads, leaderboards, and interactive maps. Backend built with async MongoDB, Cloudinary, and secure JWT auth.

Topics

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published