We are developing a range of internet connected electronic devices (let's call it an eWidget) which will be controlled through an iOS (iPad and iPhone) application with a dedicated server handling interactions between the devices and a user's iOS device.
The system will work as follows:
1. The user purchases an eWidget and connects it to their home network. The eWidget auto-configures an IP address and sends a HTTP request to the eWidget server identifying itself (MAC address, private IP, public IP etc). The server will already contain a record of the specific eWidget device which was entered into the database when the device was manufactured.
2. The server stores these details in a device record awaiting further configuration.
3. The user opens the eWidget iPhone or iPad application. The application logs into the eWidget server with the user's account details and presents the user with a list of all eWidgets registered to their account.
4. The user adds the new eWidget to their account by specifying the device MAC address and a PIN that was included at the time of purchase. The eWidget server associates the new eWidget device with the user's account, where the user can customise details such as giving the device an identifying name.
5. Once configured on the user's iPhone or iPad, the eWidget can be controlled by sending commands from the eWidget app. The specific control features of each eWidget will vary but assume at this point there are only 2 simple controls - ON and OFF.
6. The eWidget app attempts to send a control signal to the eWidget through two concurrent means. First, it sends a timestamped request (using HTTP) to the eWidget server identifying the device to be controlled and the command to be sent. Secondly, it sends the same request directly to the private IP address of the eWidget, again using HTTP.
7. The eWidget app will regularly poll the eWidget server to request the status of all eWidgets registered to the user's account, and update the display on the iPhone / iPad as the status changes.
**eWidget Server Component**
The eWidget server component needs to provide appropriate functionality to facilitate the above process. The server must use MySQL and PHP and be capable of running on a RHEL server running on Amazon EC2.
There will be no direct end-user interaction with the eWidget server - the server exists purely as a conduit between the eWidget iOS application and the eWidget devices.
**eWidget iOS Application**
The eWidget iOS application needs to provide appropriate functionality to facilitate the above process. The application should run on an iPhone or iPod Touch device running iOS 5 or later, and should be built using ARC.
The application does not need to include any graphics elements - user interface components can be simple text labels and buttons. This project involves building the functionality required into the iPhone application but does not require any UI work.
** More Information / Clarification **
If any aspect of the above is unclear or you would like to clarify any aspect please contact us with your queries before lodging a bid. We expect the functionality to be delivered in full within the fixed budget so please ask any questions that will help you understand exactly what is needed.
24 freelancere byder i gennemsnit $4497 på dette job
eWidget App will be develop by both Ipad & Iphone with our dedicated Mobile experts. We are CMMI Level 3 Certified Company. Check Pm for more details Regards, Shree Changepond Technologies Team