Making a on/off/restart button or switch

I have a background with electronics and basic C++. Completed my C++ 145 class.

I have the Mega and uno. In terms of switches and hardware I can acquire as needed.
I have access to a lot of analog and digital electronic components.

The I still need to get approval for my overall project but this is one of baseline requirement for my final project.

So my goal is to research how to do this before it becomes time to start building my final.

I might need more certification but this is the only information I have for this requirement.
"On Off switch both for power and program restart (cannot be the reset on the board)"
He might be referring to just using a button to activate the resetset pin.