PHP project
ITIS345/ITIS477 Group Project Second Semester 2021-2022
University of Bahrain
College of Information Technology
Department of Information Systems
ITIS345/ITIS477 Web Design and Development II
Course Project Developing a Complete PHP Web Application
Online Shopping Store
Project Deadline: 12 May 2022
Group number Student ID Student Name
Mark Distribution :
Assessment Maximum Mark scored mark
Report
Total: 12 %
Report structure, layout, language, and format.
2 %
Web site users and user Session 2 % Security (MD5 and SQL Injection Protection)
2 %
Country Currency and Exchange Rates (Web Service)
2 %
Country Preference in the Cookies
2 %
Appendix: source code 2 %
Presentation 6 %
Peer Review 2 %
Total 20 %
Description
The decision of the web development path has become a challenge and requires adopting the best
practices and studying available roadmaps to achieve the expected outcomes. “PHP (recursive
acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting
language that is especially suited for web development and can be embedded into HTML…PHP is
mainly focused on server-side scripting” (PHP Introduction, n.d.)
It is widely used, flexible, and provides multiple integration opportunities with different platforms and
technologies. Developing a complete web application including front-end and back-end technologies
ITIS345/ITIS477 Group Project Second Semester 2021-2022
as one team is one of this course learning outcomes. Accordingly, solving specific business
requirements - like having an online shopping gateway for a store - through building a php-based web
application would put you on the right track towards becoming a professional developer and achieving
this course outcomes.
Task
Group members are required to configure the provided project base files and the MySQL database.
You can refer to the Readme file for some guidelines.
“Online Shopping Store” is a php web-based application that will allow website visitors to browse for
products, add products to cart, and place orders.
Your objective is to enhance the system to provide the necessary features to enable the users to use it
seamlessly and intuitively.
Business Requirements
A store needs to provide a web-based application for public so they can purchase goods and products
online without having to go to the store in-person. Users should be able to browse goods and products
and add them to their cart without having to register, but they should register before they can
proceed with placing orders. Web site users should be able to select the required country, so all prices
get displayed in the selected country currency with proper exchange rate conversion, assuming having
all prices stored in the database in US dollar. Exchange rates should be pulled from accurate sources in
the web and should reflect current rates. Users can have the ability to store their country preference.
The system should be secure, and users’ information should be securely stored in the database.
Online Shopping Store Application
- Web site users and user session:
Web site users should be able to browse products and add them to their cart, even without signing-in. But once satisfied with their items, they should be asked to sign-in or register before they can proceed with placing the order. The home page should have a “Sign-in” or “Sign-out” links so users can sign-in/sign- out if they want to. Sign-in page should allow users to sign-in, and new users should be able to Register if they are not, so they are added to the store database. Use Session State to manage individual user sessions, and make sure to kill the session upon user sign-out.
- Security:
“The MD5 Message-Digest Algorithm: "The MD5 message-digest algorithm takes as input a message of arbitrary length and produces as output a 128-bit "fingerprint" or "message digest" of the input.” (PHP md5() Function, n.d.) Use md5 function - with salting - to store users’ passwords securely in the database. Moreover, the system should be protected from SQL Injection. Make sure to implement these techniques to all applicable database operations.
ITIS345/ITIS477 Group Project Second Semester 2021-2022
Country Currency and Exchange Rates:
Users should be able to select the preferred country from a drop-down list of countries. Then based on the selected country currency, the exchange rate with respect to US dollar should be taken from the result of the following web service: https://open.er-api.com/v6/latest/USD The above web service is an open API and can be used without an API key. Once you get the rate, replace all prices on the page with the new values calculated based on the exchange rate. Use PHP NumberFormatter class to format the prices with the selected currency using formatCurrency method. You can refer to the documentation on: https://www.php.net/manual/en/numberformatter.formatcurrency.php Configuration and Sample code is also available in the Readme file.
- Country Preference in the Cookies: Use cookies to store user preference of the country for currency calculations. Then the system should retrieve this information to change the prices in the web site whenever the user visits the site again.
Groupwork Progress and Distribution
• Each group should have 4 members that work together. Members should exchange communication
details.
• Group members should work together and set a semi-weekly (twice a week) meeting to discuss their
work and assignments. More time will be required to assemble and finalize the report.
• A shared folder between the members should be created for project-related work.
• While the work will be distributed amongst the group members, all should contribute to every
aspect of the project. “Slacking” is not tolerable.
Report
The report should be original, well written, and neatly formatted. It should cite various resources in addition to the official. The report should use paraphrasing with proper referencing using a common referencing standard such as ACM, IEEE, or APA. The report expected length is 2500 words excluding references and source code. The report content may vary. For a general guide have a look at the University of Leicester Writing Report Study Guide1.
1 https://libguides.reading.ac.uk/reports/structuring
ITIS345/ITIS477 Group Project Second Semester 2021-2022
The report should include:
• Cover page stating the members, course, and section, topic as well as the group number.
• The report must be evenly formatted and include page numbers.
• Any figures, tables, or charts must be numbered.
• References most be formatted properly. Report content should cover the following sections with explanation and implementation method, you need to illustrate important snippets of your “php source code” for each section clearly:
• Web site users and user Session
• Security (MD5 and SQL Injection Protection)
• Country Currency and Exchange Rates (Web Service)
• Country Preference in the Cookies
• Appendix: Source Code
All reports will be subjected to plagiarism detection tools to ensure the authenticity of the content.
Presentation
In addition to the report, a max of 15-minute presentation summary should be recorded and submitted with the project. It should highlight the important points and findings. The presentation aids can be slides, code snippets, and diagrams only (no videos from other sources). You must record a walkthrough of the system, each group member must present, and the full presentation should be edited and submitted as one video. Some of the video presentation tools:
• Open Broadcaster Software (Freeware) https://obsproject.com/ OR
• Debut Video Capture and Screen Recorder Software (Free Trial / full version is around 13 BD): https://www.nchsoftware.com/capture/index.html
Deadlines & Deliverables
• Report
o Upload soft copy (Word and Adobe PDF) (Upload link will be provided)
• Recorded Presentation (including System Walkthrough):
o Upload video file (Instructions will be provided)
• Peer Reviews:
o Each student should review and rate two of colleagues’ presentations via an online form.
(Instructions will be provided)
ITIS345/ITIS477 Group Project Second Semester 2021-2022
Assessment Criteria and Marking Scheme
Marks Category Marked Items Description
12 Report • Report content and structure: o Web site users and user Session o Security (MD5 and SQL Injection
Protection) o Country Currency and Exchange Rates
(Web Services) o Country Preference in the Cookies o Appendix: source code
• Report layout, language, and format
6 Presentation Video (including System Walkthrough)
• Presentation content
• Presentation flow and language
• System Walkthrough
2 Peer Ratings (each student)
• 2 peer ratings
Bibliography
PHP Introduction. (n.d.). Retrieved from php: https://www.php.net/ PHP md5() Function. (n.d.). Retrieved from w3schools:
https://www.w3schools.com/php/func_string_md5.asp