BirdingEar is a web app for learning birdcalls. I developed the app with Django (Python web framework) as my capstone project in a web development bootcamp.
The app is analogous to a flashcard exercise. It asks users to identify a birdcall and then tracks which birds are learned or missed. By default the app queries missed birds 44% of the time, new birds 33% of the time, and learned birds 22% of the time. Users can change these frequencies in the settings.
Code samples:
My role on the project:
Conceived of the idea for a web app
Built the conceptual model of the data and classes
Designed graphic elements and layouts
Developed in Python and JavaScript
Coded HTML/CSS from a Bootstrap framework
My Bird Mixes
From the home page users can select a bird mix to drill or quiz on, or add a new bird mix.
Edit
Users select states and bird types for their bird mix. Icon color, three-letter name of mix, and description are all user settings.
Drill
Users can drill or quiz on their bird mixes. The app tracks how many birds users have missed and learned. The green checkmark shows when a bird has been added "learned" bird pile.
Settings
Users can customize the frequency of new, learned and missed birds in the drill.
Mix Details (WaC)
Users come to the mix detail screen by clicking on a bird mix icon from the home page. From this screen users can drill, quiz, edit, or go to a bird detail screen.
Bird Details (American Coot)
Users can hear the birdcall, save a bird as a favorite, exclude it from drills, see whether they've learned it not, and see what bird mixes it's included in.
Mix finds birds matching the selected states and birdtypes. The Drill and Quiz views act on this collection of birds.
Birdtype is a classification of birds into 22 categories.
Bird holds the static information for each bird, such as its name, states, birdtype, birdcall and narrated name.
Userbird extends Bird with the user's specific data for the bird, such as its "learned" status, and whether it's favorited or excluded from drills