This needs to be a web based appointment scheduling application using php/mysql/ajax.
To have your bid considered please submit:
1. A detailed proposal including a simple outline of your proposed classes.
2. You must have experience and references. If you have not before built an application using the above languages please do not bid.
3. You must detail how long each phase of development will take.
Clone [url removed, login to view];view=weekview&month=6&day=6&year=2008&hour=0&minute=0&redirect=dayview&eventID=0&studio=545&stateID=6917&
This is the end user application to book appointments online.
End User Perspective Requirements:
1. See calendar with today + 2 months available.
2. Click on each day and see available times. Available times will be customizable from the administration perspective (aka admin application).
3. End users can select a time and it will take them to enter information.
4. Confirmation email will be sent to end user and admin.
5. Reserved time will be removed from availability list.
Administration Perspective Requirements:
There will be 3 elements available on the page: a. a calendar b. a table of ‘arrivals’ c. info based on what is selected in the calendar
1. See calendar
2. Select calendar date and see all available and reserved times
3. If time is available, select and reserve for end user client. In the case that the admin reserves the time, mark “admin reserved” and show as different color in the “arrived queue”
4. If time is reserved – view and see information
5. For each reserved time – admin may select and mark “arrived”. When arrive is checked it is timestamped.
6. Admin can view “arrived queue” which will show reserved time and arrival time. If arrival time is after reserved time then the client name will appear in red. The queue will also show current time – arrived time which will appear as “wait time”
7. From the “arrived queue” the admin can select the user to remove from the queue. This will timestamp the removal time.
Super Administration Perspective
1. Admin can configure or run reports
a. Set num days ahead available – default is two months
b. Set daily start and end time – Mon – 10am to 8pm, Sunday 11am-6pm, etc.
c. Set time interval – 15 minutes – 30 minutes, etc. Default is 30 minutes.
3. Run reports - all with variable time fields - run report for day/week/month or date parameters
a. Wait time report – Total wait time per customer = time removed from “arrived queue” – arrived time
b. Scheduled wait time report – Total wait time based on reserved time not arrived time. Wait time = time removed from “arrived queue” – reserved time
c. Num appts per day in calendar view
d. Num arrived appts vs reserved appts
A little more clarification so this makes sense. You do not need to structure your code in this way. It is only for purposes of helping you understand the requirements of the project:
Ok, so its easy to understand the calendaring part since there is a site to clone. When a user selects a time it populates a customer and removes the time from available times in the calendar.
For the regular admin:
You will have a table shows all the scheduled appt for that day organized by time. It only needs to show the time and name. join name and customer and pull appt_scheduled_time and name to create a table for today. The name should be selectable and when clicked show more customer data. There should be an actionable buttons which says "Check in".
If check in is selected the row is removed from the table and appears in another table on the same screen (preferably side by side). The items in this table are select appts for today where the appt_actual_start_time is null and the appt_arrival_time is not null. The row in this table says the appt_scheduled_time, the customer name, and the appt_arrival_time (which is equal to the timestamp when the admin clicked the check in button). There should be an interval refresh of this table that is short. If the current timestamp is greater then the appt_scheduled_time, the background or text of the row should turn red. There should be an actionable button next to each row that says "Complete".
When complete is selected the appt_actual_start_time is timestamped.
Super admin should be able to select a time period (last 7 days, last month, from 6/1-7/1) and show the following
1. each row shows a customer name and the wait time in minutes (which is appt_actual_start_time minus appt_arrival_time
* the bottom should show average minutes
2. each row shows a customer name and the wait time in minutes (which is appt_actual_start_time minus appt_scheduled_time
* the bottom should show average minutes
3. This is the only report that can show the future. if say next 7 days is selected the num appts would show 6/1 = 5 appt 6/2 = 10 appts 6/3 = 8 appts an so on
4. if last 7 days show date : count where appt_arrival_time is not null : count where appt_scheduled_time
Hope this makes things more clear.