Liam Lacey made a DIY MIDI controller that looks to be a really good introductory project for those wanting to get started building their own controller.
The controller features 8 arcade style push buttons and a switch to toggle between sending note or CC messages. While it may seem limited in capability, it serves as a good introduction to MIDI controllers.
Liam’s tutorial gives a good description of the build process and only requires soldering to connect wires to the push buttons and switch. Connections to the Teensy can be made using a breadboard or a strip board if you’re up for more soldering.
Any MIDI software can be used. In the demo video Liam uses Abelton Live and the Sugar Bytes Turnado plugin.