As a student, this is how I would have done it.
Using bootstrapping methodology, convert Coupon Bond into zero coupon bond so you have zero coupon bond for all maturities.
you will find that you have some "missing Data". e.g. you don't have the zero coupon bond for certain Coupon date. You can address this issue by choosing an appropriate interpolation methodology [1]
Convert your Zero coupon bond (discount rate) into spot rate then plot your curve.
Basic idea / principle used:
No arbitrage
e.g. a bond with coupon C that matures in 3 years (even if it was issued 5 years ago), must have the same price as a 3 years bond (with same coupon) issued today that has the same maturity.[2]
Please note: Zero coupon Bond and Discount factor are the same thing.
Another approach you might want to consider are Curve fitting, using for example the Nelson Siegel Model (or the extended version). I.e. we assume that the discount factor is a function of maturity T (i.e. Z(0,T)).
I hope this help, but I want to emphasis that I don't know what are best practices, I just shared my view on how I would do it if I was still a student.
Best, Jules
[1] Great paper from Patrick S. Hagan and Graeme West.
You have a summary on page 10 which compare all methodology.
I personally like Raw (linear on log of discount) as it is simple to implement. Draw back being: Not continuous.
http://web.math.ku.dk/~rolf/HaganWest.pdf
[2]Fixed Income securities - Pietro Veronesi || p62