Comprehensive Notes on
Applications Development: E-
commerce and Web Applications
Learning Outcome 1: Understand the benefits
of web applications to an organisation
a. The different functions of web applications
Web applications serve various functions within an organization:
1. Information Management: Web applications can organize, store, and
retrieve information efficiently. Examples include content management
systems (CMS), knowledge bases, and document repositories.
2. Communication and Collaboration: Tools like email clients, discussion
forums, and project management platforms facilitate internal and external
communication.
3. E-commerce: Online shopping platforms enable businesses to sell products
and services directly to consumers.
4. Customer Relationship Management (CRM): Systems that manage
interactions with current and potential customers.
5. Business Process Automation: Applications that streamline and automate
routine business processes.
6. Data Analytics and Reporting: Tools that collect, analyze, and visualize
business data for decision-making.
7. Human Resources Management: Systems for recruitment, payroll,
benefits administration, and employee management.
8. Marketing and Sales: Applications for campaign management, lead
generation, and sales tracking.
b. The benefits and drawbacks of web applications
Benefits:
1. Accessibility: Web applications can be accessed from any device with an
internet connection and browser, regardless of operating system.
2. Cost-Effectiveness: Reduced development and maintenance costs
compared to native applications. No need for distribution through app stores.
3. Easy Updates and Maintenance: Updates are deployed on the server,
instantly available to all users without requiring individual installations.
4. Cross-Platform Compatibility: Single codebase works across different
platforms (Windows, macOS, Linux, iOS, Android).
5. Scalability: Can handle increasing numbers of users and data by scaling
server resources.
6. Integration Capabilities: Can easily integrate with other web services and
APIs.
7. Data Centralization: All data is stored centrally, enabling consistent
information access and backup.
Drawbacks:
1. Internet Dependency: Requires internet connection to function, limiting
offline capabilities.
2. Performance Limitations: May be slower than native applications due to
browser limitations and network latency.
3. Security Concerns: Web applications are exposed to various security
threats like hacking, data breaches, and malware.
4. Browser Compatibility: May behave differently across various browsers,
requiring additional testing and development.
5. Limited Access to Device Features: Restricted access to device hardware
and features compared to native applications.
6. User Experience Limitations: May not provide the same level of user
experience as native applications.
c. Assessment of organisational functions that would
benefit from using web technology
1. Communication and Marketing Material Management:
Benefits: Real-time updates, global accessibility, reduced printing costs
Web applications: Content Management Systems (WordPress, Drupal), Digital
Asset Management platforms
2. Web Mail:
Benefits: Accessible from anywhere, reduced infrastructure costs, easier
maintenance
Web applications: Gmail, Outlook Web Access, Zimbra
3. Online Sales:
Benefits: Extended market reach, 24/7 availability, reduced overhead costs
Web applications: E-commerce platforms (Shopify, Magento, WooCommerce)
4. Auctions:
Benefits: Wider audience, automated bidding processes, real-time updates
Web applications: eBay-style auction platforms, specialized auction software
5. Discussions and Forums:
Benefits: Community building, knowledge sharing, customer support
Web applications: Forum software (vBulletin, phpBB), community platforms
(Discourse)
6. Blogs:
Benefits: Content marketing, thought leadership, customer engagement
Web applications: Blogging platforms (WordPress, Medium, Ghost)
7. Submission Systems:
Benefits: Streamlined processes, reduced paperwork, automated workflows
Web applications: Form builders (Gravity Forms, JotForm), specialized
submission platforms
8. Payroll:
Benefits: Automated calculations, reduced errors, employee self-service
Web applications: Payroll systems (ADP, Gusto, Paychex)
9. Project Management:
Benefits: Team collaboration, progress tracking, resource allocation
Web applications: Project management tools (Asana, Trello, Jira)
10. Customer Support:
Benefits: Ticket management, knowledge base, live chat
Web applications: Help desk software (Zendesk, Freshdesk, Intercom)
d. Security and access considerations on web
applications
1. Data Confidentiality:
Implement encryption (SSL/TLS) for data in transit
Use encryption for sensitive data at rest
Apply data masking for sensitive information in non-production environments
2. Account Credentials Protection:
Implement strong password policies
Use multi-factor authentication
Employ secure password storage (hashing with salt)
Implement account lockout mechanisms to prevent brute force attacks
3. Protection Against Criminal Activities:
Implement firewalls and intrusion detection systems
Regular security audits and penetration testing
Web Application Firewalls (WAF) to filter malicious traffic
Security headers (CSP, HSTS, X-Frame-Options)
4. Hacking Prevention:
Input validation and sanitization to prevent injection attacks
Parameterized queries to prevent SQL injection
Content Security Policy to prevent XSS attacks
Regular security updates and patch management
5. Spoofing Prevention:
Implement email authentication (SPF, DKIM, DMARC)
Use CAPTCHA to prevent automated attacks
Implement CSRF tokens for state-changing operations
6. Malware Protection:
Regular malware scanning
File upload restrictions and scanning
Code signing for downloadable content
Content Security Policy to prevent malicious script execution
7. Access Control:
Principle of least privilege
Role-based access control (RBAC)
Regular access reviews
Session management (timeout, secure cookies)
e. Ethical issues and organisational responsibilities
associated with the storage and processing of
personal data
1. Data Privacy and Protection:
Compliance with regulations (GDPR, CCPA, etc.)
Data minimization principle
Purpose limitation for data collection
Secure data storage and processing
2. Informed Consent:
Clear and understandable privacy policies
Explicit consent for data collection and processing
Easy withdrawal of consent
Transparency about data usage
3. Data Accuracy:
Regular data verification and updates
Mechanisms for individuals to correct their data
Clear processes for handling data disputes
4. Data Breach Notification:
Timely notification of affected individuals
Transparent communication about breach impacts
Remediation actions and support for affected parties
5. Ethical Data Use:
Avoiding discriminatory practices in data processing
Fair and transparent algorithmic decision-making
Regular ethical impact assessments
6. Data Retention Policies:
Clear retention periods for different data types
Secure data disposal after retention period
Documentation of retention decisions
7. Third-Party Data Sharing:
Vetting of third-party processors
Data processing agreements
Ensuring equivalent protection standards
8. Employee Training and Awareness:
Regular privacy and security training
Clear guidelines for handling personal data
Reporting mechanisms for privacy concerns
Learning Outcome 2: Understand how to
design and implement a web application
a. Server-side technologies
1. Open Source Languages:
PHP: Widely used for web development, especially with content
management systems like WordPress. Offers easy database integration and
extensive framework support.
Linux: Operating system commonly used for web servers due to stability,
security, and cost-effectiveness.
Perl: Powerful text processing capabilities, though less commonly used for
new web applications.
Ruby: Known for elegant syntax and productivity, popular with the Ruby on
Rails framework.
Python: Versatile language with clear syntax, popular frameworks include
Django and Flask.
2. Microsoft's ASP (Active Server Pages):
[Link]: Microsoft's framework for building web applications and services.
C#: Primary language for [Link] development.
.NET Core: Cross-platform, open-source version of .NET framework.
Visual Studio: Integrated development environment for [Link]
development.
3. Web Application Frameworks:
Django (Python): High-level framework encouraging rapid development with
clean, pragmatic design.
Rails (Ruby): Convention over configuration approach, emphasizing
developer productivity.
Symfony (PHP): Component-based framework promoting reusability and
standardization.
[Link] ([Link]): Minimalist framework for building web applications and
APIs.
Laravel (PHP): Elegant syntax and extensive ecosystem for modern PHP
development.
b. Client-side technologies
1. HTML (HyperText Markup Language):
Semantic markup for structuring web content
HTML5 introduces new elements for multimedia and application development
Forms for user input and interaction
2. CSS (Cascading Style Sheets):
Styling and layout of web pages
CSS3 introduces animations, transitions, and responsive design features
Preprocessors like SASS and LESS for more efficient CSS development
3. JavaScript:
Client-side scripting for interactive web pages
Manipulates DOM elements, handles events, and performs asynchronous
operations
ES6+ introduces modern features like arrow functions, classes, and modules
4. AJAX (Asynchronous JavaScript and XML):
Enables background data exchange with server without page reload
Improves user experience with dynamic content updates
Modern implementations often use JSON instead of XML
5. JavaScript Libraries and Frameworks:
jQuery: Simplifies HTML document traversal, event handling, and animation
React: Component-based library for building user interfaces
Angular: Full-featured framework for building complex applications
[Link]: Progressive framework for building user interfaces
MooTools: Object-oriented JavaScript framework
Dojo Toolkit: JavaScript toolkit for building web applications
c. Visual design and layout, prototyping interfaces and
wire framing
1. Visual Design Principles:
Hierarchy: Visual organization to guide user attention
Balance: Distribution of visual weight
Contrast: Emphasizing differences between elements
Consistency: Uniform design elements throughout the application
White Space: Strategic use of empty space for clarity and focus
2. Layout Techniques:
Grid Systems: Structured approach to layout design
Responsive Design: Adapting layout to different screen sizes
Flexbox and CSS Grid: Modern CSS layout techniques
Mobile-First Design: Designing for mobile devices first, then scaling up
3. Prototyping Methods:
Low-Fidelity Prototypes: Basic wireframes focusing on structure and
functionality
High-Fidelity Prototypes: Detailed representations close to final design
Interactive Prototypes: Simulated user interactions and flows
Rapid Prototyping: Quick creation of prototypes for early feedback
4. Wireframing Tools:
Balsamiq: Simple wireframing tool with hand-drawn style
Axure RP: Advanced prototyping with interactions and conditional logic
Sketch: Digital design toolkit with prototyping features
Figma: Collaborative interface design tool with prototyping capabilities
Adobe XD: Design and prototyping tool for user experiences
5. User Interface Design Process:
Research and analysis of user needs
Information architecture and user flow design
Wireframing and prototyping
Visual design and branding application
Usability testing and iteration
d. Data modelling and web design tools
1. Data Modeling Tools:
MySQL Workbench: Visual tool for database design, development, and
administration
DBDesigner4: Visual database design and modeling tool
Microsoft Visio: Diagramming tool with database modeling capabilities
[Link]: Free online diagramming tool with database templates
Lucidchart: Collaborative diagramming tool with database design features
2. Web Design Tools:
Adobe Photoshop: Image editing and graphic design
Sketch: Digital design toolkit for UI/UX
Figma: Collaborative interface design tool
Adobe XD: Design and prototyping for user experiences
InVision: Prototyping and collaboration platform
3. Mockup and Wireframing Tools:
Balsamiq: Rapid wireframing tool
Axure RP: Advanced prototyping tool
Mockplus: Rapid prototyping and collaboration
Moqups: Online mockup and wireframing tool
4. Code Editors and IDEs:
Visual Studio Code: Lightweight but powerful code editor
Sublime Text: Sophisticated text editor for code
WebStorm: Professional IDE for JavaScript development
Atom: Hackable text editor for the 21st century
Brackets: Modern, open-source code editor
5. Version Control Systems:
Git: Distributed version control system
GitHub: Web-based hosting service for Git repositories
GitLab: Web-based DevOps platform
Bitbucket: Git-based code collaboration and hosting
e. Process of designing and implementing a web
application
1. Requirements Gathering and Analysis:
Identifying stakeholder needs and expectations
Defining functional and non-functional requirements
Creating user stories and use cases
Establishing project scope and constraints
2. Planning and Architecture Design:
Selecting appropriate technology stack
Designing system architecture (monolithic, microservices, etc.)
Creating project timeline and milestones
Resource allocation and team organization
3. Database Design:
Conceptual data modeling (ER diagrams)
Logical database design
Physical database implementation
Data migration strategies
4. UI/UX Design:
User research and persona development
Information architecture design
Wireframing and prototyping
Visual design and branding
5. Backend Development:
Setting up development environment
Implementing server-side logic
Database integration and management
API development and documentation
6. Frontend Development:
Implementing responsive design
Developing interactive user interfaces
Client-side validation
Performance optimization
7. Integration:
Connecting frontend and backend components
Third-party service integration
Payment gateway integration
Content management system integration
8. Testing:
Unit testing
Integration testing
System testing
User acceptance testing
9. Deployment:
Setting up production environment
Configuring servers and databases
Implementing CI/CD pipelines
Monitoring and logging setup
10. Maintenance and Updates:
Bug fixes and patches
Feature enhancements
Performance optimization
Security updates
Learning Outcome 3: Understand the merits
and limitations of open-source software
a. The GNU/Open Manifesto
1. The GNU Manifesto:
Written by Richard Stallman in 1985
Outlines the philosophy behind the GNU Project
Advocates for free software as a matter of freedom, not price
Defines four essential freedoms:
Freedom to run the program as you wish
Freedom to study and change the source code
Freedom to redistribute copies
Freedom to distribute modified versions
2. The Open Source Definition:
Created by the Open Source Initiative in 1997
Provides criteria for open source software licenses
Includes requirements for free redistribution, access to source code, and
permission to create modifications
3. Key Principles:
Transparency and collaboration
Community-driven development
Meritocracy in contribution acceptance
Freedom from vendor lock-in
4. Philosophical Differences:
Free Software Foundation emphasizes ethical aspects and user freedom
Open Source Initiative focuses on practical benefits and development
methodology
Both movements support similar licenses but with different philosophical
foundations
b. Software as a service
1. Definition:
Software delivery model where applications are hosted by a vendor and
accessed over the internet
Subscription-based pricing model
Eliminates need for local installation and maintenance
2. Characteristics:
Centralized hosting and management
Regular updates and maintenance handled by provider
Multi-tenant architecture
Scalability and elasticity
3. Benefits:
Reduced upfront costs
Predictable subscription expenses
Automatic updates and maintenance
Accessibility from any device with internet connection
Scalability based on needs
4. Challenges:
Data security and privacy concerns
Limited customization options
Dependency on internet connectivity
Potential vendor lock-in
Long-term costs may exceed ownership model
5. Open Source SaaS:
Combination of open source software with SaaS delivery model
Examples: [Link], GitLab, Nextcloud
Offers benefits of both open source and SaaS models
c. Different open source license agreements and their
implications
1. GNU General Public License (GPL):
Strong copyleft license
Requires derivative works to be distributed under the same license
Versions: GPL v2, GPL v3
Implications: Must share source code modifications, commercial use allowed
2. Apache License:
Permissive license
Allows use, modification, and distribution under minimal restrictions
Requires preservation of copyright notices
Implications: Can be used in proprietary software, no copyleft requirements
3. Creative Commons (CC) Licenses:
Family of licenses for creative works
Variations: CC BY, CC BY-SA, CC BY-NC, etc.
Implications: Different levels of attribution, share-alike, and commercial
restrictions
4. MIT License:
Very permissive license
Minimal restrictions on reuse
Only requires preservation of copyright notice
Implications: Can be used in proprietary software, no copyleft requirements
5. BSD License:
Permissive license similar to MIT
Allows redistribution with or without modification
Implications: Can be used in proprietary software, no copyleft requirements
6. Mozilla Public License (MPL):
Weak copyleft license
File-level copyleft
Implications: Modifications to licensed files must be shared, but can combine
with proprietary code
7. LGPL (Lesser General Public License):
Weak copyleft license
Allows linking with proprietary software
Implications: Can be used in proprietary applications, but modifications to
the library must be shared
d. Benefits and limitations of open-source
Benefits:
1. Cost Savings:
No licensing fees
Reduced total cost of ownership
Community support available at no cost
2. Flexibility and Customization:
Source code access allows modifications
Can tailor software to specific needs
No vendor lock-in
3. Transparency and Security:
Code can be audited for security vulnerabilities
Community review identifies and fixes issues quickly
No hidden backdoors or malicious code
4. Community Support and Collaboration:
Large developer communities
Shared knowledge and resources
Rapid innovation through collective effort
5. Standards Compliance:
Often built on open standards
Better interoperability with other systems
Avoids proprietary format limitations
6. Longevity:
Not dependent on single company's viability
Community can continue development if original developers stop
No risk of discontinuation due to business decisions
Limitations:
1. Support and Accountability:
No guaranteed support or service level agreements
Responsibility for maintenance falls on users
No legal accountability for software failures
2. Hidden Costs:
Implementation and customization may require specialized expertise
Training costs for staff
Potential need for commercial support
3. Fragmentation:
Multiple versions and distributions
Compatibility issues between versions
Inconsistent user experiences
4. Security Concerns:
Open code can be studied by malicious actors
Potential for undiscovered vulnerabilities
Responsibility for security updates falls on users
5. User Experience:
Often less polished than commercial alternatives
Inconsistent interfaces across applications
May require technical expertise to use effectively
6. Intellectual Property Risks:
Complex licensing requirements
Risk of license violations
Potential for patent infringement claims
e. Obligations associated with 'share-alike' clauses in
licences
1. Definition of Share-Alike:
Provision requiring derivative works to be distributed under the same or
similar license
Also known as copyleft
Ensures continued openness of modified works
2. Types of Share-Alike Clauses:
Strong copyleft (GPL): All derivative works must be under the same license
Weak copyleft (LGPL): Only modifications to the original code must be shared
File-level copyleft (MPL): Only modified files must be shared
3. Obligations for Users:
Must provide source code for any modifications
Must include original copyright notices
Must distribute derivative works under the same license
Must indicate changes made to the original code
4. Compliance Requirements:
Proper attribution to original authors
Documentation of changes made
Clear indication of license terms
Provision of access to source code
5. Interaction with Proprietary Code:
Strong copyleft may prohibit linking with proprietary code
Weak copyleft allows dynamic linking with proprietary applications
Careful license compatibility analysis required
6. Enforcement and Legal Implications:
License holders can enforce compliance through legal action
Violations may result in injunctions or damages
Community pressure often ensures compliance
7. Best Practices for Compliance:
Implement license compliance processes
Use automated tools to track open source usage
Educate developers on license obligations
Maintain documentation of all open source components
Learning Outcome 4: Understand the
methods of hosting and deploying web
applications
a. Web architectures
1. 1-Tier Architecture:
Single layer architecture
All components (presentation, business logic, data) on single system
Simple to develop and deploy
Limited scalability and performance
Example: Simple static websites or basic applications
2. 2-Tier Architecture:
Client-Server architecture
Presentation layer on client, business logic and data on server
Better separation of concerns than 1-tier
Improved scalability but still limited
Example: Traditional client-server applications
3. 3-Tier Architecture:
Presentation layer (client interface)
Application layer (business logic)
Data layer (database)
Clear separation of concerns
Better scalability and maintainability
Example: Most modern web applications
4. N-Tier Architecture:
Extension of 3-tier with additional layers
May include service layer, integration layer, etc.
Highly modular and scalable
More complex to develop and manage
Example: Enterprise applications with complex requirements
5. Microservices Architecture:
Application composed of small, independent services
Each service handles specific business function
Services communicate through APIs
Highly scalable and maintainable
Requires sophisticated orchestration and monitoring
6. Serverless Architecture:
Application logic runs in stateless compute containers
Triggered by events
Automatic scaling and resource management
Pay-per-use pricing model
Example: AWS Lambda, Azure Functions
b. Cloud versus non-cloud
Cloud Hosting:
1. Characteristics:
Resources provided by third-party providers
Pay-as-you-go pricing model
Elastic scalability
Managed infrastructure
2. Types of Cloud Services:
IaaS (Infrastructure as a Service): Virtual machines, storage, networks
PaaS (Platform as a Service): Development and deployment platforms
SaaS (Software as a Service): Complete applications delivered over the
internet
3. Deployment Models:
Public Cloud: Resources shared by multiple organizations
Private Cloud: Dedicated resources for single organization
Hybrid Cloud: Combination of public and private clouds
Multi-Cloud: Using services from multiple cloud providers
4. Benefits:
Reduced capital expenditure
Flexibility and scalability
High availability and reliability
Managed security and compliance
5. Challenges:
Data security and privacy concerns
Potential vendor lock-in
Compliance with regulations
Ongoing operational costs
Non-Cloud (On-Premises) Hosting:
1. Characteristics:
Infrastructure owned and managed by organization
Physical servers and networking equipment
Direct control over hardware and software
2. Benefits:
Complete control over infrastructure
Enhanced security and compliance
No ongoing subscription costs
Customization capabilities
3. Challenges:
High initial capital investment
Limited scalability
Maintenance and management overhead
Need for specialized expertise
c. Linux Apache versus Windows IIS
Linux with Apache:
1. Characteristics:
Open-source web server running on Linux operating system
Modular architecture with extensive customization options
Wide range of supported technologies (PHP, Python, Ruby, etc.)
2. Benefits:
No licensing costs
High stability and reliability
Strong security record
Extensive community support
Better performance for static content
3. Limitations:
Steeper learning curve for Windows administrators
Less integration with Microsoft technologies
May require more configuration for optimal performance
4. Best Use Cases:
PHP-based applications
High-traffic websites
Budget-conscious projects
Applications requiring customization
Windows with IIS:
1. Characteristics:
Microsoft's web server running on Windows operating system
Tight integration with Microsoft technologies
Graphical management interface
2. Benefits:
Easy to use and configure
Excellent support for .NET applications
Strong integration with Windows ecosystem
Microsoft technical support available
Advanced security features
3. Limitations:
Licensing costs
Higher resource requirements
Less flexible than Apache
Limited to Windows platform
4. Best Use Cases:
.NET applications
Enterprise environments using Microsoft technologies
Organizations with Windows expertise
Applications requiring Windows authentication
d. Different deployment methods
1. Traditional Deployment:
Manual setup of servers and infrastructure
Direct installation of application files
Manual configuration of environment
Time-consuming and error-prone
2. Containerization:
Packaging applications with dependencies into containers
Consistent environments across development, testing, and production
Examples: Docker, Kubernetes
Improved portability and scalability
3. Platform as a Service (PaaS):
Deployment to managed platforms
Abstracted infrastructure management
Examples: Heroku, AWS Elastic Beanstalk, Azure App Service
Simplified deployment process
4. Serverless Deployment:
Deploying functions that run in response to events
No server management required
Examples: AWS Lambda, Azure Functions
Automatic scaling and pay-per-use pricing
5. Continuous Integration/Continuous Deployment (CI/CD):
Automated testing and deployment pipelines
Integration with version control systems
Tools: Jenkins, GitLab CI, GitHub Actions
Faster and more reliable deployments
6. Blue-Green Deployment:
Maintaining two identical production environments
Switching traffic between environments
Zero downtime deployments
Easy rollback capability
7. Canary Deployment:
Gradual rollout of new versions
Testing with small subset of users
Monitoring for issues before full deployment
Reduced risk of widespread failures
8. A/B Testing Deployment:
Deploying different versions to different user groups
Comparing performance and user experience
Data-driven decision making
Optimizing user engagement and conversion
e. Web interfaces versus SSL PuTTy interface
Web Interfaces:
1. Characteristics:
Browser-based access to applications and services
Graphical user interface
HTTP/HTTPS protocol
Cross-platform compatibility
2. Benefits:
User-friendly and intuitive
No additional software required
Accessible from any device with browser
Rich multimedia capabilities
3. Limitations:
Limited functionality compared to command-line interfaces
Higher resource requirements
Potential security vulnerabilities
Dependent on internet connectivity
4. Use Cases:
End-user applications
Administrative dashboards
Content management systems
Customer-facing services
SSL PuTTY Interface:
1. Characteristics:
Secure command-line access to remote servers
SSH protocol with SSL/TLS encryption
Text-based interface
Requires PuTTY or similar SSH client
2. Benefits:
Highly secure connection
Low resource requirements
Powerful command-line capabilities
Efficient for system administration tasks
3. Limitations:
Steeper learning curve
Limited visual feedback
Requires specialized knowledge
Less intuitive for non-technical users
4. Use Cases:
Server administration
Configuration management
System monitoring and troubleshooting
Secure file transfer (SFTP/SCP)
Learning Outcome 5: Understand the
methods of testing the accessibility of web
applications
a. Opportunities for testing, error handling, and
reporting in web applications
1. Testing Opportunities:
Unit Testing: Testing individual components or functions in isolation
Integration Testing: Testing interactions between components
System Testing: Testing the entire application as a whole
User Acceptance Testing: Testing with actual users to validate
requirements
Performance Testing: Testing application speed, responsiveness, and
stability
Security Testing: Identifying vulnerabilities and security weaknesses
Compatibility Testing: Testing across different browsers, devices, and
platforms
2. Error Handling Strategies:
Input Validation: Verifying user input before processing
Exception Handling: Gracefully managing unexpected errors
User-Friendly Error Messages: Clear, helpful error notifications
Logging: Recording errors for debugging and analysis
Fallback Mechanisms: Alternative approaches when primary methods fail
Timeout Handling: Managing situations where operations take too long
3. Reporting Mechanisms:
Automated Test Reports: Generated by testing frameworks and tools
Error Logging Systems: Centralized collection of application errors
User Feedback Channels: Methods for users to report issues
Analytics and Monitoring: Tracking application performance and usage
Bug Tracking Systems: Organized management of identified issues
Performance Dashboards: Real-time visualization of application metrics
b. Assessing the severity of an error
1. Severity Classification:
Critical: System crashes, data loss, security vulnerabilities
High: Major functionality broken, significant performance issues
Medium: Partial functionality issues, minor performance problems
Low: Cosmetic issues, minor inconveniences
Trivial: Typos, formatting issues with no functional impact
2. Impact Assessment:
User Impact: How many users are affected and to what extent
Business Impact: Effect on revenue, reputation, or compliance
Technical Impact: Complexity of fix and potential side effects
Frequency: How often the error occurs
3. Priority Determination:
Urgency: How quickly the error needs to be addressed
Importance: Relative significance compared to other issues
Resources Required: Time and effort needed for resolution
Dependencies: Relationship with other features or fixes
4. Risk Assessment:
Likelihood of Occurrence: Probability of the error happening
Potential Damage: Extent of harm if error occurs
Mitigation Strategies: Options to reduce impact
Contingency Plans: Backup approaches if error persists
5. Severity Assessment Frameworks:
Numeric Scoring: Assigning numerical values to different aspects
Matrix Models: Visual representation of severity vs. priority
Decision Trees: Structured approach to classification
Machine Learning: Automated severity prediction based on historical data
c. The process of reviewing and testing web
applications
1. Planning Phase:
Defining testing objectives and scope
Identifying test requirements and success criteria
Allocating resources and establishing timelines
Selecting appropriate testing methodologies and tools
2. Test Design Phase:
Creating test cases and scenarios
Developing test data and environments
Establishing test procedures and standards
Designing automated test scripts
3. Test Execution Phase:
Performing manual and automated tests
Recording test results and outcomes
Identifying and documenting defects
Tracking test progress against plan
4. Analysis and Reporting Phase:
Analyzing test results and metrics
Identifying trends and patterns
Generating test reports and summaries
Providing recommendations for improvement
5. Review and Retest Phase:
Verifying defect fixes
Conducting regression testing
Performing final validation
Documenting lessons learned
6. Types of Testing:
Functional Testing: Verifying application features and requirements
Non-Functional Testing: Evaluating performance, security, usability
Static Testing: Reviewing documentation and code without execution
Dynamic Testing: Testing application during execution
7. Testing Methodologies:
Waterfall: Sequential testing process
Agile: Iterative testing approach with continuous feedback
DevOps: Integrated testing throughout development lifecycle
Exploratory Testing: Unscripted testing based on intuition and experience
d. Methods to ensure that accessibility, performance,
functionality, compatibility, bugs, security, and
usability needs have been met
1. Accessibility Testing:
Automated Tools: WAVE, axe, Lighthouse for automated accessibility
checks
Screen Reader Testing: Testing with JAWS, NVDA, VoiceOver
Keyboard Navigation Testing: Ensuring full keyboard accessibility
Color Contrast Analysis: Verifying sufficient contrast ratios
WCAG Compliance: Testing against Web Content Accessibility Guidelines
2. Performance Testing:
Load Testing: Simulating expected user traffic
Stress Testing: Testing beyond expected capacity
Page Speed Analysis: Tools like Google PageSpeed Insights
Network Throttling: Testing under various connection speeds
Resource Optimization: Minimizing file sizes and requests
3. Functionality Testing:
Feature Verification: Testing all specified features
Input Validation: Testing form submissions and data handling
Workflow Testing: Verifying complete user journeys
API Testing: Testing backend services and integrations
Database Testing: Verifying data integrity and operations
4. Compatibility Testing:
Cross-Browser Testing: Testing across different browsers
Cross-Device Testing: Testing on various devices and screen sizes
Operating System Testing: Verifying compatibility with different OS
Version Testing: Testing with different software versions
Responsive Design Testing: Ensuring proper display across viewports
5. Bug Detection and Management:
Code Reviews: Manual examination of code for issues
Static Analysis: Automated code quality checks
Dynamic Analysis: Testing during execution
Bug Tracking Systems: Organized management of identified issues
Root Cause Analysis: Identifying underlying causes of bugs
6. Security Testing:
Vulnerability Scanning: Using tools like OWASP ZAP, Nessus
Penetration Testing: Simulated attacks to identify weaknesses
Authentication Testing: Verifying login and access controls
Data Protection Testing: Ensuring encryption and secure storage
Compliance Testing: Verifying adherence to security standards
7. Usability Testing:
User Testing: Observing real users interacting with the application
Heuristic Evaluation: Expert review against usability principles
A/B Testing: Comparing different design approaches
Surveys and Feedback: Collecting user opinions and experiences
Analytics Analysis: Examining user behavior patterns
e. Differences between qualitative and quantitative
measures and their interpretation
Qualitative Measures:
1. Characteristics:
Descriptive and non-numerical data
Focus on understanding context and meaning
Subjective interpretations and insights
Rich, detailed information
2. Collection Methods:
User interviews and focus groups
Observational studies
Open-ended survey questions
Expert reviews and heuristic evaluations
Case studies
3. Analysis Techniques:
Thematic analysis
Content analysis
Narrative analysis
Grounded theory
Discourse analysis
4. Interpretation:
Identifying patterns and themes
Understanding user motivations and behaviors
Explaining "why" behind observed phenomena
Generating hypotheses for further investigation
Providing context for quantitative findings
5. Applications in Web Testing:
Understanding user experience and satisfaction
Identifying usability issues and pain points
Exploring user needs and expectations
Evaluating design effectiveness
Gathering feedback for improvements
Quantitative Measures:
1. Characteristics:
Numerical data and statistical analysis
Focus on measuring and counting
Objective and replicable results
Large sample sizes for generalizability
2. Collection Methods:
Surveys with closed-ended questions
Analytics and metrics collection
A/B testing results
Performance measurements
Automated testing results
3. Analysis Techniques:
Statistical analysis (descriptive and inferential)
Correlation and regression analysis
Hypothesis testing
Data visualization
Predictive modeling
4. Interpretation:
Identifying statistical significance
Measuring effect sizes and relationships
Comparing against benchmarks and standards
Tracking trends over time
Making data-driven decisions
5. Applications in Web Testing:
Measuring page load times and performance
Tracking conversion rates and user engagement
Quantifying error rates and bug occurrences
Assessing accessibility compliance scores
Evaluating security vulnerability counts
Integrating Qualitative and Quantitative Approaches:
1. Mixed Methods Research:
Combining both approaches for comprehensive understanding
Using qualitative insights to explain quantitative results
Using quantitative data to identify areas for qualitative investigation
2. Triangulation:
Validating findings through multiple methods
Increasing confidence in results through convergence
Identifying contradictions that require further investigation
3. Sequential Explanatory Design:
Starting with quantitative analysis
Following with qualitative investigation to explain results
Providing depth to statistical findings
4. Sequential Exploratory Design:
Beginning with qualitative exploration
Following with quantitative validation
Building theory from initial insights
5. Concurrent Triangulation Design:
Collecting both types of data simultaneously
Analyzing separately but interpreting together
Providing comprehensive view of the research question
Conclusion
These comprehensive notes cover all five learning outcomes for the
Applications Development unit, focusing on e-commerce and web
applications. The material addresses the key aspects of web application
development, from understanding their benefits to organizations, through
design and implementation, to testing and deployment.
The notes provide detailed explanations of:
1. The benefits and considerations of web applications for organizations
2. The technologies and processes involved in designing and implementing web
applications
3. The merits and limitations of open-source software
4. Various methods of hosting and deploying web applications
5. Comprehensive approaches to testing web applications, including
accessibility
These notes should serve as a solid foundation for understanding the key
concepts and practices in modern web application development, particularly
in the context of e-commerce systems.