Looking for a PHP programmer to create a script that does the following.
Overview - A call log manager, that accepts a predetermined template of calls and creates a log as well as appointments through Google's Calendar API for the phone calls.
## Deliverables
Script sits on server and accepts the following URL
[login to view URL]@example.com&phone_number=555-555-5555&account_name=John%Example
Variables above would then be parsed from string.
un - This would be a low level form of preventing the script from being run accidently by someone. These credentials
would be checked against a [login to view URL] file that would be stored on the server.
pw - This would be a low level form of preventing the script from being run accidently by someone. These credentials
would be checked against a [login to view URL] file that would be stored on the server.
email_address - Part of the record information.
phone_number - This would become the key field for the database. Each unique phone number becomes a new entry. Note - phone numbers may be passed as (555)123-1234, (555)1234567,
5551234567, 555-123-4567, 555.123.4567 - program should accept all versions and parce correctly.
account_name - Part of the record information.
Once the [login to view URL] script is called the logic would be :
1. Convert phone number to strip out characters. Remove dashes and parenthesis, as well as periods, etc.
2. Check phone number against database. If record exists, retrieve record. If not, create record.
3. If new record - have option to create a new "Call Template" -- a simple drop down with a list of drop down templates available is fine.
*See below for a proposed layout for "Call Templates"
4. Upon creating a new call template, the entry, then gets assigned a status of "ACTIVE"
5. The status of the entry can be changed by passing the line argument entry_status to [login to view URL] with the correct credentials.
Example : [login to view URL]@example.com&status=Inactive
Status choices will also be available via a drop down when viewing a record. Valid status options will be pulled in via [login to view URL]
Each status will have a name and a comma and then the word TRUE or FALSE. A status that has the TRUE next to it, will setup Google Calendar Appoitments.
6. It would then display a form similar to screenshot #1. This is a form that shows a drop down of the status of each of the pending calls, the date the call should happen.
As well as a place to display notes below it.
7. For new entries, appointments are created on a Google Calendar via the Google Calendar API.
8. If an entry's status is changed to reflect a status that is marked as FALSE. All *FUTURE* Google Calendar appointments should be deleted.
9. User has the ability to mark the phone call as completed, etc ( List of choices pulled from XML ) as well as put in notes and then hit "SAVE" and database and entry will
be updated.
10. If entry is NOT new, and the phone number exists, it would then pull up information from the database and show the status of the calls, and the notes, and wait for the user
to add data and then press save.
Note - Appointments are to be setup in the Google Calendar based on the creation date of the record. In the Example Call Template below, the first number is the day from creation
date. So if an entry was created on February 8th, 2012. The first appointment would be set on February 9th, 2012 at 10AM (local time). The second appointment to make a call would
be scheduled for February 18th, 2012 at 11AM (local time ) and so on. In the example below, the TRUE and FALSE at the end relate to notifications. If set to true, setup a notification.
===============================
/**
* Name : Example Call Template
*/
1, 10AM,"This is the message that goes with the calendar update.",TRUE;
10, 11AM,"This is the next message that goes with the calender update.",FALSE;
20, 1PM,"This is another example message.",TRUE;
/** End of Template */
==============================
If the script is called with just a username and pw and no entry is referenced.
Such as -- [login to view URL] It would present a list in sortable columns showing.
Name / Phone / Email / Last Call Date(Based on saved date of status change) / Next Call Date