Please Read Carefully

Final Project

Files Due: May 13 before midnight   ---  Presentations: May 9

Final Project Rubric

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.

doctype html5
<?php /*php*/ ?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    
</body>
</html>

Final Project Presentations

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%.


Final Project Submission

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 Project Grade Distribution

Final Proposal2.5%
Final Project15%
Final Presentation2.5%
20%