- Part I :
Functional site registration & login (Items 2a – 2e below)
Part II
All other components below
Description: Content Management Site - you are making a "web site builder" (similar to WordPress) that allows users to manage their own web site content and navigation
In this assignment you will use PHP, HTML, and SQL to:
Build a password protected admin site
Allow admin users to add, edit, select, and delete web page records in a database
Create a public web site where the page links and content are displayed
Document your code with comments within your scripts
Incorporate a basic CSS-based site design
Application Requirements:
1. Document each section of your PHP scripts with comments. You do not need to document every single line.
2. Build a site control panel with pages to:
a. Allow both you and me to register as admin users of your site.
i. Passwords must be hashed.
ii. All inputs must be validated.
iii. Email addresses should be validated as properly-formatted emails.
iv. 2 users cannot sign up with the same email address
b. Log in to your admin site
c. List registered users of the admin site
d. Edit a new admin user
e. Delete an admin user, preceded by a confirmation page
f. Ability to list / add / edit / delete web pages from your database. Each page needs a title and content. *** NOTE: each "page" is really just a record in your database ***
g. All admin pages must be password-protected
h. Area to upload a site logo which should appear in the header of all admin and public pages
i. Handle errors on any database operation so users do not see error mesages. Use Bound Parameters and Try Catch blocks and email yourself any error messages.
3. Create a public web site that includes:
a. A common header. Header must include a navigation bar that is populated by the Page Names listed in your database (this is managed through your site admin panel. So if I add a new page or change a page name in the admin panel it will update the public navigation bar automatically.)
b. A common footer with contact information
c. A content-managed site so that the only page that loads is called “default.php”. This page takes a querystring parameter that indicates which page ID is being requested. The page title, and content will then be selected from the database based on the page ID. If a page is edited in the admin panel the changes should automatically be reflected on the public site. So the links in your navigation bar may look like this:
i. Home (links to default.php?id=1)
ii. About (links to default.php?id=2)
iii. Services (links to default.php?id=3)
iv. Contact (links to default.php?id=4)
d. Your site needs to include at least 5 public pages which are created and managed through your site control panel.
e. Page content which you will populate in your site control panel can be fairly be basic but should reflect content of a typical business. The business type is up to you and can be fictitious.
f. Handle errors on any database operation so users do not see error mesages. Use Bound Parameters and Try Catch blocks and email yourself any error messages. A 404 page is also required.
A clean, consistent design layout, incorporating an attractive colour palette and consistent use of colour and fonts. This does not have to be fancy but the site should look professional and render consistently in Internet Explorer 8+, Firefox, Chrome, and Safari.