Progressive Website for Training Company
Progressive Website for Training Company
Project Supervisor
Abdullah Qamar
Submitted By
F23023011C
CERTIFICATE
1
This is to certify that SAMAN NAZIR PANJWANI (BC190411521), have worked on and
completed their Software Project at Software & Research Projects Section,
Department of Computer Sciences, Virtual University of Pakistan in partial fulfillment
of the requirement for the degree of BS in Computer Sciences under my guidance and
supervision.
In our opinion, it is satisfactory and up to the mark and therefore fulfills the
requirements of BS in Computer Sciences.
Abdullah Qamar
Supervisor,
Software Projects & Research Section,
Department of Computer Sciences
Virtual University of Pakistan
___________________
(Signature)
___________________
(Signature)
Accepted By:
_____________
(For office use)
EXORDIUM
2
In the name of Allah, the Compassionate, the
Merciful.
DEDICATION
3
ACKNOWLEDGEMENT
4
PREFACE
This project has helped me in gaining valuable programming knowledge in the field of computer science.
The preface of the CS619 Progressive Website Designing project highlights its significance in bridging
theory and practice, showcasing the application of acquired knowledge in real-world scenarios. It
emphasizes the project's transformative impact on personal and professional growth, offering opportunities
for skill development, confidence building, and career advancement. Gratitude is expressed to supporters,
and readers are invited to join the journey of discovery and achievement in the realm of web development
and technology.
5
TABLE OF CONTENTS
CHAPTER NO. 1
GATHERING & ANALYZING INFO…………………………………………………9
1.1
Introduction…………………………………………………………………………………………
…………..9
1.2 purpose………………………………………………………………………….10
1.3
scope……………………………………………………………………………
………..12
1.4definitions, acronyms and
abbreviations………………………………..13
1.5.1 Functional
Requirements…………………………………………..15
1.5.2 Non-Functional Requirements
…………………………………..17
6
1.6 use cases and usage
scenarios……………………………………………… 19
1.7.1 Chosen
Methodology…………………………………………………….28
1.7.2 Reasons for Chosen
Methodology………………………………….29
CHAPTER NO. 2
DESIGNING THE PROJECT......................................................32
2.1
Introduction…………………………………………………………………
………………..32
7
2.2
purpose…………………………………………………………………………
………………34
2.3
scope……………………………………………………………………………
……………….34
2.4 definitions, acronyms and
abbreviations………………………………………….35
2.5 Architectural Representation (Architecture Diagram)
……………………….37
CHAPTER NO.3
DEVELOPMENT.....................................................................44
8
<<DEAR STUDENTS, YOU HAVE TO TAKE SPECIAL CARE OF
PAGE NUMBERS, WHICH ARE WRITTEN AGAINST EACH CHAPTER AND SUB
HEADINGS. YOU HAVE TO MENTION YOUR OWN PAGE NUMBERS AND
CORRECT ONE AGAINST EACH DOCUMENT HEADING. MAKE PROPER
TABLE OF CONTENTS. REMEMBER THAT IF THERE ARE ANY NEW
HEADINGS OR YOU HAVE INCLUDED MORE HEADINGS IN YOUR
DOCUMENTS THEN YOU ALSO HAVE TO WRITE THESE IN TABLE OF
CONTENTS AND MODIFY TABLE OF CONTENTS ACCORDING TO YOUR
DOCUMENTS MATERIAL>>
<<Dear Students, before starting each chapter the following would be the
title page for each chapter on a separate page>>
CHAPTER 1
Gathering & Analyzing Info
9
1.1 Introduction
In today's digital era, the demand for innovative and user-friendly online
platforms for learning and training has surged significantly. As a response, the
development of progressive websites tailored for training companies has become
paramount. This project, CS619 Progressive Website Designing, aims to create a
dynamic and interactive online platform using PHP Laravel framework for a
training company.
The project focuses on leveraging cutting-edge technologies and modern design
principles to develop a progressive website that offers a seamless learning
experience for students and efficient management tools for trainers and
administrators. By harnessing the power of PHP Laravel, a robust and versatile
framework for web application development, the project aims to deliver a
scalable, secure, and feature-rich platform tailored to the unique needs of the
training industry.
10
6. Showcasing company achievements, partnerships, and success stories
through a dedicated portfolio section.
7. Implementing a blog section for publishing articles and fostering
community engagement through user comments.
1.2 Purpose
The purpose of developing a final year project on progressive website designing
for a training company using PHP can encompass several objectives:
11
technologies effectively to create a cohesive and interactive user
experience.
6. Project Management and Documentation: Managing a final year project
involves planning, organizing, and executing tasks within a specified
timeframe. Students learn project management skills such as task
prioritization, scheduling, and team collaboration. Additionally,
documenting the project requirements, design decisions, and
implementation details helps in knowledge sharing and future reference.
7. Testing and Quality Assurance: Thorough testing is essential to ensure
the functionality, usability, and security of the website. Students learn about
different testing methodologies, including unit testing, integration testing,
and user acceptance testing. This fosters a mindset of quality assurance and
continuous improvement in software development.
8. Presentation and Demonstration Skills: Finally, presenting the completed
project to faculty members, peers, and potential employers is a crucial
aspect of the final year assessment. Students learn to effectively
communicate their project goals, methodologies, and outcomes, showcasing
their technical competence and problem-solving abilities.
1.2 Scope
Scope of Project:
The scope of the CS619 Progressive Website Designing project for a
training company in PHP Laravel encompasses various aspects aimed at
delivering a comprehensive and feature-rich online platform. Here are the
key scopes of the project:
1. User Management: Implementing user authentication and authorization
systems to manage students, trainers, and administrators, including
registration, login, and profile management functionalities.
2. Course Management: Developing a robust system for creating, editing,
and assigning courses to students and trainers, including features for course
enrollment, progress tracking, and completion certificates.
3. Event Scheduling: Integrating event scheduling capabilities to allow
administrators to schedule training events, workshops, and seminars, with
automated notifications sent to participants.
4. Learning Management System (LMS) Integration: Seamless integration
with popular LMS platforms such as OpenEdX or Moodle to provide
access to course materials, quizzes, assessments, and grading
functionalities.
12
5. Content Management: Implementing a content management system
(CMS) to facilitate easy management and publication of blog articles,
company portfolio content, and other static pages.
6. Responsive Design: Ensuring the website is accessible and optimized for
various devices and screen sizes, including desktops, laptops, tablets, and
smartphones, through responsive design principles.
7. Security Features: Implementing robust security measures to protect user
data, prevent unauthorized access, and safeguard against common web
vulnerabilities such as SQL injection and cross-site scripting (XSS).
8. Scalability and Performance: Designing the architecture with scalability
in mind to accommodate future growth in users, courses, and content, while
ensuring optimal performance and responsiveness.
9. User Experience (UX): Focusing on delivering an intuitive and seamless
user experience through intuitive navigation, clear layouts, and interactive
elements to enhance user engagement and satisfaction.
10. Documentation and Support: Providing comprehensive
documentation covering system architecture, installation instructions, user
guides, and developer documentation, along with ongoing technical support
and maintenance services.
By addressing these scopes, the project aims to deliver a sophisticated and
user-friendly progressive website design tailored to the needs of the training
company, empowering students, trainers, and administrators with efficient
tools for learning, management, and collaboration.
13
Acronym: CSS
4. HTML (Hypertext Markup Language):
Definition: The standard markup language for creating web
pages and web applications, defining the structure and content
of a webpage.
Acronym: HTML
5. JS (JavaScript):
Definition: A programming language that enables interactive
web pages by adding dynamic behavior to HTML and CSS,
allowing for client-side scripting and manipulation of webpage
elements.
Acronym: JS
6. AJAX (Asynchronous JavaScript and XML):
Definition: A technique used in web development to create
asynchronous web applications, enabling data exchange
between the client and server without reloading the entire
webpage.
Acronym: AJAX
7. UI (User Interface):
Definition: The graphical layout of an application or webpage
through which users interact, including elements such as
buttons, menus, and forms.
Acronym: UI
8. UX (User Experience):
Definition: The overall experience of a user when interacting
with a product or system, encompassing aspects such as
usability, accessibility, and satisfaction.
Acronym: UX
9. SPA (Single Page Application):
Definition: A web application or website that interacts with the
user by dynamically rewriting the current page rather than
loading entire new pages from the server, providing a more
fluid user experience.
Acronym: SPA
14
11. DBMS (Database Management System):
Definition: Software designed to manage and organize
databases, facilitating the storage, retrieval, and manipulation
of data.
Acronym: DBMS
1. User Management:
Registration: Students, trainers, and administrators
should be able to register by providing necessary
details such as name, email, and password.
Login: Registered users (students, trainers,
administrators) should be able to securely log in using
their credentials.
Profile Management: Users (students, trainers,
administrators) can update their profiles, including
personal information, contact details, and profile
pictures.
2. Course Management:
15
Course Creation: Administrators can add new courses,
specifying details such as title, description, duration,
and prerequisites.
Course Enrollment: Students should be able to enroll in
available courses, with confirmation notifications sent
upon successful enrollment.
Assignment Management: Trainers can view and
manage assignments for their assigned courses,
including adding new assignments, setting deadlines,
and grading submissions.
3. Event Scheduling:
Event Creation: Administrators can schedule training
events, workshops, or seminars, specifying details such
as date, time, location, and agenda.
Participant Notifications: Automated notifications
should be sent to participants (students, trainers) upon
event creation, modification, or cancellation.
5. Content Management:
Blog Management: Administrators can publish, edit, or
delete blog articles, including features for
categorization, tagging, and scheduling posts.
Company Portfolio: A dedicated section to showcase
company achievements, partnerships, success stories,
and other relevant information.
6. Security Features:
User Authentication: Implementing secure
authentication mechanisms to verify user identities and
prevent unauthorized access.
16
Data Encryption: Encrypting sensitive user data, such
as passwords and personal information, to protect
against data breaches.
Role-Based Access Control (RBAC): Defining roles and
permissions to restrict access to certain features or
content based on user roles (student, trainer, and
administrator).
These functional requirements ensure that the website caters to
the specific needs and roles of students, trainers, and
administrators, providing them with the necessary tools and
functionalities for effective learning management and
administration.
1. Performance:
The website should load quickly and respond to user
interactions within acceptable timeframes, aiming for a
response time of less than 2 seconds for most actions.
It should be capable of handling a large number of concurrent
users without experiencing significant performance
degradation.
2. Scalability:
The system should be designed to scale horizontally and
vertically to accommodate increasing user traffic and data
volume over time.
It should support easy addition of resources (such as servers)
and be capable of distributing the workload efficiently across
multiple servers if needed.
17
3. Security:
User data should be securely encrypted during transmission
and storage to prevent unauthorized access or data breaches.
Strong authentication mechanisms, such as password hashing
and multi-factor authentication, should be implemented to
ensure user account security.
Role-based access control (RBAC) should be enforced to restrict
access to sensitive functionalities or data based on user roles.
The system should be regularly tested for vulnerabilities, and
security patches should be applied promptly to mitigate
potential risks.
4. Reliability:
The website should be highly available, with minimal downtime
and regular maintenance windows scheduled during off-peak
hours.
Automated backups of the database and website files should be
performed regularly to prevent data loss in case of system
failures or disasters.
Fault-tolerant mechanisms should be implemented to ensure
graceful handling of errors and exceptions without disrupting
the user experience.
5. Usability:
The user interface should be intuitive and easy to navigate,
with clear labeling, consistent layout, and familiar design
patterns.
Accessibility features should be implemented to ensure that the
website is usable by people with disabilities, adhering to WCAG
(Web Content Accessibility Guidelines) standards.
6. Compatibility:
The website should be compatible with a wide range of web
browsers (such as Chrome, Firefox, Safari, and Edge) and
devices (including desktops, laptops, tablets, and
smartphones).
It should support different operating systems (such as
Windows, macOS, iOS, and Android) and screen resolutions
without compromising functionality or user experience.
7. Maintainability:
The codebase should be well-structured, modular, and
documented to facilitate ease of maintenance, debugging, and
future enhancements by developers.
Version control systems (such as Git) should be used to track
changes to the codebase and enable collaboration among team
members.
Dependency management tools (such as Composer for PHP
packages) should be utilized to manage third-party libraries
and frameworks efficiently.
18
By addressing these non-functional requirements, the progressive
website designing project can ensure that the website not only meets the
functional needs of users but also delivers a high-quality, reliable, and
secure user experience.
Descriptions:
System:
The "Online Learning Platform" represents the entire system designed for
online education. It includes functionalities for course browsing,
enrollment, progress tracking, and administrative tasks.
Actor:
Actors represent external entities that interact with the system. In this
example, ‘’Students’’, ‘’Trainers’’ and "Administrator" are actors.
Students can browse courses, enroll, and view progress, while
administrators have additional capabilities for managing courses, users,
and generating reports. And the system should enable trainers to view
and manage assigned courses.
Relationship Type:
The relationships between actors and use cases are represented by lines.
These lines illustrate how actors interact with the system through various
use cases. Whereas, system should enable trainers to view and manage
assigned courses, showcasing expertise and experience.
For instance, a "Student" can browse courses, enroll in a course, and view
progress. An "Administrator" has broader responsibilities, including
19
managing courses, users, and generating reports. And Trainers can create
and update their profiles, showcasing expertise and experience. The
system should enable trainers to view and manage assigned courses.
20
1.6.2 Usage Scenarios
21
Usage Scenarios NO.1
DATE 08-12-2023
22
Usage Scenarios NO.2
23
Navigate to the dashboard or progress tracking
section.
Select the course for which you want to view
progress.
The system displays the student's progress,
including completed modules, grades, and
assessments.
POST-CONDITION NA
EXCEPTIONS If the student is not enrolled in any courses, the
system provides a message guiding them to
enroll first.
AUTHOR BC190411521
24
Usage Scenarios NO.5
POST-CONDITION NA
EXCEPTIONS If there are issues with the payment (e.g.,
declined card), the system provides an
appropriate error message, guiding the student
to resolve the issue.
AUTHOR BC190411521
26
EXCEPTIONS If the course has enrollment restrictions (e.g.,
maximum capacity reached), the system
provides a notification, and the student may
choose an alternative course.
AUTHOR BC190411521
27
USE CASE TITTLE
Automated Notifications
28
company portfolio page.
EXCEPTIONS If the provided information is incomplete or
invalid, the system prompts the administrator to
correct the details.
AUTHOR BC190411521
Adopted Methodology
The VU Process Model, as described in SE2 (CS605) handouts, is a hybrid methodology that
combines elements of both the waterfall and spiral models. This approach aims to leverage
the strengths of these models while mitigating their individual limitations. Here's a detailed
explanation of the adopted methodology for the project:
FIG- 02
29
- Sequential Phases: The VU Process Model adopts the sequential phases of the waterfall
model. The project progresses through distinct and well-defined stages, including
requirements analysis, design, implementation, testing, deployment, and maintenance.
- Document-Driven Approach: Each phase emphasizes thorough documentation, ensuring
clear communication, and providing a basis for evaluation and validation.
FIG- 03
- Iterative Development: The VU Process Model incorporates the iterative nature of the
spiral model. After the completion of each phase, there's an evaluation and feedback loop,
allowing for refinements and adjustments based on insights gained during the preceding
phases.
- Risk Analysis and Management: The spiral model's emphasis on risk analysis is
integrated. Throughout the project, regular risk assessments are conducted, and appropriate
measures are taken to manage and mitigate identified risks.
Key Features:
30
Phases in the VU Process Model:
-
FIG- 04
31
Considerations:
Resource Intensity: The model requires careful resource allocation for iterative
cycles and documentation.
Communication: Effective communication and collaboration are critical to ensure
seamless transitions between phases.
Conclusion:
The adoption of the VU Process Model aims to strike a balance between the structured
approach of the waterfall model and the flexibility of the spiral model. This
methodology is well-suited for projects where requirements may evolve, and risk
management is a priority, providing a framework for systematic development with
room for adaptation.
FIG- 05
32
CHAPTER 2
Designing the Project
2.1 Introduction
Data Design: In this section, we delve into the intricacies of data management for
the Progressive Website. We define the structure of user data, course information,
and the relationships between different entities. The data design lays the foundation
for efficient storage, retrieval, and manipulation of information, supporting the core
functionalities of the training platform.
33
Architecture Design: The architecture design elucidates the overall system
architecture, emphasizing the interaction between front-end and back-end
components. We detail the technology stack, frameworks, and communication
protocols to ensure a scalable, maintainable, and performance system. Special
attention is given to the implementation of Progressive Web App (PWA) principles for
enhanced user experience.
Interface Design: User experience is at the forefront of our design philosophy. The
interface design section presents wireframes and mockups of key pages, ensuring a
visually appealing and intuitive layout. By incorporating responsive design principles,
we guarantee a seamless user experience across various devices, fostering
engagement and accessibility.
Entity Relationship Model: This section explores the relationships and
dependencies among different entities within the system. We define the structure of
the database, including user profiles, course information, and any other relevant
entities. The entity relationship model serves as a visual representation of the data
design, aiding in database implementation.
Sequence Diagrams: Sequence diagrams illustrate the flow of interactions between
system components and users. By mapping out the sequence of events during user
actions or system processes, we provide a detailed understanding of how the system
behaves in various scenarios. These diagrams are essential for ensuring the
correctness and efficiency of the system's functionality.
Class Diagram: Class diagrams offer a high-level view of the system's object-
oriented structure. This section defines the classes, their attributes, and the
relationships between them. The class diagram serves as a guide for developers in
implementing the software components, promoting modularity and maintainability.
Test Case: A robust testing strategy is essential for delivering a reliable product. The
test case section outlines detailed scenarios, acceptance criteria, and procedures for
testing each component of the system. Through systematic testing, we ensure the
functionality, security, and performance of the Progressive Website.
Maintenance Plan: The maintenance plan outlines strategies for ongoing support,
updates, and enhancements post-launch. It includes a schedule for regular
maintenance activities, procedures for handling issues, and plans for incorporating
user feedback. This section ensures the long-term sustainability and improvement of
the Progressive Website.
As we embark on the design phase, our goal is to create a Progressive Website that
not only meets the technical requirements but also exceeds user expectations. By
addressing data design, architecture, interface, and other crucial aspects, we lay the
groundwork for a successful development process and the delivery of an outstanding
training platform.
2.2 Purpose
Design Document is used to give an application development team overall guidance to the architecture of
the application project.
1. ERD
34
2. Sequence Diagram
3. Architecture Diagram
4. Class Diagram
5. Database Design
6. Interface Design
7. Test cases
2.3 Scope
The scope of design documents in progressive website designing for a training company encompasses
various aspects related to the website's design and development process. This includes:
1. Functional Scope: Design documents define the features and functionalities that the website will
offer to users. This encompasses everything from user authentication and registration to content
management, interactive modules, and any specific requirements of the training company, such as course
management and scheduling.
2. Design Scope: They outline the visual design elements of the website, including layout, color
schemes, typography, imagery, and branding guidelines. This ensures consistency and coherence in the
website's appearance and user interface.
3. Technical Scope: Design documents specify the technical aspects of the website, such as the choice
of programming languages, frameworks, and libraries. They also outline the database schema, server
architecture, and integration with external systems or APIs.
4. User Experience Scope: Design documents address the user experience (UX) aspects of the website,
including navigation flow, interaction design, and accessibility considerations. They ensure that the website
is intuitive, easy to use, and accessible to all users, including those with disabilities.
5. Content Scope: They define the content structure and organization of the website, including the
types of content to be included (e.g., text, images, videos), content management workflows, and content
publication schedules.
6. Scope Management: Design documents help manage the scope of the project by clearly defining
what is included and excluded from the website's design and development. This helps prevent scope creep
and ensures that the project stays within budget and timeline constraints.
35
Overall, the scope of design documents in progressive website designing for a training company
encompasses all aspects of the website's design and development, from functionality and visual design to
technical implementation and user experience, while also providing mechanisms for scope management and
control.
Definition: A software application or framework used to create, manage, and modify digital
content on a website without requiring technical expertise. It enables users to publish, edit, and organize
content efficiently.
Acronym: CMS
2. UI (User Interface):
Definition: The graphical layout of an application or website that users interact with. It
includes elements such as buttons, menus, and forms, designed to facilitate user interaction and navigation.
Acronym: UI
3. UX (User Experience):
Definition: The overall experience and satisfaction a user derives from interacting with a
product, system, or service. It encompasses factors such as ease of use, accessibility, and emotional
response.
Acronym: UX
Definition: A set of rules, protocols, and tools that allow different software applications to
communicate and interact with each other. APIs define the methods and data formats used for exchanging
information between systems.
Acronym: API
Definition: The standard markup language used to create and structure content on web pages.
HTML defines the structure of web documents by using a variety of tags and attributes.
Acronym: HTML
36
6. CSS (Cascading Style Sheets):
Definition: A style sheet language used to control the presentation and layout of HTML
documents. CSS defines how elements are displayed on the screen, including aspects such as colors, fonts,
and spacing.
Acronym: CSS
7. JS (JavaScript):
Definition: Software that provides an interface for managing databases, including tasks such
as storing, retrieving, and updating data. DBMSs ensure data integrity, security, and efficiency.
Acronym: DBMS
These definitions, acronyms, and abbreviations provide a foundation for understanding the terminology used
in the context of website development and management.
37
Architecture design Diagram
Sequence Diagrams (To be developed using Rational Rose or any other drawing.
38
STUDENT:
TRAINER:
39
40
Administration:
41
2.6 Object Model/Logical Model: Class
Diagram
42
2.7 DATABASE MODEL (DATABASE DIAGRAM)
Database Design
43
2.9 GRAPHICAL USER INTERFACES
44
CHAPTER 3
Development
45
Xampp server
MS word
MS project
Asp.net
MS powerpoint
MS visio
46
REFERENCES
7. GitHub: https://github.com/
8. Laracasts: https://laracasts.com/
9. Udemy: https://www.udemy.com/courses/search/?q=laravel
15. www.w3school.com
47
APPENDIX
48