To attach the soundboard to the body of the ukulele, I first added some wooden braces, to add a bit of surface area to glue to:
Skipping a few steps...
I made the soundboard from the bottom of an old drawer. Unfortunately, the wood turned out to be veneered rather than solid, which according to the internet is inferior. It sounds okay to me though. I did not have any particular method for choosing the hole size and location. I just tried to make them look nice. I cut the holes by drilling a pilot hole through the wood, and then sawing them out with a coping saw.
I shaped the oak fretboard and glued it to the neck. It becomes much thinner where the neck meets the body, so that the part of the fretboard that overlaps the soundboard does not actually touch the soundboard.
I wanted to get the ukulele to a playable state before I returned to campus, so I bought some violin tuning pegs rather than making my own. I reamed the tapered holes using a combination of drill bits and a pair of scissors with appropriately tapered blades.
I used an online fret spacing calculator to figure out where the frets should go. I carefully marked out their locations, and then cut slots for the frets with the coping saw.
I wasn't confident that the barbs on the fret wire alone would hold the frets in, since the coping saw blade was a little too wide. I applied some epoxy to the frets before hammering them into place.
I snipped the frets flush, and then filed the edges smooth:
I made the nut out of some more oak, and the bridge out of oak and mahogany.
My original bridge design held all the tension of the strings. After a few hours of being strung, I noticed the glue on one side pulling up from the soundboard. I cut away most of the bridge, and drilled holes diagonally through the back of the instrument and the soundboard for the strings to feed through.
I did not have time to finish the wood at home, so I grabbed some tung oil out of a cabinet at MITERS, and finished it there.
With the strings back on. I actually prefer how this string arrangement looks over the failed one.