Product Overview

BirbWatch is a bird watching and nature observation application. It helps birders log sightings, identify species, track their life list, and share observations with the community. The app is designed mobile-first for use in the field.

User Roles

RoleDescriptionAccess Level
UserStandard birder — logs sightings, manages life listRead/write own data
AdminApplication administratorFull access

Feature Summary

#FeaturePriorityStatus
1AuthenticationP0Planned
2User ProfileP0Planned
3Sighting LogP0Planned
4Species IdentificationP1Planned
5Life List TrackingP1Planned
6Community SharingP2Planned

Epics

EP-001: Authentication

  • Email OTP login
  • Google OAuth login
  • Session management
  • Role-based access control

EP-002: User Profile

  • View/edit profile
  • Account settings
  • Birding preferences

EP-003: Sighting Log

  • Log sightings with species, location, date, notes
  • Photo attachment
  • GPS coordinates from device
  • Weather auto-capture

EP-004: Species Identification

  • Search species database
  • Photo-based suggestions (future ML)
  • Field marks and ID tips

EP-005: Life List Tracking

  • Automatic life list from sightings
  • Year lists, location lists, trip lists
  • Statistics and milestones

EP-006: Community Sharing

  • Share sightings publicly or with groups
  • Community feed
  • Rare bird alerts

Non-Functional Requirements

RequirementTarget
PerformancePage load < 2s, API response < 500ms
Availability99.9% uptime
SecurityOWASP Top 10 compliance
MobileResponsive, offline-capable for field logging
CostServerless on-demand pricing

Tech Stack

Frontend

  • Vite + React + TypeScript
  • shadcn/ui + Tailwind CSS
  • Zod schema validation

Backend

  • AWS Lambda (Node.js/TypeScript)
  • API Gateway + oRPC
  • DynamoDB + Aurora PostgreSQL

Infra

  • Pulumi IaC (TypeScript)
  • GitHub Actions CI/CD
  • BetterAuth + DynamoDB adapter