This is a DC motor controller circuit, built using transistor TIP31 based on H-Bridge concept. The switch S1 and S2 are normally open , push to close, press button switches. The LED function is to indicate the direction of motor rotation, you may use any common LED type. The TIP31 transistors capable to handle 3A maximum electric current, you may change the transistors for DC motors with higher current consumption. Remember, running under load draws more current.
Actually, this circuit was built to drive a small DC motor and can be used for small application such as automatic closing and opening systems, mobile robot actuator, small fan, etc. The four diodes arround the DC motor are back EMF diodes. The diode type is depended of the DC motor current consumption. For a 12V motor drawing 1A under load, use 1N4001 diodes. For 3A DC motor, then use IN5401.