Private WiFi is a service that provides a secure VPN connection to an OpenVPN server.? We are? looking for a developer to build the client as a .NET application.? ? The application should provide the functionality of the Open Source Open VPN GUI client in a stripped down and less complex interface, while adding customer management/registration features.? ? This should be a relatively easy project for someone with the correct skill set.
Private WiFi is a service that provides a secure VPN connection to an OpenVPN server.? This specification is not complete and final details will be worked out with the contractor.? This specification is for the client side of the OpenVPN connection.
The application should provide the functionality of the Open Source Open VPN GUI client in a stripped down and less complex interface, while adding customer management/registration features.
**Assumptions and Dependencies**
-? ? ? ? ? ? ? ? ? Designed for compatibility with Windows XP/Vista/Windows 7
-? ? ? ? ? ? ? ? ? Should work with esellerate web store for product registration
-? ? ? ? ? ? ? ? ? Must not require proprietary libraries or components without availability of full distribution rights.? We will purchase licensing as required.
-? ? ? ? ? ? ? ? ? Must install TAP-Win32 driver & required SSL and PKCS dlls.
-? ? ? ? ? ? ? ? ? Should be provided as a Visual Studio 2005 or 2008 project in C#
-? ? ? ? ? ? ? ? ? The installation should be built with Windows Installer or Install Aware Developer & should download and install any dependencies that are not already present automatically (such as the required version of .NET)
**Goals and Guidelines**
-? ? ? ? ? ? ? ? ? The UI must be simple as possible.
-? ? ? ? ? ? ? ? ? Ideally the product should be able to be used with multiple registration services (in addition to esellerate).
-? ? ? ? ? ? ? ? ? Ideally the client should be able to be run by a non privileged user.
·? ? ? ? ? ? ? ? The installation will contain the license and service agreement which will be supplied.
·? ? ? ? ? ? ? ? Icons will be supplied for the software.
The client should have as few dialogs as possible.? Once installed, the client should default to running using the credentials supplied to the customer (certificates & configuration).? An indicator icon should appear in the system try that shows the status of the connection (red == not connected, yellow == connecting, green == connected).? Right clicking on the icon should bring up a dialog that allows the end user to connect, disconnect or exit the application. When a connection is being negotiated a dialog box should be displayed that simply shows the connection status ??" once the connection has been established the dialog box should close on its own and the indicator in the system tray should show the status as connected.? ? Once the connection is established the connected status should also be displayed in the icon tool tip box.? While a connections is established if the icon is moused over the tool tip box should display the local IP, the LAN IP assigned and the WAN IP.
The first time the client application is run, the user should be presented with a “Registration?? dialog box that gives them the option to enter a registration code, or link off to a web URL to obtain either a trial registration code or a full registration code.
If the end user selects the “Free Trial?? button the application should connect to a URL (to be provided) to obtain a registration code.
If the end user selects the “Buy Now?? button the application should connect to the esellerate web store to allow the customer to purchase a registration code.
If the user enters a registration code, the application should connect to a URL (to be provided) to obtain a .zip package containing the certificates and client configuration file. In the request for the package the client should pass the MAC address of the end user machine and the registration code as part of the request.? ? Once obtained the registration dialog should not appear again until the certificate has expired.? When the .zip package is passed to the client, it should be seamless to the user.? Once the .zip package has been handled, the software should automatically launch for the user.
The application should keep a log in a local directory showing the output of the server for each connection attempt.? Subsequent connections can reset the log.? The log can be used for debugging purposes and need not be available in the client itself.
**Enter registration code dialog**:? Should have field for input of registration code and have “Enter?? and “Cancel?? buttons.? If the client has not been registered there should be buttons for “Free Trial?? and “Buy Now??.? If the there is a trial certificate present in the configuration directory there should be a “Buy Now?? button.? If the customer has installed a trial certificate in the past and it has expired there should no longer be any option for “Free Trial??.? A message should appear to the user that their trial has expired and give them the option to Buy Now.
**Connection dialog**: “Buy Now??, “Connect??, “Disconnect??, “Exit?? buttons if application has been registered & the certificate has expired .
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? “Connect??, “Disconnect??, “Exit?? buttons if the application has been registered & the certificate is still valid.
“About?? and “Help?? buttons should be present in all conditions.?
“About?? should display a dialog with version number and company and contact information.?
“Help?? should bring up a sub menu with a choice to “Online Support?? or “Documentation?? or “Contact Technical Support??.? “Online Support?? should link to a URL to be supplied. “Documentation?? should link to a local help file in .chm format the content of which can be developed jointly between the application developer and the company.? “Contact Technical Support?? should bring up the “Contact Technical Support?? Dialog box.?
**Status dialog:** No user controls ??" simply show status during connection and close automatically once connection is established.
**Contact Technical Support dialog:** This dialog should have fields for the customer name, email address and a text box for description of problem.? When a request is made the current log file should automatically be sent along with the form fields to an email address (to be supplied).
**Error dialog:** In the event of an error or uncaught exception, an “Error?? dialog should be displayed before the software exits.? The error dialog should report that an error has occurred and that the software must now exit.? There should be a button that reads “Dismiss?? to close the dialog and a button that reads “Report this error??.? If the latter is pressed the log file as well as basic system information should be emailed to <support@[url removed, login to view]>.? System information should include the following: Detail of the exception, OS version, Username, Machine Name, IP address, Assemblies with version numbers and a list of running processes at the time of the crash.?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?