Your final project will consist of a final project proposal paper, a
webapp, and a presentation of your final project. The idea and theme of
your webapp will be entirely up to you, however there will be some
requirements to your webapp that will be based off of lectures:
php, MySQL database, Session Managment, User login/logout, etc.
(extras:
Bootstrap,
jQuery, and
jQuery User Interface).
Some features of your
webapp are to include a uniformed theme across all of your pages (bootstrap).
Also, to enable user interactivity with your page such as
event handling triggered by a click, keypress, form submission, etc.
Your final project will consists of 4-10 web pages, with each page having
a unique purpose to your site. Your web app must support User Login / Logout
/ Register and handle session management correctly. To register a new
user, you must display a form that will prompt the guest for a
username or email, password, and to confirm the given password. Once
validated, redirect the user to the login page.
Your web app will also
support profile settings (at a minimum) to allow the user to change the
account password. Present a form for the current password, a new password, and
to confirm the new password. If valid and authenticated, update the user's
password within your Users table. You are welcome to add more features for
profile settings.
Your web app's home page must differ somehow for
authenticated users and guests, in addition to the navigation. Redirect
any un authenticated user to home if a user attempts to access a page
that shouldn't be accessible. (ex. guest accesses profile settings →
redirect to home page).
You web app must populate some page content by querying
a MySQL databse table. For example, in project 2, store.php
was a view page that displayed all products stored within your Products
table. Other examples might include messages, blogs, forums, grade reports,
chat, etc.
You are also required to sanitize all given user data. Do NOT
use $_POST or $_GET values as is in your scripts or SQL statment
parameters.
Finally, create a text file called tables.txt that will
be similar to Project2. Within this file, perform a mysql describe
and SELECT * FROM <table> for each table used within your
web app.
<?php /*php*/ ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> </body> </html>
Final project presentations will be held on Thurs May 9 10:00am-12:30pm The presentation will be informal, in which you will present and demonstrate your final project to the class for no more than 2-3 minutes. If you fail to present, you will be deducted 2.5%.
Have all of your files and dependencies within
your $~/3680_S19/project3/ directory (odin).
All dependencies, such as bootstrap, jquery, images, php scripts,
connect.php, or anything else will be local to
the server → no remote images or CDNs for libraries.
Remember to use good web development practices,
such that all pages have a <title>
, HTML is semantic,
CSS is well organized, images have been sized/optimized and have
appropriate text alternative
<img src='img.jpg' alt='my image'>
, and html5 doctype.
I will not accept late projects. If you haven't finished
your project fully, submit it anyway. I will grade what is given.
If you fail to upload the project to the correct directory,
your final project will not be counted as submitted and you will
receive a zero.
Due: May 13 before midnight
Final Proposal | 2.5% |
Final Project | 15% |
Final Presentation | 2.5% |
20% |