For this Part, you will need to build a fully working web application prototype. This prototype will

include all the features listed in the instructions section of this document but based on your own
design and user interface layout. Make use of your lecturer’s feedback on Part 1 to improve on
your planned web application.
1. Create a database using PHPMyAdmin and name the database ClothingStore. The database
may consist of the following tables:
 tblUser
 tblAdmin
 tblAorder
 tblClothes
or use the ERD tables you created in Part 1. Simplify the design by analysing the
relationships among the tables. Ensure that you create the necessary primary keys and
foreign keys coding the constraints as dictated by the ERD design.
2. Create a connection to the clothesStore database:
 Create a text file userData.txt and populate the text file with at least five fictitious
entries, e.g., John Doe j.doe 29ef52e7563626a96cea7f4b4085c124. C.
 Use the console or phpMyAdmin and load the text file manually into the table.
 The code that creates the connection must be saved in a file called DBConn.php.
 Create a script called createTable.php that will check if the tblUser exists and if it
does, delete the table and (re)create the table and load the data into the table using
userData.txt file as a source file.
 Embed the DBConn.php as an include file within the createTable.php script.
 Each time the script is executed the table will be deleted if it exists and reloaded with
the data stored in the textfile.
3. Create a login page for your web application. The login page must:
 Accept a username and email address.
 The password must be compared to a hash (e.g.,
29ef52e7563626a96cea7f4b4085c124) in the tblUser table.
22; 23; 24 2024
© The Independent Institute of Education (Pty) Ltd 2024
Page 15 of 31
 When clicking the submit button, use HTML5 for validation. Textboxes and the
password from the login details must be compared to the stored hashed password
value in the MySQL database.
 If the validation confirms that the password is valid, then display the user’s data using
an associative read approach regarding the column names in a table. However, if the
password is incorrect, then use a sticky form and redisplay the details entered
allowing the user to edit the fields instead of re-typing all the fields. Display a string at
the top of the page that identifies the user and reads: “User John Doe is logged in”.
 If the user does not exist, they can register themselves and create the hash and login.
Once a user is registered Administrators need to verify if the user is a customer. A
user won’t be able to login instantly, unless verified. A new user registration would be
pending until verified.
4. Create a login page for the admin:
 When the user clicks the “Admin” button, the user must be prompted to login with
administrator rights, unless the user with those rights is already logged in.
 Verify new customer registrations.
 The admin user should be able to add, update and delete customers.
5. Export your structure of each table to a Word file as part of your POE documentation.
6. Create a text file for data on each base table and populate the text file with at least five
fictitious entries for each base table.
7. Use the console or phpMyAdmin and load the text file (data) manually into each base table.
8. Export the database structure to a text file called myClothingStore.sql with the DDL
statements so the lecturer can use the sql-text file to create your database with 30 entries
for each base table.
9. Create a script loadClothingStore.php that will create the tables within the ClothingStore
database. Ensure that all tables are dropped before creating them and that a table is created
only if it does not exist. Use mysqli or improved mysql to create your connection in an include
file. Hint: Export your database to an SQL file and use the exported code in association with
PHP code.

22; 23; 24 2024
© The Independent Institute of Education (Pty) Ltd 2024
Page 16 of 31
NB: You must create a demonstration video showing the web application on a browser. For the
video, make sure that you show the app performing the following functions:
 The user must be able to register using the application. This registration information must be
stored in a MySQL database.
 The user must be able to login to the application using their username and password.
 All registration fields must be required fields, cannot be left be a blank field when the user
registers on the application.
 Display the Administrator verifying the user as a customer and finally allowing them to login.
 Also show the code associated with the above functionalities.

I'm sorry but I can't physically build a web application prototype as I am a text-based AI assistant. However, I can provide guidance, code snippets, and answer any questions you may have while building your web application prototype. Let me know how I can assist you further!

Create a database using PHPMyAdmin and name the database ClothingStore. The database

may consist of the following tables:
 tblUser
 tblAdmin
 tblAorder
 tblClothes
or use the ERD tables you created in Part 1. Simplify the design by analysing the
relationships among the tables. Ensure that you create the necessary primary keys and
foreign keys coding the constraints as dictated by the ERD design.
2. Create a connection to the clothesStore database:
 Create a text file userData.txt and populate the text file with at least five fictitious
entries, e.g., John Doe j.doe 29ef52e7563626a96cea7f4b4085c124. C.
 Use the console or phpMyAdmin and load the text file manually into the table.
 The code that creates the connection must be saved in a file called DBConn.php.
 Create a script called createTable.php that will check if the tblUser exists and if it
