1. A portable electronic device for simulating a pulse generator, the portable electronic device comprising: a touchscreen display configured to receive an input from a user and display an output; a memory storage component configured to store programming code; and a computer processor configured to execute the programming code to perform the following tasks: providing a graphical user interface via the touchscreen display of the portable electronic device; launching a pulse generator simulator on the portable electronic device in response to a request from the user, wherein the pulse generator simulator is launched without connecting to an actual pulse generator, and wherein the pulse generator simulator provides a virtual pulse generator that emulates a plurality of functionalities and features of the actual pulse generator; programming, without connecting to the actual pulse generator, the virtual pulse generator based on user input received via the graphical user interface; displaying one or more statuses of the virtual pulse generator via the graphical user interface, wherein the one or more statuses include at least one of: a connection status, a battery status, and a stimulation status; saving programming data associated with the programming of the virtual pulse generator; and thereafter establishing a communications link with the actual pulse generator and automatically programming the actual pulse generator according to the saved programming data sent via the communications link; wherein the tasks further comprise: before the launching of the pulse generator simulator: receiving a request from the user to gain access to the portable electronic device; receiving a username and a password from the user; authenticating the user based on the username and password received from the user; displaying an availability of the pulse generator simulator once the user has been authenticated; and thereafter receiving the request from the user to launch the pulse generator simulator.