A comprehensive bird tracking and sighting management system for ornithologists and bird watchers. Vogelring enables researchers to track ringed birds, manage sightings, analyze migration patterns, and maintain detailed records of bird populations.
- Bird Sighting Management: Record, edit, and track bird sightings with detailed metadata
- Ring Database: Comprehensive database of ringed birds with identification and tracking
- Interactive Maps: Visualize sightings on interactive maps with location accuracy indicators
- Advanced Search: Powerful search functionality with partial ring reading support (wildcards)
- Family Trees: Track breeding relationships and family lineages between birds
- Friend Analysis: Discover which birds are frequently seen together
- Seasonal Patterns: Analyze seasonal migration and behavior patterns
- Dashboard: Real-time statistics and insights about bird populations
- Data Quality: Built-in data validation and quality assessment tools
- Radius Analysis: Find all sightings within a specified geographic radius
- Import/Export: Support for various data formats and migration tools
- Ringing Records: Manage detailed ringing information and metadata
- Reporting: Generate shareable reports with customizable time ranges
./dev.shThis single command:
- Creates
.envfrom template (if missing) - Installs frontend dependencies and builds
- Starts PostgreSQL, API, and Nginx via Docker
Access: http://localhost (API at port 8000)
Useful commands:
docker-compose logs -f # View logs
docker-compose down # Stop services
docker-compose down -v # Stop and remove dataFor active frontend work:
# Terminal 1: Backend only
docker-compose up postgres api
# Terminal 2: Frontend dev server
cd frontend && npm run devFrontend dev server runs at http://localhost:5173 with hot reload.
- Frontend: Vue.js 3 with TypeScript and Vuetify for Material Design components
- Backend: FastAPI application with PostgreSQL database
- Infrastructure: Docker Compose orchestration
- Maps: Leaflet for interactive mapping
- Charts: ECharts for data visualization
The FastAPI backend is located in the backend/ directory:
backend/
βββ src/
β βββ main.py # FastAPI application entry point
β βββ database/
β β βββ connection.py # Database connection and session management
β β βββ models.py # SQLAlchemy ORM models
β βββ api/
β βββ routers/ # API route handlers
βββ Dockerfile
βββ pyproject.toml
The application uses PostgreSQL with three main tables:
ringings: Bird ringing datasightings: Bird sighting observationsfamily_tree_entries: Family relationship data
- postgres: PostgreSQL 15 database with persistent volumes
- api: FastAPI backend application
- nginx: Reverse proxy and static file server
- Sightings: Individual bird observations with location, date, and metadata
- Birds: Unique ringed birds with identification and tracking information
- Ringing: Detailed ringing records including location, date, and ringer information
- Family Trees: Breeding relationships and lineage tracking
- Flexible Data Entry: Support for partial readings and uncertain identifications
- Geographic Precision: Exact and approximate location tracking
- Temporal Analysis: Date-based filtering and seasonal pattern analysis
- Relationship Mapping: Partner and offspring relationship tracking
The API provides comprehensive endpoints for:
- Sightings: CRUD operations, filtering, and search
- Birds: Metadata retrieval and suggestions
- Analytics: Friend analysis, seasonal patterns, radius searches
- Ringing: Ringing record management
- Family: Family tree and relationship management
For production deployment:
-
System requirements:
- Docker and Docker Compose installed
- Sufficient storage for database and logs
-
Configuration:
- Update
.envwith production values - Set up backup procedures for PostgreSQL data
- Update
-
Monitoring:
- All services include health checks
- Logs available via
docker-compose logs
For questions or to become a user, please contact: anton@antonroesler.com