For XXXXXXXX **
There are 36 students in the web technology class. In order to organize the project
demonstrations, the students will demonstrate their projects at six different one-hour long time
slots. Up to 6 students can give their demonstrations in a given time slot. The professor decides
to have a registration webpage to allow students to sign up for one of the time slots. A student
visiting the page should be able to submit his/her UMID, first name, last name, project title, email
address, phone number, and book a seat in one of the available time slots. A student is uniquely
identified by his/her ID.
The submitted data should be stored in a MySQL database which is maintained on a server. The
webpage and the server should interact with each other at every step of the registration process.
The page should show how many free seats are available in each time slot, announcing and
blocking all fully booked time slots. After a student makes a data submission, it should check
whether the student has been already registered. If not, the data is stored on the server and the
student is notified about her registration. Otherwise, if already registered, the student should be
prompted to ensure that she wants to change her registration to the new section (and removed
from the current one she is registered for). For example, the time slots may look like the
1. 12/9/15, 6:00 PM – 7:00 PM, 6 seats remaining
2. 12/9/15, 7:00 PM – 8:00 PM, 5 seats remaining
3. 12/9/15, 8:00 PM – 9:00 PM, 3 seats remaining
4. 12/10/15, 6:00 PM – 7:00 PM, 2 seats remaining
5. 12/10/15, 7:00 PM – 8:00 PM, 4 seats remaining
6. 12/10/15, 8:00 PM – 9:00 PM, 0 seats remaining
In addition, you need to write a separate webpage that will display the list of students (including
their UMIDs, names, project titles, email addresses, phone numbers, and time slots) who are
registered, after querying the database.
2. The database must fully implement the registration process, maintaining the submitted
information. The server and page behavior must meet the requirements listed above.
3. The specific look and feel of the pages as well as the database implementation is left
intentionally vague, allowing considerable design freedom on your part. However, the
page should have a nice look and the code should satisfy common standards.
4. User inputs must be validated at the server side in PHP and/or at the client side in
only. UMID must be 8 digits. Email begins with series of alphanumeric characters,
followed by the [email protected]
character, and domain name. Domain name consists of dot
separated labels of 1 to 20 alphanumeric characters each, up to a maximum total length of
80 characters (including dot delimiters). Phone number must be in the form 999-999-
9999. Note, the email format is much more restrictive.
If there are any errors, your program must highlight the error input and keep the correct
inputs. You should not ask a user to “go back” to the previous page or input everything
Notes on Launching a MySQL Database Instances at AWS
The following link gives the detailed instruction:
• DB instance class should be “db.t2.micro” to avoid any additional cost.
• Allocated storage should be 5GB
• Database port should be 3306
• DB security group should be “default”. Note, make sure that it authorizes the connection:
• Take a note of your master user name (e.g. root) and password
• Take a note of the “endpoint of the DB instance,” which is the host name of your MySQL
• Database and table names are ***** *****
• To connect to your DB instance, you will need to install a MySQL client in your
computer. MySQL workbench is one of the best tools. You may download it from the
following link: http://www.mysql.com/downloads/workbench/
Your program 3 may follow the similar structure of the sample programs we discussed on the
textbook (Section 19.11, page 694). For your convenience, I posted the sample programs
(dynamicForm.zip and MailingList.sql) on Canvas. It is connecting to a MySql DB instance at
the AWS. You can deploy it to the AWS Elastic Beanstalk in the same way as you did in project
You may develop, debug, and test your project using the AWS Elastic Beanstalk. However, it is
not very convenient. I suggest that you install the XAMPP on your personal computer, see the
instruction on the textbook Section 17.6, page 611. Then, you can develop and test your program
locally. When all done, you can then deploy it to the AWS.