main thing is to have a raised floor, be easy to clean, and large enough that the dog can stretch out in it. Having a bit of an overhang at the front so rain doesn't come inside and wet any bedding is handy. You can get some with plastic flaps at the front etc. Getting the pup used to it is important!
Everything Kaz said. This is how I made our dog's, except for the plastic flaps.

It's important not to have them too small, but just as important not too large as the dog will get cold. Having it slightly larger than the dog (to allow for stretching and growth) will keep the inside nice and warm using the dog's body heat.

I also made mine with a removable roof and sealed the edges with foam strips to insulate. It's bloody warm in there!