Quantity   Component name
1 × Old Retro game controller You can use a retro game controller like the one I used. If you have access to a 3d printer, you can print your own casing(This option will give you room for adding more buttons).
1 × Arduino Pro Micro https://in.utsource.net/itm/p/9221678.html For this project you need to use an Arduino Pro Micro or Arduino Leonardo mini. In short you need a micro controller with HID (Human Interface Device) capability. Arduino Pro micro has an ATmega 32U4 micro controller.
1 × Switch This is a normal slider switch which I used for emergency purpose. The problem with working with mouse and keyboard library is that if you fail to upload a correct code you could loose the control of your keyboard or mouse. So it is very essential to have a switch which could help you to regain the control of your PC mouse/keyboard.
1 × Joystick Module https://in.utsource.net/itm/p/7958782.html To control the mouse movement we need to use a joystick module. Each module controls the X and Y direction.
4 × Limit Switches I used limit switches as triggers for my controller. These are optional if you want to make a game pad with just push buttons.
4 × Push Buttons https://in.utsource.net/itm/p/6495617.html Push buttons can be interfaced in either pull up or pull down configuration. Here I used pull down configuration for all the buttons and switches. I used 10 K ohm resistors for this.
1 × General purpose PCB Get a general purpose PCB to solder all the components.