ikramdeveloper

Ikramdeveloper

All Projects

NestJS, GraphQL, RabbitMQ, Stripe, Meteoblue, NOAA

Logfish — Fishing Community & Catch Marketplace

A fishing community platform where anglers log catches with environmental context, connect through clubs and a social feed, and buy or sell catch intelligence to discover where and when fish are biting.

Logfish
The Problem

What needed to be solved

Anglers had no structured way to record and revisit their fishing history, and discovering productive spots required guessing or expensive local knowledge. Professional guides and serious anglers had no way to monetize their expertise. Fishing clubs had no dedicated space to share catches and compete, and there was no platform connecting weather and tide conditions with actual catch outcomes.

Engineering Thinking

Key Decisions & Challenges

1

Microservices Architecture

Situation

The system handles distinct domains — catch logging, marketplace, payments, weather data, clubs, notifications — each with different scaling needs and failure characteristics.

Options Considered

  • Monolith — simpler to start, but a bug or overload in one area could take down the entire platform
  • Microservices over RabbitMQ — each domain independently deployable and fault-isolated

Decision

Microservices communicating over RabbitMQ. Each domain can be scaled and deployed independently, and a failure in one service does not bring down the rest of the platform.

2

Multi-API Weather Strategy

Situation

No single weather API covered all the data the platform needed — current conditions, historical data, depth, and tides each had different coverage and cost profiles across available providers.

Options Considered

  • Single API — simpler integration, but no provider covers all required data completely
  • Multiple complementary APIs — each used for what it does best

Decision

Meteoblue is used as the primary source for weather and astronomy data, but only covers up to 7–8 days back. For older catch records, Stormglass fills the gap and also provides depth data. Tides are handled by NOAA — it is free and purpose-built for tide data, saving cost without sacrificing accuracy. Stormglass was not used as the sole source because some weather fields are missing or incomplete in its responses.

What Was Built

Features

Catch Logging

Anglers record each session with species, size, weight, GPS location, photos, video, boat, and water conditions. The platform automatically correlates this with live tide, moon phase, and buoy data.

Catch Marketplace

Logged catches can be put behind a paywall and sold to other users. Buyers pay to unlock exact coordinates, conditions, and notes. Sellers earn a percentage; the platform takes a fee.

Leaderboards & Fishing Log

Personal catch history with charts and filters. Global and club-level leaderboards rank anglers by catch count, species variety, or trophy fish.

Fishing Clubs

Users create public or private clubs, invite members, set catch-sharing rules, and manage a shared club feed. Ownership can be transferred.

Social Feed

Surfaces nearby catches, top anglers, and trending species. Users follow other anglers, like and comment on catches, and discover productive spots from community data.

Alert Areas

Users define geographic hotspot zones and get notified when another angler logs a catch within that area.

Subscriptions & Payouts

Professional subscriptions unlock advanced features. Sellers receive payouts via Stripe or PayPal with full earnings history. Mobile subscriptions validated through Apple App Store and Google Play.

Screenshots

In Action

Catch feed

Catch feed

Angler feed

Angler feed

Responsibility

My Role

I was the sole backend developer — responsible for the backend architecture, database, and deployment using NestJS Mau.

Stack

Tech Stack

NestJS TypeScript GraphQL MongoDB RabbitMQ AWS S3 Firebase Stripe PayPal Meteoblue Stormglass NOAA NestJS Mau
Result

Outcome

Live on the App Store.

Demo

Live Project

log-fish-fishing-log-app