tuca

Birding communities are built on sharing observations, identifying species, and connecting with fellow enthusiasts. After building AI models for WikiAves, which is focused on Brazilian birds, I wanted to create a world-wide platform where birders could document their sightings, identify the species, and engage with a community of nature lovers.

Tuca is a Progressive Web App for the birding community, featuring photo sharing, AI species identification, location-based discoveries, and social interactions - all built with Angular, Firebase and Tensorflow.

Live Demo

Tuca homepage screenshot

continuing the birding journey

During the pandemic, my interest was caught by birding while working on Harpia, an AI classification system for WikiAves. After spending months training deep learning models to identify bird species from photos and audio, I became more involved with the birding community, especially while talking to experts and enthusiasts while working on data cleaning.

The experience sparked a desire to build something more user-centric - a platform where birders could get species suggestions, share their discoveries, connect with other enthusiasts, and see what birds were being spotted in different locations.

the vision

Tuca aimed to be a complete birding companion:

  • Photo sharing - Upload and showcase bird observations with descriptions
  • Species catalog - Browse detailed information about different bird species
  • User profiles - Follow other birders and see their recent sightings
  • Location-based discovery - See what species have been spotted in specific places
  • Social engagement - Like and interact with other users' observations
  • Search functionality - Find specific species or users quickly
  • Progressive Web App - Works offline and can be installed on mobile devices

The goal was to make documenting birds as smooth as possible while building community connections.

technical stack

Built with modern web technologies focused on real-time data and mobile experience:

  • Angular - Application framework with routing and reactive forms
  • Firebase - Backend services including:
    • Firestore - Real-time NoSQL database
    • Firebase Authentication - User management
    • Firebase Storage - Image hosting
  • Kor UI - Component library for consistent, modern design
  • Service Worker - Offline capabilities and installable PWA

The architecture follows Angular's service-based pattern, with dedicated services for media, taxonomic data, users, and places.

main features

media management

Users can upload photos with metadata including:

  • Species identification (taxon)
  • Location information
  • Date and description
  • Image optimization with thumbnails

The media service handles CRUD operations, image compression, and real-time updates. Each photo becomes part of both the user's profile and the species' observation gallery.

To help users identify species, I trained a deep learning model to classify birds from around the world - expanding beyond the Brazilian birds from Harpia to cover global bird species. This AI integration provides intelligent suggestions when users upload photos, making species identification faster and more accurate.

species taxonomy

The taxon service manages a database of bird species with:

  • Scientific and common names
  • Family classification
  • Descriptions and characteristics
  • Representative thumbnails
  • Featured species on the homepage

This structured taxonomic approach makes it easy to browse species and see all related observations.

social interactions

Recent commits show the evolution of social features:

  • Like system for photos (with real-time like counts)
  • User profiles with customizable images
  • Following relationships
  • Featured users and media on the homepage
  • Empty states for better UX when content is missing

The like button component integrates Firebase authentication to prevent duplicate likes and updates counters instantly.

location integration

Places connect observations to geographic locations, allowing users to:

  • See what species have been spotted in an area
  • Discover popular birding locations
  • Track their own observation hotspots
  • Plan trips based on species distribution

development insights

Looking at the git history reveals the iterative development process:

User experience refinements:

  • Added custom page titles for better navigation
  • Implemented empty states for better first-time user experience
  • SEO improvements with proper meta tags
  • Profile editing functionality with image upload

Technical improvements:

  • Image upload and deletion workflows
  • User profile update flows
  • LastUpdated timestamps for cache invalidation
  • Date fields in prediction documents
  • Media update functions for content moderation

Polish and fixes:

  • Dark theme support for like buttons
  • Circle card image sizing consistency
  • Species search input improvements
  • Console log cleanup for production

Each commit shows attention to both functionality and UX, building toward a complete platform.

progressive web app

By implementing Angular's service worker, Tuca functions as a PWA:

  • Installable - Users can add it to their home screen
  • Offline-capable - Cached content remains accessible without connectivity
  • Mobile-first - Responsive design optimized for phones in the field

This makes Tuca practical for actual birding trips, where internet connectivity might be spotty.

reflection

Tuca represents the natural evolution from building AI models to building complete user experiences. While Harpia focused on the technical challenge of species classification, Tuca addressed the human side - how birders actually want to share, discover, and connect.

The project reinforced several lessons:

  • Community features increase engagement - Social interactions matter as much as main functionality
  • Mobile experience matters - Most birding happens in the field with phones
  • Real-time updates create magic - Firebase's live data makes the app feel responsive and alive
  • Iteration matters - The git history shows continuous refinement based on use

related projects

  • Harpia - AI bird classification system for WikiAves