Step 1: Create a basic model (possibly hands as well if you feel like going that step further)
Step 2: Create animations for the weapon (walk, shoot, run, put away, ect...)
Step 3: Place that all in a new folder with the name of the weapon as the folders name.
Step 4: Create a gunspec with references to the gunspec and appropriate weapon details.
Step 5: Modify the gunspec options to fit your weapon (position X, position Y, position Z, zoom settings, huds anything else needed).
Step 6: (Bonus Step) If you feel like going a step further and you own something like PB, you can make your own weapon script, to allow things such as granade launcher attachments or shotgun ect...