The cooler I used was a small-ish (24-can) Igloo that I found at Walmart (on sale, too). Generally, you want to go for as flat a top surface as possible, but sometimes it’s unavoidable, depending on what else you want for the cooler. Mine had a raised, rigid tiling on top, but it wasn’t hard to fix. I just filled it with spackling and sanded it smooth. Super easy.
I bought all of my supplies at Walmart and Michael’s: cooler, paint, primer, sealer, paint pens. I had sand paper and tissue paper for tracing at home, and my mom had a huge variety of brushes from her painting days years ago.

Also, painter’s tape is definitely handy in this process. It kept my cooler quasi-neat and left me with little touching-up to do in the end.
My cooler took me about a week to paint. Granted, it’s smaller than a normal-sized cooler, and I didn’t paint every single inch of it (I left the bottom part white and primed). But for doing it all in a week–okay, I did some of it before I left for Europe, so not all of it–I’d say it didn’t turn out that bad at all. And Kevin loved it, and that’s what matters. He was definitely surprised.
(And yes, we broke it in and used it for a picnic lunch later that day.)