Putting it altogether
Now that you have the basics of building simple midi controllers down, I’m sure you are already thinking of the many possibilities for custom controllers.
The next step will be to house all your components in a box.
There are many options available for electronics enclosures from simple plastic boxes to elegant woodwork.
If you are new to soldering then I would suggest spending some time on soldering tutorials and practicing on soldering wires before components.

ABS plastic project boxes are a low cost way to try out new ideas.

Simple controller using four potentiometers and eight 12mm buttons.
FAQ
Do I have to use an Arduino Leonardo?

No, any Arduino or a controller like a Teensy that has USB support can be used to build midi controllers. The Leonardo is good to use for trying out ideas because you can easily push in cables. Smaller controllers like the Pro Micro are good for saving space in enclosures when you are ready to solder everything together.
What else can push buttons be used for?

Push buttons can be used to control many things in a DAW such as the transport, mutes/solos, triggering samples or synth keys etc.
Arcade style buttons can make interesting drum pads.
Can I use sliders?

Yes, Linear Slide Potentiometers (10k are good to use) are essentially the same as their knobby brothers. The same code will work and they connect the same way as the potentiometers in the tutorials.
Can I add more than six analog pots to an Arduino?

Yes, Multiplexers (MUX) can increase the number of pots and sliders we can use. For example the 74HC4067 has 16 channels.
There are various models of Arduino available some of which have more analog inputs, but you need to be careful when choosing as some don’t have USB built into the main controller.
Teensy 3.x or 4.x are excellent choices for USB midi and also have plenty of analog inputs.
Where can I find more coding information?
The Github page for the Midi Controller Library has documentation and examples.
https://github.com/tttapa/MIDI_controller
For more features beyond basic controllers the Control Surface Library is amazing.
https://github.com/tttapa/Control-Surface