I've used FitDay and it has a pretty good database and its customizable. I've heard MyFitnessPal is good, too, although I don't know personally. I have never used it.