Final Project Overview
For the final project you will create a full stack, database-driven web application that uses the all languages taught in this class (HTML, CSS, JavaScript, PHP, SQL). Your web application may be on any topic, as long as you satisfy the requirements below. Your web application must work on itpwebdev.com or a different valid domain if needed. The final project is due on 12/09 12/10 at 11:59pm.
Requirements
General Requirements
- Create a folder named
final_project
and save all project files into this folder.
- You must build this web application using the technologies taught in this class (HTML, CSS, JS, SQL, PHP).
- This must be a fully functioning, polished web application that is uploaded to the itpwebdev server. This means:
- No JS/PHP/SQL errors should be displayed.
- All pages are working properly (no 500 or 404 errors).
- No extraneous text used during development (e.g.
var_dump()
strings).
HTML/CSS Requirements
- At least four (4) distinct pages
- It is up to you on how to design each of the pages. However, each page must have substantial and real content that support the topic of your web application.
- “Coming Soon” pages do NOT count as a real page.
- Confirmation pages do NOT count as a page (e.g.
add_confirmation.php
that displays a success message that users have added a record into the database successfully).
- Original layout
- Come up with your own layout (UI) and workflow.
- Do not use class examples, labs, or assignments with modified content. This will result in 0 (zero) score.
- You may use Bootstrap or other CSS frameworks but you may NOT use an HTML template or copy the exact design of an existing website.
- Navigation menu & logo
- A distinct navigation menu that exists in all pages of the application.
- A logo that exists in all pages of the application. The logo can be text or an image.
- External stylesheet
- At least one (1) external stylesheet that includes CSS that is shared among multiple pages (e.g. CSS for the navigation menu).
- All other CSS can be written in internal stylesheets or its own external stylesheet.
- Consistent design
- All pages must have a similar structure (header, navigation, footer, etc.).
- Consistent look and feel (such as colors, fonts, etc) used throughout the pages.
- Intuitive User Interface (UI)
- Clickable elements should be clearly marked,
- All links take users somewhere, even if it’s a Coming Soon page (no dead links),
- Responsive design
- All pages must look polished on mobile, tablet and desktop devices. No squished or unreadable text, elements going off screen, etc. Graders will check each page in each of these device sizes:
- Mobile: (0 – 767px)
- Tablet: (768px – 991px)
- Desktop: (992px and larger)
- Mobile-first approach is recommended, but not required.
- Correct and error-free code
- HTML Validation:https://validator.w3.org/.
JavaScript Requirements
- Any user input must be validated first by JavaScript, even if server side will also do validation.
- Interactivity
- Must implement at least one event handler (click, hover, keypress, etc) for a meaningful interaction in at least one page that is NOT related to input validation.
- You may use jQuery.
Database Requirements
- Design (and normalize) your own database.
- Do not use the song, DVD, or football databases from lectures, assignments, or labs.
- At least three (3) tables and two (2) table relationships.
- Populate the database with sufficient data.
- There must be at least 10 rows in at least one table.
- If implementing pagination, the database needs to have enough records to show few pages.
- You can use data from other sources, such as:
- https://www.data.gov/
- https://data.ca.gov/
- https://data.lacity.org
- https://geohub.lacity.org
PHP Requirements
- Use MySQLi to connect and interact with the database.
- All MySQLi errors as discussed in class are checked and handled.
- CRUD functionality
- Web application needs to Create, Retrieve, Update, and Delete records from the database.
- You can allow any user to CRUD or only allow privileged users to perform certain actions (e.g. only admin users can delete records).
- Handle any user input errors, even if JavaScript already does so.
Project Extras
Choose to implement at least two (2) of the following extras:
- JSON/ JSONP API or REST (Server-Side) API,
- You cannot use an API demoed in class or used in your assignments or labs (e.g. Movie DB, iTunes, etc)
- List of Public APIs
- JS library, plugin, or framework (jQuery does not count)
- PHP library or framework
- CSS / JS Animations:
- Must be more complex than simple transition from one CSS property to another. Good rule of thumb: transition at least two properties. Some examples:
- https://codepen.io/matchboxhero/pen/EwdmmP?editors=1100
- https://codepen.io/benstanley/pen/icqok
- Different User Permission Levels:
- At least three levels: general (everyone), registered users, admin (privileged) users
- For example:
- Everyone is able to browse the database
- Registered users can create new records (blog posts, comments, etc). Registered users only able to edit or delete their own records.
- Admins able to perform CRUD on entire database.
- Frontend ↔ Backend AJAX ( JavaScript ↔ PHP )
- Sessions or cookies not related to registration or login
- Pagination
- Web Storage
- File Upload
- Other – consult the instructor.
Final Project Summary
- When finished with the final project, write up a project summary by filling out one of the templates.
- MS Word Doc
- Google Doc (Click File -> Make a copy to make a copy of it to your own Google Drive. Then fill it out).
- Save this as a PDF and upload it to the itpwebdev server.
- Link the PDF on your
student_page.html
. Label it “Final Project Summary.”
Submission
- Upload the
final_project
folder with all of its contents to the itpwebdev server via FileZilla.
- Link the final project homepage to your
student_page.html
.
- Pro tip: there is ALWAYS issues when uploading files to the “live” web server. Give yourself plenty of time to upload (i.e. don’t upload to the itpwebdev server 5 minutes before the deadline).
- “But it works on my computer” is not an acceptable excuse. This is a web application – it must work correctly on the web and must be accessible to anyone with Internet.
Past Final Projects
Below are several different types of web applications but all of them met the basic requirements. Get as creative as you’d like. Treat this like a project that you want to use to show off to potential employers 🙂