8 Pages
2111 Words
Introduction Of Web Development Project: Server-Side and Client-Side Technologies
This project requires an in-depth knowledge of both “server-side and client-side technologies” as well as the capability to overcome the numerous difficulties they offer. This research examines the learning outcomes (LOs) for web development in this context, highlighting the vital abilities and information needed in this field. Vinyl records are sold by the fictitious “Northumbria Music Company (NMC)”. In that aspect, further tasks have been done to develop the required website for the company.
Task 1 - Administrator functionality
1.1 Listing Records:
Figure 1.1: Listing records
The database dynamically creates an ordered list of all records, sorted by “record title”. This list, which excludes the publisher, contains crucial information like “record title” and “category description”. For simple navigation, each record in the list is given as a clickable link.
1.2 Editing Records:
An administrator is taken to the edit page (edit_record.php), where a form with the record's data is shown when they click on a record's title. All editable record characteristics have input fields on the form, and the pre-filled values are for the current values.
Figure 1.2: Editing records
Except for “recordID”, administrators can change the record's “recordTitle”, category, publisher, and other information (Ouahbi et al. 2021). PHP is used to implement “server-side data validation” and security checks. To avoid the introduction of malicious code, data input is cleaned.
1.3 Updating Records:
Administrators can submit the form after making the required changes. In the update_record.php script, the system evaluates the provided data, verifying it and updating the database.
Figure 1.3: Updating records
Figure 1.4: Update done
In order to defend against SQL injection attacks, data is changed using SQL-prepared statements with parameter binding. Administrators are led back to the list of records after a successful modification.
Task 2 – Login Web Server
The process of authentication is responsible for involving the subsequent essential elements:
2.1 Form Elements
Figure 2.1: Login Page
Users must provide their username and password in order to access the system. In the “nmc_users database table”, usernames and their accompanying hashed passwords are kept.
2.2 Logon Script (login.php)
Figure 2.2: Login Script Validation using Java Script
The login script determines if the entered username is present in the database after form submission (Sotnik et al. 2023). If it does, it checks the entered password against the password that has been hashed and saved using PHP's password_verify function. A session variable “($_SESSION['user'])” is set upon successful authentication to keep the user logged in.
2.3 Session Management
Sessions are used to keep track of user login progress. A session variable is set and checked on each page to see if the user is authorized when a user successfully signs in. Additionally, a logout functionality that ends the session is available and is implemented in a separate logout.php script.
2.4 Data Validation and Security
By implementing server-side data validation and cleaning, the system gives data security first priority. To guard against potential SQL injection threats and guarantee data integrity, user inputs are extensively checked. Before being stored, passwords are hashed using PHP's password_hash function, and secure password validation is performed at login using password_verify (Thakur and Dhiman, 2021).
Task 3 – Server-side data validation and making data safe
The researcher has developed extensive data validation techniques across the whole program. Before being uploaded to the database, this involves ensuring that the data that users have input or chosen is accurate. The researcher checks that no blank fields were entered. Users are asked for the necessary information, assuring the accuracy of the data.
Figure 3.1: Data validation for empty field
Suitable “validation rules” have been involved in each information field to make sure the data submitted complies with the desired data kinds and length restrictions. For instance, text fields have a maximum number of characters and numeric fields must only include valid integers. To protect against potential SQL injection attacks and other security risks, security measures have been put in place.
Task 4 - Select record(s) page
The "I have read and agree to the terms and conditions" text is formatted differently thanks to JavaScript. The text colour turns to black and the bold style is dropped when the user selects the terms and conditions checkbox (Yadav et al. 2019). Unchecking the checkbox causes the text to revert to its previous red-and-bold style.
Figure 4.1: Record Page selection
Figure 4.2: Record Page selection
Figure 4.3: Order Record Page
The code makes sure that the submit button is blocked until the terms and conditions checkbox has been chosen by the user. This stops form submissions that do not acknowledge and agree to the terms and conditions. The code disables form submission if specific requirements are not satisfied in order to guarantee data accuracy. It specifically checks to see if the terms and conditions checkbox is ticked, the forename and surname sections are filled out, and at least one record checkbox is chosen. The overall price of the order is determined dynamically using JavaScript. The total cost is determined by taking into account both the distribution method (radio button) and the checked record options. The overall price is reset to zero if all inspected records are removed.
Task 5 – Home page
5.1 Navigation Links
The homepage acts as the website's primary centre for navigation. Links to other pages on the website are available via a navigation menu on the page. By doing this, users are guaranteed smooth access to all of the website's areas and material.
Figure 5.1: Navigation
5.2 Special Offers Using AJAX:
The researcher utilizes “AJAX (Asynchronous JavaScript and XML)” to send a request to the getOffers.php script as soon as the home page loads. The script returns special offers in JSON format after retrieving them from the database (Muliono, 2021). The researcher analyses the JSON data and dynamically shows it on the main page in an aside> element with the ID "offers." The record title, category description, and price are all included in the special offers that are presented, and they are all properly written using HTML tags like headers and paragraphs. This guarantees a display of the offers that is well-organized.
Figure 5.2: Using AJAX for automatic special offer display
The researcher has created an automated refresh system utilizing JavaScript's setInterval function to keep the special offers interesting and engaging. A fresh AJAX request is performed to “getOffers.php” every 5 seconds to retrieve a new promotional deal. This deal is then presented in the 'offers' sidebar and is dynamically updated. Users are kept interested and motivated to investigate the site's exceptional offerings thanks to this regular update. These features provide a responsive and user-friendly home page since they are created using pure JavaScript and adhere to the concepts covered in this module. The dynamic presentation of special offers improves the user experience and increases the website's appeal to users.
Task 6 - Credits page
The website that was built fulfils the functions of introducing the author and acknowledging the sources that helped shape the work. The “author's name and student ID” are included in the "Personal Information" section, making it easy to identify who created the website.
Figure 6.1: Credits Page
The external references that contributed to the creation of the project are acknowledged in the "Credits and Sources" section. For each source, the title, author, and URL are provided along with a brief explanation of how the source influenced the work. Transparency is ensured, and the resources used are properly acknowledged (Yenduri and Al-khassaweneh, 2022). A header and footer are also included on the page to improve its organization and quality. The year, the copyright symbol, and other information are included in the footer.
Conclusion
These results serve as a summary of the key elements of web development that have been covered in this research. The significance of comprehending the subtle differences between server-side and client-side technologies while being cognizant of the difficulties involved. By focusing on the actual use of these technologies as well as the crucial consideration of security considerations. The importance of choosing the appropriate tools, techniques, and technologies to meet web development difficulties is highlighted. Adhering to standards is essential for producing web apps that are reliable and interoperable. Further, it emphasizes the necessity of strong project management abilities and the capacity for autonomous work. Working on complex projects is a common part of web development, and effective time and resource management are essential for success.
References
- Muliono, R., 2021. Web-Based Library Information System Design at SDN 056004 Basilam. Journal of Research Computer Science, 1(1), pp.14-26.
- Ouahbi, I., Darhmaoui, H. and Kaddari, F., 2021. Gamification Approach in Teaching Web Programming Courses in PHP: Use of KAHOOT Application. International Journal of Modern Education & Computer Science, 13(2).
- Sotnik, S., Manakov, V. and Lyashenko, V., 2023. Overview: PHP and MySQL Features for Creating Modern Web Projects.
- Thakur, A. and Dhiman, K., 2021. Chat Room Using HTML, PHP, CSS, JS, AJAX. arXiv preprint arXiv:2106.14704.
- Yadav, N., Rajpoot, D.S. and Dhakad, S.K., 2019, November. LARAVEL: a PHP framework for e-commerce website. In 2019 Fifth International Conference on Image Information Processing (ICIIP) (pp. 503-508). IEEE.
- Yenduri, R. and Al-khassaweneh, M., 2022, May. PHP: Vulnerabilities and Solutions. In 2022 2nd International Mobile, Intelligent, and Ubiquitous Computing Conference (MIUCC) (pp. 391-396). IEEE.