Find Jobs
Hire Freelancers

Small PHP Web Application

$500-5000 USD

Completed
Posted almost 14 years ago

$500-5000 USD

Paid on delivery
** ** ** ** **OVERVIEW** The objective is to build a Internet server application that can help people remember upcoming events. ? The server can do this by either sending a reminder email note or by allowing for the download of an iCalendar formatted file that can be imported by many calendar applications. ? The server itself has no user interface. ? Reminders are created by a GET request sent to the web server with appropriate variables. ? iCalender downloads are triggered by a GET request sent to the web server with appropriate variables. ? The text of the email and the iCalendar file message vary depending on the country/locale that the user is in. In addition to the server, two simple javascript functions should be created that can be called from any web page that wants to use the reminder system. ? Both functions take the same set of arguments. ? The first function should use AJAX to trigger the creation of a calendar item on the server without changing the page in the user's browser. ? The second function should trigger the download of the iCalendar file without changing the page o the user's browser. ? **SAMPLE USER STORY** * An normal person comes to a web page that is advertising a rock concert that will happen next month at 7pm in London. ? There is a link that says: "*Click here for a reminder!*" ? The user clicks on that link and a window pops up asking for their email address and how many minutes ahead of time they want to receive an email reminder. ? The user gives their email and indicates they want ? a reminder 60 minutes before the concert. ? The information is sent off to a server without the user leaving the page they were looking at. ? On the day of the concert, the user is sent an email at 6pm (London time) with a reminder message. *? An normal person comes to a web page that is advertising a rock concert that will happen next month at 7pm in London. ? There is a link that says: "*Click here to add to your calendar!*" ? The user clicks on that link and a window pops up inviting them to click on a link download a iCalendar formatted file (*.ics). ? The user clicks on that link and easily adds an entry to their Mac calendar (or to their Microsoft Outlook calendar). ## Deliverables ** DELIVERABLES** * Datase creation script (for MySQL) * Web App (RoR or PHP) to create "reminders" in the database * Stand-alone "Timer" program to trigger actions and "reminder" emails when they are due * Javascript file ([login to view URL]) suitable to be used for triggering creation of reminders * Sample HTML page using ([login to view URL]) that uses the functions in [login to view URL] to trigger the creation of a reminder. **DATABASE** * Must support a large number of records (tens of thousands) * Contains a table of Events which include Event IDs, short description (50 char), start time (in GMT time zone), end time ? (in GMT time zone) * Is populated with 2-3 dummy events for testing purposes * Contains a table of Reminders including the time at which a reminder should be sent? (calculated in GMT time zone)? and this "Reminder Time" column should have an index. ? Reminders should also have a boolean "Was Sent" flag indicating whether the reminder email was already sent. * Contains a table of Requested Calendar Downloads for logging purposes. **WEB APP** * Generates the iCalendar file using a template that can vary based on the user locale code. ? If no template is defined for a given user locale code, a default template is used. ? Templates must support Unicode characters. * Returns an HTTP error code if the GET request is missing the proper arguments or is formatted incorrectly. * App should be scalable to allow multiple simultaneous requests. * Errors should be logged to a text file and should include "Local Template not Found for iCalendar request" **TIMER PROGRAM** * Triggered by CRON or other job scheduler * Performs the tests noted below and terminates when done (does not run in a loop). * Scans the reminder table when started to determine if any events occur within * If reminders are due or overdue (in the last 5 minutes), emails should be sent (via SMTP gateway). ? Once sent, the Reminder record should have its "Was Sent" flag set to true (and not receive an email again). * Email subject and body text as specified in a template file (stored on the server). ? The template file should be chosen based on the user's Locale Code (or a default if no template matches the user's Locale Code). ? Template must support Unicode characters. * Errors encountered are logged to a text file and should include: "Locale Template not found for Email" and "Error attempting to contact mail server. * If unable to contact the mail server to send the email, the reminder item should not be marked as "Was Sent" (so that it will be picked up again the next time the timer is run). **[login to view URL]** * To be included on any HTML page that wants to use the reminder system * The arguments taken by both Javascript functions are: * Event ID ? (simple 20 character alphanumeric code) * Advance Notice Minutes (integer) * User Locale Code (2 character string) * User Time Zone Identifier (30 character string)? * User Email Address (80 character string) * Request Format Code (5 character string) * All of these arguments are sent to the server and must be stored in a database record. **[login to view URL]** * Very simple page that uses the javascript ([login to view URL]), contains a simple HTML form with one text field for each of the arguments taken by [login to view URL], and has two buttons labeled "Reminder Email" and "Download Calendar". * Clicking on "Reminder Email" triggers the creation of a reminder on the server. * Clicking on "Download Calendar" triggers the download of
Project ID: 3402192

About the project

31 proposals
Remote project
Active 14 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
Awarded to:
User Avatar
See private message.
$637.50 USD in 21 days
5.0 (127 reviews)
6.7
6.7
31 freelancers are bidding on average $983 USD for this job
User Avatar
See private message.
$1,275 USD in 21 days
4.8 (131 reviews)
8.1
8.1
User Avatar
See private message.
$1,275 USD in 21 days
5.0 (50 reviews)
7.8
7.8
User Avatar
See private message.
$1,700 USD in 21 days
4.6 (272 reviews)
7.8
7.8
User Avatar
See private message.
$722.50 USD in 21 days
5.0 (30 reviews)
6.7
6.7
User Avatar
See private message.
$680 USD in 21 days
5.0 (108 reviews)
6.7
6.7
User Avatar
See private message.
$1,105 USD in 21 days
4.6 (66 reviews)
6.3
6.3
User Avatar
See private message.
$2,550 USD in 21 days
4.7 (60 reviews)
6.3
6.3
User Avatar
See private message.
$2,125 USD in 21 days
4.8 (114 reviews)
6.1
6.1
User Avatar
See private message.
$1,700 USD in 21 days
4.7 (19 reviews)
5.9
5.9
User Avatar
See private message.
$446.25 USD in 21 days
4.8 (42 reviews)
5.4
5.4
User Avatar
See private message.
$425 USD in 21 days
5.0 (22 reviews)
4.4
4.4
User Avatar
See private message.
$467.50 USD in 21 days
4.9 (13 reviews)
4.0
4.0
User Avatar
See private message.
$668.10 USD in 21 days
2.5 (7 reviews)
6.2
6.2
User Avatar
See private message.
$595 USD in 21 days
4.7 (4 reviews)
3.0
3.0
User Avatar
See private message.
$425 USD in 21 days
4.8 (10 reviews)
2.8
2.8
User Avatar
See private message.
$595 USD in 21 days
5.0 (9 reviews)
2.0
2.0
User Avatar
See private message.
$425 USD in 21 days
5.0 (1 review)
1.9
1.9
User Avatar
See private message.
$1,275 USD in 21 days
5.0 (4 reviews)
2.0
2.0
User Avatar
See private message.
$425 USD in 21 days
4.5 (13 reviews)
1.1
1.1
User Avatar
See private message.
$595 USD in 21 days
0.0 (0 reviews)
0.0
0.0

About the client

Flag of UNITED STATES
Mesa, United States
5.0
6
Member since May 5, 2010

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.