Four Component System:
1)Windows Application
2)Web App that functions same as windows App
3)Server Backend
4)Billing and Signup Backend
Component 1:
Calendar Scheduling App with Online Sync
A Windows (exe) program that performs calendar scheduling and at points in the day synchronizes certain data to a remote server
Description of Calendar App:
Setup/Options:
-Multi User Scheduler
-Can Set Hours and Days of normal Operation (Hours Open)
-Can Have different hours and days for each user
-Online Username and Password -- If user account is canceled cant use software
Views:
-Today: Show a list of Today's Schedule
-Week: Show a week view of schedule
-Month: Show, using highlights on the day, which days have something scheduled
Adding A Scheduled Event:
-Who is involved, (First, Last, Middle (All Separate DB Fields)
-All previous users info gets stored, and can be easily searched and added to event
-What is their phone number
-City
-Option to choose which user's schedule you're adding to
-Time and Date of Scheduled Event
Advanced Features
-Event Check in / Confirmation
-Saved User History � See what events have been scheduled with personX
-When the event occurs, you �check it in� or �Approve it�
-Recall system
-After event confirmation, user gets asked to REMIND in 3, 4, 6, or 12 months to reschedule the event
-In Separate List, show what events are �due� to be rescheduled today.
-This includes events that are past due, in RED at the top of the list
-Cross checking to see if that name and phone number has scheduled an event within 2 month range of the Recall. If so, no recall.
Online Sync: (Syncs to Server Component)
-Server Address must be able to be updated in code
-Syncs data: Fname, Lname, Mi, Phone Number, Date of Scheduled Event, Time of Schedule Event, username, password, register_check
-On Check-in, adds to that remote info the recall period as well
-Check username and password registration status. If Register=End then program should NOT work. Any other value is fine
-Sync will receive check for a Status from online server, and if X,Y,Z will change the color of that scheduled event
Programmer suggest method of sync
Look here for a similar app: I like the look of this one
[login to view URL]
We want ours to send our servers the appointment info and we will make the calls.
I do like their call status notification as well as general layout of the appointment book
Component 2: Web Application
Basically, user can login to web app and see their schedules, make changes, deletions, etc
Just easy to use!
Component 3: Server Backend
Develop a linux program/script for CentOS/Asterisk (Trixbox 2.2) that will create and make reminder calls based on information in the database.
Trixbox/Asterisk is not required � if programmer thinks different VOIP method would work better.
The database will be updated with info from a windows program.
Heres what should happen:
1-User enters Appointment into windows program.
2-Program transmits: Name, Telephone, Appointment date and time, user_submitting, selected script, any other needed info.
3-Server checks its local db for updated info
4-At night, using licensed text to speech engine cepstral or other good one, Server makes sound files for next days calls using the dynamic info updated to db, and user-linked info like script. (IE: Hello, this is Jim's Massage Parlor reminding Eric Someone that he has an appointment tomorrow June 4 at 8 AM. Press 1 to confirm, 2 to contact our office"
5) The next day, the server tries to call the user. Upon connection, after a brief pause to let the user say hello, the message is played. If the user hits one, the DB is updated to status Confirmed, 2 the user is connected to the office, and the status is set to call-answered. If no input, the message will be replayed without the options, in case of an answering machine, and then hang up.. status set to recall
6) If status is set to Confirmed or Call-answered, sound file is deleted and call removed from queue.
7) If status is set to recall, every 3 hours later, up to 8PM local offices time (Info stored in DB) the call will be retried. After 3 calls or 8PM the status will be set to Secretary- and the local offices will call on their own.
8) Server checks to see whos getting called tommorrow and process begins again.
Obviously there is a lot of user preference info to take into account at all times.
Asterisk = Free Open Source PBX.
Trixbox = Free Open Source PBX with Certain Addons Integrated into a package
[login to view URL]
[login to view URL]
Asterisk uses AGI scipts, perl scripts, and php scripts as well as a mysql db on CentOS Linux Distro.
The server has PHP, MySQL, as well as a range of other packages already installed.
Component 4: Billing and User Signup
We want to setup a system that allows the following:
1) User sign up and registration
-Credit Card, Paypal, any other means to pay
-Selects Plan at signup, adds any extras
-Creates the username in the system and stores credit card info SECURELY (or on Paypal)
2) Keeps track of user use. If goes over, gets charged set rate. Certain conditions apply... Keeps track of bill
3) At beginning of month prebills set rate + overages from last month
4) Cancellation system that will stop the user from continuing to setup calls and lock out of website
I would like to also Add the following:
1) Email Reminder
2) Text Reminder
Basically, in the appointment setup, the user has the following 3 reminder Choice Check Boxes:
1) Call Reminder
2) Email Reminder
3) Text Reminder
If they hit Call Reminder, it uses their phone number from the info
If they hit Email reminder, a box shows up to the side asking for an email - OR it gets the email from the database if user already exists
If they hit text, a box shows up to the side for Cellphone input AND provider. Texts are actually just emails to phone numbers_AT_provider, so the top cell providers will be there:
Verizon, Cingular/ATT, Sprint, TMobile,