Create a phone app using Appcelerator Titanium that displays contacts stored in a CRM.
This project is a small portion of a much larger project, and if the trial app implementation is satisfactory, there will be several follow-on functionality upgrades to the app. It is preferable to keep the same mobile developer throughout all projects, so please only bid if you are available for follow-on projects.
## Deliverables
Requirements:
* Must be written using Appcelerator Titanium
Screens to implement:
* Login
* Contains two fields: "Username", "Password"
* Contains one button: "Login"
* Main Menu
* Contains only one button: "Contacts List", when touched displays the "Contacts List" screen.
* Contacts List
* Lists the names of all contacts. When a contact is touched, the "Individual Contact" screen will be displayed.
* Include a "Back" button.
* Individual Contact
* Displays name and phone numbers of the contact. When touching a phone number, the app should give the option to call that phone number.
* Include a "Back" button.
Functionality Description:
1. Login to CRM
1. If ever the app doesn't have a valid session, show the login screen
2. Login screen has two fields for now:
1. "Username"
2. "Password"
3. For testing, use the following:
1. Username: "test user"
2. Password: "testing"
4. To login to [login to view URL], you need to obtain a session ID:
1. Send a POST request to the following URL, where <format> is one of (json, xml, yaml) to get a response in the format you want. This will get you a session ID, which you need to save to login.
1. [[login to view URL]<format>][1]
2. Send a POST request the following URL, where <format> is one of (json, xml, yaml) to get a response in the format you want. This will log you into the system, and you will be able to access the contact API.
1. [[login to view URL]<format>][2]
2. POST content is the following, where <session_id> is the session ID retrieved when connecting to the system:
1. sessid=<session_id>&username=test user&password=testing
3. To logout, send a POST request to [[login to view URL]<format>][2]
4. For easy testing to understand what's happening with the requests and responses, use the Poster plugin for Firefox.
2. Main Menu
1. If logged in with a valid session, show the main menu with the one button to show the "Contact List" screen.
3. Contact List
1. Must have a valid session ID after logging in to access the list.
2. Retrieve the full contacts list from the following:
1. [[login to view URL]<format>][2]
3. Each list item displayed should only contain the contact's full name.
4. When a list item is selected, the "Individual Contact Screen" for that contact will be displayed.
5. The back button will take the user to the main menu.
4. Display Individual Contact Screen
1. For this test project, you can retrieve a subset of available fields at the following URL, where <nid> is replaced with the nid retrieved in the contact list, and <format> is replaced with one of (json, xml, yaml):
1. [[login to view URL]<nid>.<format>][2]
2. The screen should include the contact name and phone numbers with phone type labels and formatted like (###) ###-####.
3. The back button will take the user to the contact list.