Skip to content

jmevangelist/birds-in-your-area

Repository files navigation

birds-in-your-area

iNaturalist observation map for casual birders and critter enjoyers.

screenshot

Built With

  • Django
  • Bootstrap 5
  • OpenLayers
  • iNaturalist API
  • Celery

What's in here?

  • extended Openlayers control class that integrates geolocation and device orientation
  • API call throttling via Celery & Redis
  • UTFGrid for lazy loading Vector Source in OpenLayers

Prereq

  • podman
  • python3

Setup

  1. Clone the repo
git clone https://github.com/jmevangelist/birds-in-your-area.git
  1. Create virtual environment and activate
cd birds-in-your-area
python3 -m venv /birdsInMyArea
source birdsInMyArea/bin/activate
  1. Install python dependencies
pip install -r requirements.txt 
  1. Create SSL Certificate (optional)
certtool -p --key-type=rsa --bits=4096 --no-text --outfile=key.pem
certtool -s --load-privkey key.pem --no-text --outfile=cert.pem
  1. Run
#For "prod" mode via Gunicorn
./run

# options
# --dev		dev mode
# --django 	run Django development server
  1. (Optional-for throttling iNaturalist API calls) Run Celery & Redis
./runCelery

Todo

  • Celery integration to throttle number of requests on iNat API
  • Species album
  • Obs album
  • Species filter
  • Map Layers
  • Celery as a service
  • Species info page