does, delete the table and (re)create the table and load the data into the table using
userData.txt file as a source file.
 Embed the DBConn.php as an include file within the createTable.php script.
 Each time the script is executed the table will be deleted if it exists and reloaded with
the data stored in the textfile.
3. Create a login page for your web application. The login page must:
 Accept a username and email address.
 The password must be compared to a hash (e.g.,
29ef52e7563626a96cea7f4b4085c124) in the tblUser table.
22; 23; 24 2024
© The Independent Institute of Education (Pty) Ltd 2024
Page 15 of 31
 When clicking the submit button, use HTML5 for validation. Textboxes and the
password from the login details must be compared to the stored hashed password
value in the MySQL database.
 If the validation confirms that the password is valid, then display the user’s data using
an associative read approach regarding the column names in a table. However, if the
password is incorrect, then use a sticky form and redisplay the details entered
allowing the user to edit the fields instead of re-typing all the fields. Display a string at
the top of the page that identifies the user and reads: “User John Doe is logged in”.
 If the user does not exist, they can register themselves and create the hash and login.
Once a user is registered Administrators need to verify if the user is a customer. A
user won’t be able to login instantly, unless verified. A new user registration would be
pending until verified.
4. Create a login page for the admin:
 When the user clicks the “Admin” button, the user must be prompted to login with
administrator rights, unless the user with those rights is already logged in.
 Verify new customer registrations.
 The admin user should be able to add, update and delete customers.
5. Export your structure of each table to a Word file as part of your POE documentation.
6. Create a text file for data on each base table and populate the text file with at least five
fictitious entries for each base table.
7. Use the console or phpMyAdmin and load the text file (data) manually into each base table.
8. Export the database structure to a text file called myClothingStore.sql with the DDL
statements so the lecturer can use the sql-text file to create your database with 30 entries
for each base table.
9. Create a script loadClothingStore.php that will create the tables within the ClothingStore
database. Ensure that all tables are dropped before creating them and that a table is created
only if it does not exist. Use mysqli or improved mysql to create your connection in an include
file. Hint: Export your database to an SQL file and use the exported code in association with
PHP code.

22; 23; 24 2024
© The Independent Institute of Education (Pty) Ltd 2024
Page 16 of 31
NB: You must create a demonstration video showing the web application on a browser. For the
video, make sure that you show the app performing the following functions:
 The user must be able to register using the application. This registration information must be
stored in a MySQL database.
 The user must be able to login to the application using their username and password.
 All registration fields must be required fields, cannot be left be a blank field when the user
registers on the application.
 Display the Administrator verifying the user as a customer and finally allowing them to login.
 Also show the code associated with the above functionalities

This is a detailed set of tasks to create a web application with database functionality. I will provide you with an example of how you can create the database structure and implement the login functionality using PHP and MySQL.

1. Database Creation:
First, create a database named "ClothingStore" in PHPMyAdmin. You can create the following tables: tblUser, tblAdmin, tblAorder, and tblClothes. Here is an example of how you can create the tblUser table:

```sql
CREATE TABLE tblUser (
userID INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
password VARCHAR(255) NOT NULL
);
```

2. Connection to the Database:
Create a file named DBConn.php and add the following code to establish a connection to the ClothingStore database:

```php
<?php
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$database = "ClothingStore";

$conn = mysqli_connect($servername, $username, $password, $database);

if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
?>
```

3. Create User Login Page:
Create a login page where users can enter their username and password. Validate the input and compare the hashed password with the one stored in the tblUser table. Here is a basic example of the login functionality:

```php
<?php
session_start();

include 'DBConn.php';

if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST['username'];
$password = $_POST['password'];

$hashedPassword = hash('sha256', $password); // Hash the entered password

$sql = "SELECT * FROM tblUser WHERE username='$username' AND password='$hashedPassword'";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) == 1) {
$row = mysqli_fetch_assoc($result);
$_SESSION['username'] = $row['username'];
echo "User " . $row['username'] . " is logged in";
} else {
echo "Username or password is incorrect";
}
}
?>
```

4. Admin Login Page:
Create a separate login page for admin users with similar functionality as the user login page but with additional features for verifying and managing customers.

This is just a basic example to get you started. You can expand on these functionalities to include user registration, admin verification, and customer management as described in your requirements.

Remember to securely hash passwords before storing them in the database and always sanitize user input to prevent SQL injection attacks.