Requirements for the birding record app

July 20th, 2010 § 0

Building the requirements

I’ve been doing some initial work on the app now and have built the basics stylesheets and database tables to let me develop the app and be able to see what I’m doing. It’s important to me to be able to see some meaningful output as I work, and the initial CSS only took half an hour or so to knock up. Plus, I find it easier to keep good HTML coding in mind if I have an output model to aim at - I know the structure of the markup I want to put out and I can change the look of it to something a bit more professional once I’ve built the basic framework of the code.

The requirements text looks like this so far:

Overview

Birding Record is a tool to help birders keep track of the birds they see, the venues they go to and the birding trips they make. The software should be as easy to use as a paper tick-list, but powerful and flexible enough to be able to analyse records in whatever way the birder needs to get the most out of their hobby.

What it is

Birding Record provides:

  • as many lists as the birder needs to record the birds they see
  • for non-year lists, a simple tick yes or no which records the date seen
  • for year lists, a tick to record yes or no, plus a ‘first date seen’ and ‘last date seen’ field for recording migrant arrival and departure dates
  • bird records provide space for notes, and for users to upload their own sound and image files for each species
  • venue records let you record details for the places you go birding
  • journal records let you record notes and bird counts for species seen on each trip, and these can be linked to venue records to build up a detailed record over time

What it is not

Birding Record does not provide:

  • field guide notes to help identify species—the aim is for the birder to record their own notes as they go rather than to provide generic information for them
  • venue information for where to see birds
  • wider migration records for species (although it is hoped that, with a big enough user population, we could collate results on a central site)

My first big decision

I am stuck on how to associate bird records with the lists they appear on. For each bird I would like to be able to record a number of lists, with a simple true/false record to show if that bird should appear as ticked on that list. There appears to be two ways to do this:

  • Record this value in the Bird table - nice and easy but will require a more substantial update to add new lists as I’ll need to update every record in the table
  • Record these values in a separate table for the list and provide a separate table for each list with each row recording the bird id and date ticked. Makes the queries a level more complex, but would allow for recording extra data such as date last seen and count

Database good practice leads to the latter, only recording the data for birds you have seen. The extra flexibility of being able to record additional data for each tick is promising, the only downsides being slightly more convoluted queries and a bit of overhead to create the table in the first place as it will need to be created with 500-odd rows to initialise the data for each bird. This seems like a small price to pay though, so I’ll build the structure like this, at least to begin with.

A new project

July 16th, 2010 § 0

I’ve been wanting to try and extend what I do with PHP development for a while. I’ve been coding in it for a while, and I think its time that I put something out for others to look at and use. I’ve been working on an application to manage tasks and projects, thinking a lot about what I need the app to do, and building a framework in which I can develop the code to deliver the functionality. This is ready to go - more on this in another post.

This is all well and good, but the process has been long and the changes very many. Not something that I could put together and write up as great example of developing and delivering software. My idea is to push through and build some of the other apps I’ve been thinking about and keeping a journal here to document my thoughts and processes. I’m doing the work in quite small chunks on the train which gives me a good amount of stuff to write up each day.

The project

The first app I’m building is a tool to help birders keep tick lists and journal entries. I’ve had a look at software available and there doesn’t seem to be anything available online, and the installable software seems to be mainly for PC (not suitable for me as a strictly Mac/Linux user). The core features need to be:

  • All British birds are maintained in a database with details on names, categories and other non-changeable (or rarely-changeable) data
  • lists for users to keep a record of which birds they’ve seen - life lists, year lists, garden lists, county lists, etc. - some already in place but users can add their own. Each record can be linked to dates so that the user can build up a picture over the years of migration patterns for birds in their areas of interest
  • main page will show the list of birds with ticks to show which have been seen on which list
  • Detailed pages for each bird will allow users to upload their own photos, notes and audio to build their own record of information for each species
  • Journal allows users to record detail for individual birding trips, with links to bird species pages where applicable

These will form the basis of the design spec and screen layout, and I’ll build the architecture in such a way that I can easily extend and add features once it is all up and running.

Watch this space…


Post script: Anyone reading this who wants to have a look at my task management application and give me some feedback - please drop me a line!

Commuter birding

July 6th, 2010 § 0

I wonder where the best places to go birding are in London? I bike from Vauxhall to Euston every night and, while I like to think I’m observant and take an interest in my surroundings, I’m sure I miss out on seeing a lot of interesting stuff that’s only just off my beaten track. Must get the map out and see if there are any potential little spots to discover. There’s always the pelicans in St James’s Park, but I don’t think that counts as a proper tick…

Funny stuff

July 5th, 2010 § 0

I’ve heard about it before, but I’m only just starting to catch up with Kevin Smith and Scott Mosier’s weekly SMODcast. Its essentially two guys pissing around and being incredibly vulgar, but there’s something very endearing about it all. It’s a bit hit and miss, as a lot of these types of things are, but there’s enough great stuff in there to make it well worth a listen.

New thinking

July 2nd, 2010 § 0

I’ve been thinking about a quote I picked up from John Gruber:

“The head of Black and Decker once said, folks don’t buy our products because they want one inch drills, they buy our stuff because they want one inch holes.”

I’ve often felt, as a project manager, that I get called in to help people buy drills, and my real job is to help them understand that they need holes. Trouble is that a famous quote from Einstein is also true:

“Problems cannot be solved by thinking within the framework within which they were created.”

Unless your client understands the truth of this, they are never going to be in the market for holes and you should leave them alone to get on and buy the drills.