SSWDPP401 - PHP Programming
SSWDPP401 - PHP Programming
SWDPP401
BDCPC301 - Apply PHP Programming
Competence
RQF Level: 4 Learning Hours
130
Credits: 13
Sector: ICT and Multimedia
Learning assumed
to be in place
Practical work:
Group project
Formative
Delivery modality and 20% 50%
70% assessment 70%
presentation
Individual project
50%
/Work
1|Page
Elements of Competence and Performance Criteria
2. Connect PHP to the 2.3 Security is effectively enforced based PHP data protection
Database standards
2.4 Errors and exceptions are correctly handled based on error handling
standards
2|Page
3.5 CMS Errors and Logging is properly detected based on CMS security
3|Page
Course content
Learning outcomes At the end of the module the learner will be able to:
Indicative content
4|Page
XAMPP
WAMP/MAMP/LAMP
IDEs /Text Editors
Browser
Installation of XAMPP/WAMP or LAMP
Configuration of environment
Ports
Browser
Services
IDEs Extensions
5|Page
Function recursion
Super Global variables
PHP file handling
Opening a file
Reading a file
Writing a file
Closing a file
Deleting a file
Equipment Computer
Books
Materials Tutorials
Internet
6|Page
textditor
IDE
Tools
Browser
Xampp/Wampp
Indicative content
Input Validation
Password Security
7|Page
Cross-Site Scripting (XSS) Prevention
Cross-Site Request Forgery (CSRF) Prevention
Session Security
File Uploads
Error Reporting
Start a session
Authenticate the user
Protect pages
Equipment Computer
Books
Materials Tutorials
Internet
textditor
Tools IDE
Browser
8|Page
Xampp/Wampp
Indicative content
9|Page
Work with sessions
Set and read session values
Unset Session
Application of Context and Options
The public content
Skip hidden subjects and pages
Use an option for conditional code
Insecure direct object reference
Project page visibility
Allow html in dynamic contents
Regulate page access
User authentication overview
Create admins table
Build admin Dashboard
PHP password functions
Authentication user access
Require authorization
Log out user
Optional password updating
Authorized previewing
CMS Errors Detection
Description of CMS Errors
Application of Errors testing
Maintain CMS
Regular updates
Plugin and module updates
Regular backups
Database optimization
Security measures
10 | P a g e
Performance monitoring
Equipment Computer
Books
Materials Tutorials
Internet
Textditor
IDE
Tools Browser
Xampp/Wampp
Scratch
11 | P a g e
Learning outcome 4: Build a web app using MVC
Learning hours: 28
Framework (LARAVEL)
Indicative content
12 | P a g e
Perform Seeding
Create Views for Laravel CRUD
Laravel CRUD operation routes
Manage APIs In Laravel frameworks
Introduction to API development
RESTful APIs
Understanding RESTful architecture
Building RESTful APIs with Laravel
Test APIs with Postman
Handling HTTP requests and responses
API Resources
Creating API resources
Returning resources as JSON
Encoding API data
Authentication and Security
Implementing API authentication
Best practices for API security
Managing API security
API Versioning and Documentation
Versioning your API
Documenting your API with Swagger/Postman
Best practices for API documentation
Equipment Computer
Books
Materials Tutorials
Internet
Tools textditor
13 | P a g e
IDE
Browser
Xampp/Wampp
Laravel Frameworks
14 | P a g e
Integrated/Summative assessment
Integrated situation
XY Shop is located in Kigali City, Kicukiro District Sales shoes and clothes.
The Shopkeeper (someone who owns or manages a shop) uses a file system (books) to record
stock information. This filling system has a problem with non-efficient security, accessibility, and
integrity of information about the stock-in and stock-out, not only that but also lacks an easy way
to produce a daily/weekly report of the stock.
They hired a database designer who designed the database model that can be used to manage
the stock. The designed database is below:
Tables:
The XY Shop has hired you as a web application developer to develop a web application using
Laravel that enables the Shopkeeper to :
Record/insert the products with the ability to view, modify and delete products.
Generate a report of stock status and the total price of stock-in or stock-out.
Instruction
The shopkeeper must have an account in order to login into the system before starting all
other activities
Create an application directory on your desktop and rename it with your
FirstName_LastName and save your work.
The application is needed in four (4) hours.
15 | P a g e
Resources
Equipment Computer
Ind.1 Required
5
tools are Selected
1.1 Environment is
Ind.2 PHP
properly prepared based
Development
on PHP Requirements 5
Learning
Environment is
outcome
configured
1:Apply PHP
1.2 PHP Concepts are Ind.1 Variables are
Fundament 5
effectively applied Applied
als
based on PHP
Ind.2 Function are
standards. 6
used
Ind.3 Control
statement is 6
Implemented
2.1. Connection is
Learning properly established Ind.1 Database is
6
outcome 2: based on specified connected
database environment
16 | P a g e
Connect 2.3 PHP Security
PHP to the concepts are effectively Ind.1 Cookies and
6
Database applied based on security Session are applied
best practices
Ind.1 Laravel
Framework is 5
4.1. Environment is Installed
properly configured
Ind.2 Laravel. env
based on Laravel 6
file is Configured
Learning Framework Standard
Ind.3. Blade
outcome 3: 2
template is used
Build a web
4.2. Custom routing is
app using
effectively set based on Ind.1 Custom
MVC 6
Laravel Framework routing is applied
Framework
Standard
(LARAVEL)
4.3 Form Data are Ind.1 data
properly validated based validation is 8
on Laravel Framework performed
standard
Ind.2 Form
handling are 6
applied
17 | P a g e
Ind.1. Database is
Configured 5
Ind.4 CRUD
operations are
10
performed
18 | P a g e
References
1. Bierer, D. (2016). PHP 7 programming book. Birmingham B32PB,UK: Pack publishing
LTD.
4. JavaTpoint. (2023, may 6th saturday). javatpoint. Retrieved from javatpoint tutorial:
https://www.javatpoint.com/
7. Otwell., a. (2023, may saturday on 6th). The PHP Framework for web artisan. Retrieved
from laravel official website: https://laravel.com/docs/10.x
8. popel, D. (2007). Learning data object. Luna park sydney: pack publisher.
19 | P a g e