0% found this document useful (0 votes)
14 views91 pages

Newest

Uploaded by

Ronit Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views91 pages

Newest

Uploaded by

Ronit Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 91

PORTFOLIO WEBSITE GENERATOR

A PROJECT REPORT

Submitted by

RONIT KUMAR [RA2011033010108]


VISHAL GAUR [RA2011033010125]

Under the Guidance of

Dr. G. SENTHIL KUMAR

Associate Professor, Department of Computational Intelligence

In partial fulfilment for the award of the degree of

BACHELOR OF TECHNOLOGY

in

COMPUTER SCIENCE ENGINEERING

with specialization in SOFTWARE ENGINEERING

DEPARTMENT OF COMPUTATIONAL INTELLIGENCE


COLLEGE OF ENGINEERING AND TECHNOLOGY
SRM INSTITUTE OF SCIENCE AND TECHNOLOGY
KATTANKULATHUR- 603203
MAY 2024
Department of Computational Intelligence
SRM Institute of Science & Technology
Own Work Declaration Form

This sheet must be filled in (each box ticked to show that the condition has been met). It must besigned
and dated along with your student registration number and included with all assignments you submit
work will not be marked unless this is done.
To be completed by the student for all assessments

Degree/Course : B. Tech in Computer Science and Engineering with


specialization in Software Engineering
Student Name : Ronit Kumar, Vishal Gaur
Registration Number : RA2011033010108, RA2011033010125
Title of Work : PORTFOLIO WEBSITE GENERATOR

We hereby certify that this assessment compiles with the University’s Rules and Regulations relating
to Academic misconduct and plagiarism, as listed in the University Website, Regulations, and the
Education Committee guidelines.

We confirm that all the work contained in this assessment is our own except where indicated, and that
We have met the following conditions:

• Clearly referenced / listed all sources as appropriate.


• Referenced and put in inverted commas all quoted text (from books, web, etc.)
• Given the sources of all pictures, data etc. that are not my own.
• Not made any use of the report(s) or essay(s) of any other student(s) either past or present.
• Acknowledged in appropriate places any help that I have received from others (e.g.fellow
students, technicians, statisticians, external sources)
• Compiled with any other plagiarism criteria specified in the Course handbook /University
website.
• We understand that any false claim for this work will be penalized in accordance with the
University policies and regulations.

DECLARATION:
I am aware of and understand the University’s policy on Academic misconduct and plagiarism and I certify
that this assessment is my / our own work, except were indicated by referring, and that I have followed the
good academic practices noted above.

RONIT KUMAR(RA2011033010108) VISHAL GAUR(RA2011033010125)

ii
SRM INSTITUTE OF SCIENCE AND TECHNOLOGY
KATTANKULATHUR – 603203
(Under Section 3 of UGC Act,1956)

BONAFIDE CERTIFICATE

Certified that 18CSP109L project report titled “Portfolio Website Generator” is the bonafide work
of “RONIT KUMAR[RA2011033010108] and VISHAL GAUR [RA2011033010125]” who
carried out the major project under my supervision. Certified further, that to the best of my knowledge
the work reported herein does not form any other project report or dissertation on the basic of which a
degree or award was conferred on an earlier occasion on this or any other candidate.

SIGNATURE SIGNATURE
Dr. G. SENTHIL KUMAR Prof. Dr. R. ANNIE UTHRA
ASSOCIATE PROFESSOR & SUPERVISOR HEAD OF THE DEPARTMENT
DEPARTMENT OF COMPUTATIONAL DEPARTMENT OF COMPUTATIONAL
INTELLIGENCE INTELLIGENCE

Examiner I Examiner II

iii
ACKNOWLEDGEMENT

We express our humble gratitude to Dr C. Muthamizhchelvan, Vice-Chancellor, SRM


Institute of Science and Technology, for the facilities extended for the project work and his continued
support.
We extend our sincere thanks to Dean-CET, SRM Institute of Science and Technology, Dr
T.V.Gopal, for his invaluable support.

We wish to thank Dr Revathi Venkataraman, Professor & Chairperson, School of


Computing, SRM Institute of Science and Technology, for her support throughout the project work.

We are incredibly grateful to our Head of the Department, Dr. Annie Uthra R Professor,
Department of Computational Intelligence, SRM Institute of Science and Technology, for her
suggestions and encouragement at all the stages of the project work.

We register our immeasurable thanks to our Faculty Advisor, Dr. Sudha Rajesh, Assistant
Professor, Department of Computational Intelligence, SRM Institute of Science and Technology, for
leading and helping us to complete our course.

Our inexpressible respect and thanks to my guide, Dr. G. SENTHIL KUMAR, Associate
Professor, Department of Computational Intelligence, SRM Institute of Science and Technology, for
providing me with an opportunity to pursue my project under his/her/their mentorship. She provided
me with the freedom and support to explore the research topics of my interest. Her passion for solving
problems and making a difference in the world has always been inspiring.

We sincerely thank the Computational Intelligence staff and students, SRM Institute of Science
and Technology, for their help during our project. Finally, we would like to thank parents, family
members, and friends for their unconditional love, constant support, and encouragement.

Ronit Kumar [RA2011033010108]


Vishal Gaur [RA2011033010125]

iv
ABSTRACT

In the era of digital transformation, the conventional PDF resume presentation lacks
interactivity and engagement. This project aims to bridge this gap by developing a system that takes a
PDF resume as input, parses its content, and transforms it into an interactive online website. The final
output will be a dynamic website that not only showcases the resume's content but also offers diverse
design options for a visually appealing and user-friendly experience. Also, the choice to edit the code
of your website will be given to you if you want to alter something by yourself. This project not only
addresses the limitations of traditional resume formats but also provides a platform for users to present
their professional information in an innovative and interactive manner.

v
TABLE OF CONTENTS

ABSTRACT v
TABLE OF CONTENTS vi
LIST OF FIGURES viii
LIST OF TABLES ix
ABBREVIATIONS x
1 INTRODUCTION 1
1.1 Motivation 1
1.2 Innovation 2
1.3 Product Vision Statement 3
1.3.1 Audience 3
1.3.2 Needs 3
1.3.3 Product 4
1.3.4 Values 4
1.3.5 Differentiators 4
2 BACKLOG REFINEMENT 6
2.1 Product Backlog 6
2.2 Product Roadmap 9
2.3 High-Level Estimation of all Epics 10
3 SPRINT PLANNING 19
3.1 Sprint 1 19
3.1.1 Capacity Plan of Sprint 1 19
3.1.2 Detailed Estimation of User Stories 20
3.1.3 Daily Scrum Activities 22
3.1.4 Functional Document 24
3.1.5 Architecture Diagram 26
3.1.6 Architecture Document 90
3.1.7 Functional Test Case Document 21
3.1.8 Defect Report 34
3.1.9 Sprint Retrospective 24
3.2 Sprint 2 28
3.2.1 Capacity Plan of Sprint 2 28
3.2.2 Detailed Estimation of User Stories 32

vi
3.2.3 Daily Scrum Activities 35
3.2.4 Functional Documents 39
3.2.5 Architecture Document 42
3.2.6 Functional Test Case Document 44
3.2.7 Defect Report 48
3.2.8 Sprint Retrospective 32
3.3 Sprint 3 50
3.3.1 Capacity Plan of Sprint 3 50
3.3.2 Detailed Estimation of User Stories 52
3.3.3 Daily Scrum Activities 55
3.3.4 Functional Documents 56
3.3.5 Architecture Document 23
3.3.6 Functional Test Case Document 43
3.3.7 Defect Report 46
3.3.8 Sprint Retrospective 47
4 RESULT AND DISCUSSION 58
4.1 Foundational Development and Database Optimization 58
4.2 Enhancing User Interaction and File Management 59
4.3 Deployment Optimization and Infrastructure Scaling 60
5 CONCLUSION AND FUTURE ENHANCEMENTS 66
5.1 Conclusion 58
5.2 Future Enhancement 59
APPENDIX 68
A PATENT DISCLOSURE FORM 53
B SAMPLE CODING 59
C PLAGAIRISM REPORT 67

vii
LIST OF FIGURES

Figure No. Figure Name Page No.


3.4 Architecture Diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1 Front End Home Page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.2 Deployed Website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

viii
LIST OF TABLES

Table No. Table Name Page No.

2.1 Product Backlog 7


2.2 Product Roadmap 10
2.3 High-level Estimation 12
3.1 Capacity plan of Sprint 1 16
3.2 Detailed estimation of Sprint 1 19
3.3 Daily scrum template of Sprint 1 20
3.5 Functional Test case of Sprint 1 24
3.6 Defect Report of Sprint 1 25
3.7 Sprint Retrospective of Sprint 1 26
3.8 Capacity plan of Sprint 2 27
3.9 Detailed estimation of Sprint 2 31
3.10 Daily scrum template of Sprint 2 32
3.11 Functional Test case of Sprint 2 35
3.12 Defect Report of Sprint 2 36
3.13 Sprint Retrospective of Sprint 2 37
3.14 Capacity plan of Sprint 3 38
3.15 Detailed estimation of Sprint 3 42
3.16 Daily scrum template of Sprint 3 43
3.17 Authorization Matrix 45
3.18 Functional Test case of Sprint 3 47

ix
ABBREVIATIONS

UI User Interface

UX User Experience

HTML Hypertext Markup Language

CSS Cascading Style Sheets

MERN MongoDB, Express, React, and Node

AWS Amazon Web Services

EC2 Elastic Compute Cloud

API Application programming interface

HTTP Hypertext Transfer Protocol

SSL Secure Sockets Layer

x
CHAPTER 1

INTRODUCTION

1.1 Motivation
The project's roots lie in a concrete experience that highlighted a significant gap in the
job market. During a meeting with a CEO, a crucial requirement was discovered: candidates
needed personal websites to even be considered for shortlisting. This requirement struck a
chord, emphasizing the challenges many students faced in securing job opportunities. It became
evident that personal branding, often overlooked in traditional resumes, played a vital role in
today's competitive job landscape.

This encounter spurred action, igniting a shared passion to bridge the divide between
traditional resumes and the demands of the digital era. There was a collective desire to empower
peers, equipping them with a tool to not just meet but exceed employers' expectations. The idea
of developing a PDF-to-Website converter stemmed from this drive, aiming to revolutionize
how students showcased their professional identities.

As the project developed, the motivation extended beyond mere functionality; it


evolved into a mission to redefine resume presentation norms. Recognizing the potential to not
only address the immediate need for personal websites but also to establish a new standard for
professionalism and creativity was key. The vision went beyond creating a tool; it aimed to
spark a shift in how individuals perceive and present themselves in the professional realm.

This real-world experience underscored the growing importance of digital presence and
personal branding in today's job markets. It served as a reminder that while traditional resumes
still serve a purpose, they often fail to capture the essence of an individual's skills and
experiences. This encounter sparked a journey of innovation and empowerment, driving the
development of a solution that not only meets but exceeds the evolving demands of the
professional world. Through this project, the aim is to revolutionize how individuals present
themselves, ushering in a new era of personalized and impactful professional branding.

1
1.2 Innovation

The innovative solution features an automated PDF resume parsing capability, which
streamlines the process of converting static resumes into dynamic online portfolios. Utilizing
advanced algorithms, the system intelligently extracts relevant information from PDF resumes,
eliminating the need for manual data entry and saving users valuable time and effort. This
automated parsing not only enhances efficiency but also ensures accuracy, enabling users to
create comprehensive and up-to-date portfolios with ease.

The platform dynamically generates HTML/CSS portfolios based on the parsed resume
data. This dynamic approach allows users to create visually appealing and interactive online
portfolios that accurately reflect their professional backgrounds and skills. With customizable
design options and responsive layouts, the portfolios are tailored to captivate and engage
viewers. Users are provided with the flexibility to customize their portfolios according to their
preferences, empowering them to create impactful and memorable digital identities.

The project offers seamless deployment of hosted portfolios, removing the technical
complexities associated with web hosting and domain management. Users can easily deploy
their portfolios with just a few clicks, ensuring instant accessibility to potential employers and
recruiters. This streamlined deployment process enables users to showcase their portfolios with
confidence and professionalism, removing barriers to entry and allowing users to focus on
presenting their best selves to the world.

Prioritizing user experience, the platform is designed with a user-friendly interface that is
intuitive and easy to navigate. From resume parsing to portfolio customization, every step of
the process is guided by clear instructions and visually appealing interfaces. This user-centric
approach ensures that users of all skill levels can effortlessly create and manage their portfolios
with minimal learning curve. By providing a seamless and enjoyable user experience, the
platform empowers users to showcase their talents and achievements effectively.

Data security is taken seriously, with robust measures implemented to safeguard user
information. From encryption protocols to secure data storage practices, the platform adheres
to industry standards for data protection and privacy. Users can trust that their personal and
professional information is always kept confidential and secure. This commitment to data
security ensures that users can confidently leverage the platform to create and share their
portfolios without compromising their privacy or security.
2
The project fosters collaboration and feedback through built-in mechanisms that enable
users to share their portfolios with others for review and feedback. Whether seeking input from
peers, mentors, or industry professionals, users can easily collaborate and gather valuable
insights to enhance their portfolios. This collaborative approach promotes continuous
improvement and ensures that portfolios are refined to meet the highest standards of
professionalism and effectiveness.

1.3 Product Vision Statement


1.3.1 Audience

Primary Audience: Our primary audience comprises individuals seeking to enhance their
professional online presence, including job seekers, professionals, freelancers, and students.
These users are keen on leveraging digital platforms to showcase their skills, experiences, and
accomplishments in a visually appealing and interactive manner. With diverse backgrounds
and career aspirations, they aim to create compelling online portfolios that set them apart in
today's competitive job market.

Secondary Audience: The secondary audience includes businesses, recruiters, and educational
institutions who are involved in talent acquisition and evaluation processes. These entities often
review online portfolios to assess candidates' qualifications, creativity, and suitability for
various opportunities. Additionally, educators and career counsellors may recommend our
platform to students and professionals seeking guidance on developing their digital identities.

1.3.2 Needs

a) Primary Needs

Efficient parsing of PDF resumes for accurate data extraction.

User-friendly interface for seamless navigation and interaction.

Secure authentication mechanisms to protect user data.

b) Secondary Needs

Customizable templates for diverse portfolio designs.

Integration with external APIs for extended functionality.

3
1.3.3 Products

a) Core Product

Portfolio Website Generator

b) Additional Features:

Customizable design options to personalize portfolio templates.

Integration with social media and professional networking platforms.

User dashboard for managing and editing portfolios.

Analytics dashboard for tracking portfolio performance and visitor engagement.

1.3.4 Values

a) Core Values

Accessibility: We prioritize making our Portfolio Website Generator accessible to users of


all technical skill levels, ensuring that everyone can easily create and deploy their
professional portfolios.
Innovation: Revolutionizing the landscape of online portfolios, our product introduces a
groundbreaking solution tailored for individuals with no coding expertise. This innovative
platform empowers users to effortlessly create professional-grade portfolio websites from
their PDF resumes, marking a paradigm shift in personal branding and digital presence
management.

1.3.5 Differentiators

Our product stands out as a pioneering endeavour, offering a capability unparalleled in the
market: the ability to seamlessly transform PDF resumes into fully functional and aesthetically
appealing portfolio websites. This unique proposition, never before realized in the industry,
positions our solution as a game-changer, catering to individuals seeking a distinctive and
effortless approach to showcasing their professional identity online.

At the inception of their journey on our platform, users are greeted with an intuitively
designed homepage, meticulously crafted using the MERN stack. This technology stack not
only ensures robustness but also facilitates scalability, allowing our platform to accommodate
varying user needs and preferences seamlessly. The homepage serves as a virtual gateway,
offering users a comprehensive overview of the platform's features and functionalities, coupled
with a user-friendly guide on navigating through the process.

4
Upon embarking on the process of creating their personalized portfolio website, users are
prompted to upload their resumes in PDF format. This initial step sets the stage for the intricate
process of parsing, where sophisticated algorithms work tirelessly behind the scenes to extract
pertinent information from the uploaded resumes. Leveraging advanced parsing techniques,
the platform meticulously organizes and structures the extracted data, laying the foundation for
the subsequent stages of website creation.

With the data parsed and organized, users are seamlessly transitioned to a template
HTML/CSS page, meticulously curated to offer a diverse array of visually appealing layouts
and designs. Each template is thoughtfully crafted to cater to different professional preferences
and aesthetics, ensuring that users have ample options to choose from. The parsed data
seamlessly populates these templates, dynamically generating personalized portfolio websites
that reflect the unique professional identities of each user.

In parallel, users are guided through a secure authentication process powered by Google
Passport. This authentication mechanism not only ensures the security of user data but also
enhances user experience by offering a seamless login and account creation process. By
leveraging the robust authentication capabilities of Google Passport, users can trust that their
personal information is safeguarded throughout their journey on the platform.

Upon successful authentication, users are presented with the option to deploy their
personalized portfolio websites. Integration with Razorpay facilitates secure payment
transactions, allowing users to subscribe to the platform's services effortlessly. The deployment
process culminates in the creation of a dynamic endpoint, uniquely tailored to each user's
username. This endpoint serves as the digital gateway to their professional identity, allowing
users to showcase their skills and experiences with confidence in the competitive job market.

5
CHAPTER 2

BACKLOG REFINEMENT

2.1 Product Backlog


A comprehensive product backlog for our Portfolio Website Generator project is
outlined in the following sections, prioritizing essential features and functionalities essential
for seamless functionality and user satisfaction. As we embark on Sprint 1, the primary focus
lies on establishing foundational elements crucial for the platform's robust operation. The sprint
commences with the implementation of a standard file and code structure, ensuring consistency
and clarity across both backend and frontend components. Concurrently, efforts are directed
towards crafting an engaging landing page that effectively communicates the platform's value
proposition to users, setting the stage for their interactive experience. Furthermore, the sprint
prioritizes the implementation of user authentication mechanisms to safeguard user data and
ensure secure access to platform features. Finally, the architecture of the user database is
established, laying the groundwork for efficient data management and retrieval as the project
progresses.

Transitioning into Sprint 2, the focus shifts towards enhancing the platform's
capabilities for handling user-generated content. The sprint begins with the development of a
robust file upload structure, facilitating seamless intake of user resumes in PDF format.
Subsequently, dedicated efforts are allocated towards implementing algorithms for data
extraction from uploaded files, ensuring accurate parsing and organization of vital information.
Concurrently, the sprint encompasses the design and implementation of pre-built templates
using React, offering users a diverse array of visually appealing layouts for their portfolio
websites. Integration of these templates with the parsed data marks a significant milestone in
enabling users to customize and personalize their online portfolios effectively.

In Sprint 3, the project enters its final phase with a focus on optimizing user experience
and platform performance. The sprint commences with the implementation of rate limiting and
fair usage policies, ensuring equitable access to platform resources while preventing misuse or
abuse. Additionally, the integration of payment gateways enables users to seamlessly subscribe
to premium features and services, unlocking advanced functionalities for their portfolio
websites. The sprint culminates in the deployment of final DevOps solutions, leveraging tools
like EC2 instances and Nginx for efficient hosting and delivery of portfolio websites.

6
Table 2.1 Product Backlog

7
Table 2.1 Product Backlog

8
Table 2.1 Product Backlog

9
2.2 Product Roadmap
In the initial sprint, spanning weeks 1 to 3, our primary objective revolves around establishing the
foundational elements essential for the seamless functioning of the Portfolio Website Generator.
During this phase, our focus is on laying down the groundwork by implementing fundamental features
that define the platform's structure and usability. One of the key tasks includes the implementation of
a standardized file and code structure, ensuring consistency and clarity across both the backend and
frontend components of the platform. Additionally, we devote significant efforts to crafting an
engaging landing page that effectively communicates the platform's value proposition to potential
users, setting the stage for their journey ahead. Moreover, the integration of robust user authentication
mechanisms takes precedence to safeguard user data and ensure secure access to the platform's
features. By the end of this sprint, we aim to have a solid foundation in place, setting the stage for
more advanced functionalities in subsequent phases.

In the second sprint, spanning weeks 4 to 6, our focus shifts towards enhancing the user experience
and expanding the platform's capabilities for handling user-generated content. During this phase, our
primary goal is to empower users with intuitive tools and features that facilitate seamless content
creation and customization. Key tasks include the development of a user-friendly file upload structure,
enabling users to effortlessly upload their resumes in PDF format. Furthermore, we prioritize the
implementation of advanced algorithms for efficient data extraction from uploaded files, ensuring
accurate parsing and organization of vital information. Additionally, we embark on the design and
implementation of pre-built templates using React, offering users a diverse array of visually appealing
layouts for their portfolio websites. By the end of this sprint, users can expect a more immersive and
personalized experience, with enhanced tools and features at their disposal to create stunning online
portfolios.

In the final sprint, spanning weeks 7 to 9, our focus shifts towards optimization, security, and final
preparations for deployment. During this phase, our primary objective is to ensure that the platform is
robust, secure, and ready for launch. One of the key tasks includes the implementation of rate limiting
and fair usage policies to ensure equitable access to platform resources while preventing misuse or
abuse. Additionally, we integrate payment gateways to enable seamless subscription services, allowing
users to unlock premium features for their portfolio websites. Furthermore, we finalize DevOps
deployments for efficient hosting, leveraging tools like EC2 instances and Nginx to ensure reliable,
secure, and performant deployment. By the end of this sprint, we conduct thorough testing and bug
fixing to address any lingering issues, ensuring a seamless and error-free user experience upon launch.
Table 2.2 Product Roadmap

2.3 High-level Estimation of all Epics


The project encompasses various epics, each contributing to the development and enhancement
of the Portfolio Website Generator. Initially, the focus lies on establishing a solid foundation through
epics like "Standard file and code structure" and "User database Architecture." These epics lay the
groundwork for efficient file management and user management, ensuring consistency and security
across the platform. Following this, attention shifts towards enhancing the user experience with epics
such as "Landing Page Design" and "Pre-Build template designing - React." These epics aim to create
visually appealing interfaces and intuitive design elements to engage users effectively. Simultaneously,
efforts are directed towards implementing essential functionalities like "User Authentication" and "File
upload structure," prioritizing security and ease of use for platform users.

11
As the project progresses, the focus shifts towards data processing and integration with epics
like "Data extraction from files" and "Integration template with Uploaded data." These epics enable
seamless handling of user-generated content and facilitate dynamic integration with pre-built
templates. Additionally, measures are implemented to ensure resource management and scalability
with epics such as "Rate Limiting & Fair Usage Policy" and "Payment integration and Making
subdomains." These epics aim to optimize resource allocation and enhance user accessibility through
secure payment gateways and subdomain creation.

In the final stages of development, attention turns towards deployment and maintenance with
epics like "Final Devops Deployments" and "Bug Fixes." These epics ensure a smooth and error-free
launch of the platform, followed by ongoing maintenance to address any issues, and optimize
performance. Overall, each epic contributes to the overarching goal of creating a robust, user-friendly,
and feature-rich Portfolio Website Generator, catering to the diverse needs of its users.

12
Table 2.3 High level Estimation of All Epics
Priorit Non-
y Functional
(MoSC Statu Acceptance Functional Requirement Original
ID Title Epic User Story oW) s Criteria Requirements s Estimate
Define a
The project
standard file and
As a should adhere
directory
developer, to a Ensure that all
structure for the
Standard I need to predefined developers
File project.
file and implement Comp file and code follow the
1 Manage Should Implement 1 Week
code standard leted structure for defined
ment coding
structure file and consistency structure and
conventions for
code and conventions.
consistent code
structure maintainabilit
formatting and
y.
style.
Ensure cross-
browser
compatibility
As a Create a
and consistent
developer, wireframe of
rendering
I need to the home
across
design the page layout
different web
home page with sections Develop React
browsers.
of the for code to
Landing UI/UX Optimize
website to Comp navigation, implement the
2 Page Enhanc Must page load 2 Weeks
create an leted featured designed layout
Design ement times and
engaging content, about and styling for
performance
and section, the home page
by
visually services/prod
minimizing
appealing ucts, and
unnecessary
user contact
assets and
interface. information.
leveraging
caching
techniques.
As a
developer,
I want to
ensure Ensure data
User User Implement Integrate Google
secure Comp privacy and
3 Authenti Manage Must secure user Passport and 3 Weeks
authenticati leted user
cation ment authentication self-login
on features authentication
are
implemente
d.
As a
developer,
I want to
User optimize Implement
User Set up user
database database Comp MongoDB for Ensure data
4 Manage Must database 3 Weeks
Architec efficiency leted efficient data integrity
ment architecture
ture for storage
improved
performanc
e.

13
As a
developer,
I want to Design and
File File Create a user- Optimize for
develop Comp implement
5 upload Manage Must friendly file large file 2 Weeks
easy-to-use leted file upload
structure ment upload interface handling
file upload structure
functionalit
y for users.

As a
developer,
I want to
Data implement Implement Integrate
Data Ensure
exractio data Comp data algorithms for
6 Processi Must accuracy and 3 Weeks
n from extraction leted extraction efficient
ng compatibility
files features from files extraction
from
uploaded
files.
As a
developer,
Pre
I want to Design and Ensure
Build UI/UX Utilize react and
create Comp implement templates are
7 template Enhanc Should css for template 4 Weeks
visually leted pre-build customizable
designin ement design
appealing template and diverse
g - React
templates
for users.
As a
Integrati developer,
on I want to Develop Link templates
template Integrat integrate Comp template dynamically Optimize for
8 Must 4 Weeks
with ion data leted integration with uploaded multiple files
Uploade seamlessly with data data
d data across the
website.
As a
developer,
I need to
implement
Users are
mechanism
restricted
s for
from Define usage
ensuring
excessive use Implement usage and rate limits
Rate equitable
Resourc of resources and API request based on
Limiting resource
e Comp beyond tracking resource
9 & Fair allocation Should 3 Weeks
Manage leted defined limits mechanisms, availability
Usage and
ment and API calls enforce usage and user
Policy preventing
are limited and rate limits subscription
abuse
based on plans
through
predefined
policy
rate limits
enforcemen
t and API
rate
limiting
As a
developer,
Payment I want to
Ensure secure
integrati Paymen implement Integrate Implement
transactions
on and t payment Comp payment Razorpay for
10 Must and 4 Weeks
Making Processi and leted gateway and payment
subdomain
subdoma ng deployment subdomains processing
creation
ins features for
users'
websites.

14
As a Ensure
developer, reliable,
I want to Set up secure, and
Final
streamline Implement deployment performant
Devops Deploy Comp
11 the Must final DevOps using EC2 deployment 3 Weeks
Deploy ment leted
deployment deployments instance and with proper
ments
process for Nginx monitoring
efficient and cost
releases. optimization
As a
developer,
Critical bugs
I want to
should be
prioritize Identify and Implement bug-
Bug Mainten Pendi resolved
12 bug fixing Could fix reported fixing 2 Weeks
Fixes ance ng within 48
to ensure a bugs procedures
hours of
smooth
discovery.
user
experience.

15
CHAPTER 3

SPRINT PLANNING

3.1 Sprint 1 – Foundational Development and Database Optimization


During Sprint 1 of the Portfolio Website Generator project, the team focused on establishing
the foundational elements essential for project initiation. This included structuring the codebase for
standardized file management and crafting an intuitive landing page to guide users seamlessly. Key
tasks involved implementing secure user authentication mechanisms and designing the user database
architecture to ensure efficient data handling. Capacity planning facilitated effective task allocation,
while regular scrum activities fostered communication and collaboration among team members. The
sprint culminated in a retrospective session, offering insights for process refinement in subsequent
sprints and laying a robust groundwork for project advancement.

3.1.1 Sprint 1 - Capacity Plan of Foundational Development and Database Optimization

Effective resource utilization and timely task completion hinge on meticulous capacity
planning. In the ongoing sprint, it is imperative for all team members, including developers, scrum
masters, and product owners, to devise individual capacity plans. These plans outline their availability
during working days, scheduled leaves, and any other commitments such as educational pursuits or
skill enhancement endeavours. By estimating the number of hours, they can dedicate to various project
activities such as design, development, testing, and documentation, team members can ascertain their
capacity for the sprint. This meticulous planning facilitates optimal task allocation and seamless
coordination, ensuring smooth progress of the project and attainment of objectives within the stipulated
timeframe, as illustrated in Table 3.1.

16
Table 3.1 Foundational Development and Database Optimization

Capacity Plan for Current Sprint

Design,
Planned Other
Development,
Working Leaves Course Upskilling Estimated
Name Role Testing,
Days (in work (in Days) Hours
Documentation
Days) activities
(in Days)
Ronit Developer/Scrum 26 5 3 2 16
Master 80
Vishal Developer/Product 26 4 1 1 20
Owner 100

3.1.2 Detailed Estimation of User Stories of Foundational Development and Database


Optimization
3.1.2.1. Standard File and Code Structure

One of the primary tasks was to establish a standard file and code structure for the project,
ensuring consistency and maintainability throughout the development process. This task was essential
to streamline the development workflow and facilitate collaboration among team members. By
implementing a predefined file and code structure, developers could easily navigate through the project
and locate relevant files, thus reducing the time spent on searching for resources. Additionally,
adhering to coding conventions ensured consistent code formatting and style across the project,
enhancing readability, and making it easier for developers to understand and maintain each other's
code.
The implementation of a standard file and code structure involved defining a set of guidelines
and best practices for organizing project files and directories. This included determining the hierarchy
of folders, naming conventions for files and directories, and establishing rules for organizing code files
based on functionality or module. By creating a clear and intuitive structure, developers could
effectively manage and organize project assets, reducing the risk of file clutter and confusion.

Furthermore, enforcing coding conventions helped maintain code quality and consistency
throughout the project. By defining rules for code formatting, indentation, variable naming, and
commenting, developers could ensure that all code written adhered to a unified style, making it easier
to read, understand, and maintain. This not only improved collaboration among team members but also
facilitated code reviews and debugging processes, as developers could quickly identify and address
any deviations from the established conventions.

17
To ensure that all developers followed the defined structure and conventions, regular code
reviews and peer evaluations were conducted. Team members were encouraged to provide feedback
and suggestions for improvement, fostering a culture of continuous learning and improvement.
Additionally, automated tools and linters were utilized to enforce coding standards and identify any
deviations in real-time, allowing developers to address issues promptly and maintain code quality
throughout the development lifecycle.

3.1.2.2. Landing Page Design

Another crucial task was to enhance the user interface and user experience by designing the
landing page of the website. This task aimed to create an engaging and visually appealing interface
that would effectively capture the user's attention and encourage further exploration of the website. By
focusing on UI/UX enhancement, the team sought to improve user satisfaction and retention,
ultimately contributing to the success of the project.
The first step in this task was to create a wireframe of the home page layout, outlining the
various sections such as navigation, featured content, about section, services/products, and contact
information. This wireframe served as a blueprint for the design and layout of the landing page,
providing a clear visual representation of the overall structure and flow of the page. By defining the
placement of key elements and content sections, the wireframe helped ensure consistency and
coherence in the final design.
Once the wireframe was finalized, the next step was to develop React code to implement the
designed layout and styling for the home page. This involved translating the wireframe design into
functional code, utilizing React components and libraries to create dynamic and interactive elements.
By adhering to best practices in front-end development, such as modularization and component
reusability, the team aimed to streamline the development process and maintain code consistency and
scalability.
Furthermore, to ensure optimal performance and user experience, the team focused on
addressing two key non-functional requirements: cross-browser compatibility and page load times.
Cross-browser compatibility was essential to ensure consistent rendering of the website across
different web browsers, providing a seamless experience for users regardless of their browser
preference. Additionally, optimizing page load times and performance was crucial for minimizing user
wait times and maximizing engagement. This involved minimizing unnecessary assets, such as images
and scripts, and leveraging caching techniques to improve response times and overall site performance.

18
By prioritizing UI/UX enhancement and implementing a well-designed landing page, the team
aimed to create a compelling first impression for users and set the stage for a positive and immersive
browsing experience.

3.1.2.3. User Authentication

A critical task involved implementing robust user authentication features to ensure the security
of the platform. This task was essential for safeguarding user data and preventing unauthorized access
to sensitive information. By prioritizing user authentication, the team aimed to establish a secure
foundation for the project, instilling trust, and confidence in users.

The first objective of this task was to implement secure user authentication mechanisms. This
involved setting up authentication protocols and encryption methods to protect user credentials and
sensitive data from potential security threats. By adhering to industry best practices and standards,
such as using hashed passwords and secure token-based authentication, the team ensured that user
authentication was resilient against common security vulnerabilities.

Additionally, the task involved integrating Google Passport and enabling self-login
functionality. Integrating Google Passport provided users with the option to authenticate using their
Google accounts, offering convenience and familiarity while maintaining security standards.
Simultaneously, enabling self-login functionality allowed users to create and manage their accounts
directly on the platform, enhancing user autonomy and flexibility in account management.

Furthermore, a key focus of this task was to ensure data privacy and user authentication
integrity. This included implementing measures to protect user privacy, such as data encryption and
compliance with data protection regulations. Additionally, stringent authentication checks were put in
place to verify user identities and prevent unauthorized access to account information. By prioritizing
data security and user authentication integrity, the team aimed to instil confidence in users and uphold
the platform's reputation for reliability and trustworthiness.

3.1.2.4. User Database Architecture

Optimizing the database architecture was a critical task aimed at enhancing overall system
performance and efficiency. By prioritizing database optimization, the team sought to streamline data
storage and retrieval processes, ensuring optimal performance even as the user base scaled.

19
The primary objective of this task was to establish an efficient user database architecture. This
involved designing a database schema tailored to the specific requirements of the platform, considering
factors such as data structure, relationships, and indexing strategies. By carefully planning the database
architecture, the team aimed to minimize data redundancy and improve query performance, resulting
in faster and more efficient data operations.

To achieve this objective, MongoDB was implemented as the database management system.
MongoDB's document-oriented nature and flexible schema made it well-suited for storing user data in
a scalable and efficient manner. By leveraging MongoDB's capabilities, the team was able to optimize
data storage and retrieval processes, improving overall system performance and responsiveness.

Furthermore, ensuring data integrity was a key consideration throughout the database
architecture optimization process. This involved implementing measures to maintain data consistency,
accuracy, and reliability, such as enforcing data validation rules and transaction management
protocols. By prioritizing data integrity, the team aimed to mitigate the risk of data corruption or loss,
safeguarding the integrity of user data, and maintaining trust in the platform. Detailed estimation of
Foundational Development and database optimization of sprint one is given below in table 3.2.

20
Table 3.2 Detailed estimation of Foundational Development and Database Optimization

21
3.1.3 Daily Scrum Activities
Vishal Gaur

Yesterday: Reviewed project requirements for the landing page and explored design inspirations and
concepts. Created wireframes and mock-ups for the homepage.

Presently: Designing UI components for the landing page and iterating on the design based on
feedback and testing.

Obstacles: Waiting for approval on design direction.

Ronit Kumar

Yesterday: Discussed functional requirements for the homepage and developed backend logic for
retrieving data. Implemented server-side rendering for the landing page and integrated API endpoints
for dynamic content.
Presently: Writing JavaScript code for homepage interactivity and refining backend endpoints based
on frontend needs.
Obstacles: Pending frontend components for data integration.
Daily scrum template of Foundational Development and Database Optimization of all the 4 weeks are
given below in the table 3.3.

22
Table 3.3 Daily scrum template of Foundational Development and Database
Optimization

Week-1

DAILY SCRUM TEMPLATE

Team
member
Question Monday Tuesday Wednesday Thursday Friday
Set up Created Installed Initialized
What did
project basic folder necessary client-side Took a
you do
repository on structure for Node.js and server- leave
yesterday?
GitHub. the project. modules. side files.
Integrating
Configuring Organizing Establishing
What are frontend
Vishal environment frontend routes and On
you doing components
Gaur variables for assets and controllers on leave
today? with backend
the server. source files. the server.
API.
Is there Pending
anything approval for Leave
N/A N/A N/A
blocking project day
you? architecture.
Structured Installed Configured
What did Set up local
server-side necessary database Took a
you do development
files and dependencies connections leave
yesterday? environment.
directories. for backend. and models.
Setting up Configuring
Implementing Integrating
What are ESLint and webpack for
middleware authentication On
Ronit you doing Prettier for bundling
for error and leave
Kumar today? code frontend
handling. authorization.
formatting. assets.
Resolving Waiting for
Is there
compatibility feedback on
anything Leave
N/A issues with N/A database
blocking day
Node.js schema
you?
versions. design.

23
Week-2

DAILY SCRUM TEMPLATE

Team
member
Question Monday Tuesday Wednesday Thursday Friday
Reviewed Explored Created Started
What did project design wireframes implementing
On
you do requirements inspirations and mockups frontend
leave
yesterday? for landing and for the layout and
page. concepts. homepage. styles.
Designing UI Iterating on Integrating Conducting
Vishal What are
components design based animations usability On
Gaur you doing
for the on feedback and testing on leave
today?
landing page. and testing. transitions. landing page.
Is there Waiting for
anything approval on Leave
N/A N/A N/A
blocking design day
you? direction.
Developed Integrated
Discussed Implemented
What did backend API
functional server-side On
you do logic for endpoints for
requirements rendering for leave
yesterday? retrieving dynamic
for homepage. landing page.
data. content.
Refining
Writing
backend Optimizing
What are JavaScript Conducting
Ronit endpoints server-side On
you doing code for unit tests on
Kumar based on rendering for leave
today? homepage backend logic.
frontend performance.
interactivity.
needs.
Pending
Is there
frontend
anything Leave
N/A components N/A N/A
blocking day
for data
you?
integration.

24
Week-3

DAILY SCRUM TEMPLATE

Team
member
Question Monday Tuesday Wednesday Thursday Friday
Reviewed Created Started
Explored UI
What did requirements wireframes implementing
design On
you do for and frontend
patterns for leave
yesterday? login/signup prototypes layout and
authentication.
pages. for pages. styles.
Designing UI Integrating
Iterating on Conducting
Vishal What are components form
design based usability On
Gaur you doing for validation
on feedback testing on leave
today? login/signup and error
and testing. authentication.
forms. handling.
Is there Waiting for
anything approval on Leave
N/A N/A N/A
blocking design day
you? direction.
Integrated
Discussed Implemented Implemented
What did Google
authentication basic login signup logic On
you do Passport
requirements logic and and user leave
yesterday? strategy for
with team. routes. registration.
login.
Refining
Optimizing
Writing authentication Conducting
What are authentication
Ronit JavaScript endpoints unit tests on On
you doing flows and
Kumar code for login based on login and leave
today? error
functionality. frontend signup logic.
handling.
needs.
Pending
Is there
frontend
anything Leave
N/A components N/A N/A
blocking day
for data
you?
integration.

25
Week-4
DAILY SCRUM TEMPLATE

Team
member
Question Monday Tuesday Wednesday Thursday Friday
Reviewed Explored Created Started
What did database database entity- implementing
On
you do requirements design relationship database
leave
yesterday? for user patterns and diagrams for schema in
data. structures. database. SQL.
Designing
Refining Implementing Conducting
Vishal What are tables and
database data initial testing On
Gaur you doing relationships
schema based validation and on database leave
today? for user
on feedback. constraints. architecture.
data.
Is there Waiting for
anything approval on Leave
N/A N/A N/A
blocking database day
you? design.
Designed
Discussed
Researched Implemented queries and
What did data
best practices database stored On
you do modeling
for database connectivity procedures leave
yesterday? approaches
security. in backend. for CRUD
with team.
operations.
Integrating
Ronit Writing Conducting Optimizing
What are database
Kumar SQL queries unit tests on database On
you doing operations
for database database performance leave
today? with backend
operations. interactions. and indexing.
logic.
Is there Pending
anything completion of Leave
N/A N/A N/A
blocking backend day
you? functionality.

3.1.4 Functional Documents


Introduction

The Portfolio Website Generator is an innovative solution aimed at simplifying the process of

creating professional and visually appealing portfolio websites. With a focus on user-friendly design

and seamless functionality, this system empowers individuals, particularly those without coding

expertise, to showcase their work and skills effectively. By leveraging cutting-edge web technologies,

26
the Portfolio Website Generator streamlines the website creation process, offering users a hassle-free

experience.

Product Goal

The primary goal of the Portfolio Website Generator is to provide users with a platform to

effortlessly build personalized portfolio websites. By offering a wide range of customizable templates

and intuitive editing tools, the system aims to enable users to showcase their work, achievements, and

expertise in a captivating and professional manner. Additionally, the Portfolio Website Generator

seeks to democratize website creation, making it accessible to individuals from diverse backgrounds

and skill levels.

3.1.5 Architecture Diagram of Foundational Development and Database Optimization

In Sprint 1 of the Portfolio Website Generator project, the architectural focus is on establishing
the foundational elements necessary for the system's seamless functionality. At its core, the system
comprises a client-side application, a server, a database, and various supporting modules. The client-
side application serves as the user interface accessible through web browsers, enabling users to interact
with the Portfolio Website Generator. Concurrently, the server hosts the backend logic responsible for
processing user requests and managing website generation. This server interacts with the client-side
application to handle template selections, content uploads, and other user interactions. Ensuring data
persistence and integrity, the database stores essential data such as user accounts, templates, and
website configurations.

Additionally, the architecture incorporates a template repository containing a diverse collection


of pre-built templates available for user selection. These templates serve as the foundation for users'
portfolio websites, offering various design styles and layouts to choose from. A Content Management
System (CMS) module complements the architecture by allowing users to manage the content of their
portfolio websites. This includes the creation, editing, and organization of text, images, and multimedia
elements, enhancing users' customization capabilities. Authentication and authorization mechanisms
ensure secure access to the Portfolio Website Generator, requiring users to log in with their credentials
and controlling user permissions based on predefined roles.

27
Furthermore, a web server component is integrated to host the client-side application and serve
static assets such as HTML, CSS, and JavaScript files to users' browsers. This web server handles
incoming HTTP requests and routes them to the appropriate components within the system, facilitating
seamless user interactions. Overall, the architecture of Sprint 1 emphasizes simplicity, reliability, and
scalability, laying a solid foundation for future enhancements and feature implementations in
subsequent sprints. Architecture diagram of portfolio website generator is given below in fig. 3.4.

Fig 3.4 Architecture Diagram of Foundational Development and Database Optimization

3.1.6 Architecture Document

Microservices: The Driver Drowsiness Detection System utilizes a microservices architecture,


breaking down functionalities such as facial recognition, steering pattern analysis, and alert
generation into independent services. This enables easier development, scaling, and maintenance of
each specific aspect.

Event-Driven: The system is event-driven, responding to real-time events such as facial expressions,
biometric data, and steering patterns. Events trigger immediate analysis, allowing the system to detect
and respond to driver drowsiness promptly.

28
3.1.7 Functional Test Case Document
The functional test cases follow in Table 3.5 encompass critical aspects of the drowsiness
detection system, validating installation, sensor integration, algorithm accuracy, real-time alerting, and
reporting functionalities. Each test verifies successful execution of specific system features, ensuring
reliable detection of drowsiness signs and prompt alerting. Identified issues are promptly addressed,
contributing to system refinement and user satisfaction, ensuring a robust and effective drowsiness
detection solution.

Table 3.5 Functional Test case of Foundational Development and Database Optimization

Functional Test Case Template


Feature Test Case Steps to execute test case Expected Output Actual Output Status More Information
Open the application's login page.
The user should be successfully logged The user was able to log in.
Enter a valid username. into the system.
User Login Valid User Login Pass User can also login using google passport
Enter a valid password. The application should redirect the user to The application redirects the user to
the home page. the home page.
Click on the "Login" button.

1. Navigate to the file upload


The file should be successfully uploaded
File Upload Successful File Upload section of the website. The file is uploaded successfully. Pass Pdf files can only be uplaoded.
to the website.
2. Click on the "Upload" button.

3.1.8 Defect Report

A Table 3.6 Defect Report serves as a critical tool for identifying and documenting issues encountered
during the testing phase of software development. It provides detailed information about the defect,
including its nature, severity, steps to reproduce, and any additional relevant details. This report
facilitates communication between testers, developers, and stakeholders, ensuring that defects are
addressed promptly and effectively. By systematically logging and tracking defects, teams can
prioritize and allocate resources efficiently to resolve them, ultimately improving the overall quality
and reliability of the software product.

29
Table 3.6 Defect Report of Foundational Development and Database Optimization

Defect Report
Severity
Reported
Feature Defect ID Defect Description (Low/Medium/ Screenshot Status Remarks
Environment UAT
High)
UAT (User Authentication DEF-001 Upon attempting to log in with valid High Close Reproduction Steps:
Acceptence testing) credentials, users are encountering an
authentication error, preventing successful Fill SignUp Details
access to the system. The issue is Fill SignUp Details
Go to login
observed consistently, and the error
Unable to login
message displayed does not provide
meaningful information to identify the root
cause.

30
3.1.9 Sprint Retrospective

The Table 3.7 Sprint Retrospective highlighted several key observations and reflections from
the team's recent sprint. Notable achievements included the successful implementation of real-time
alert generation and the integration of geolocation data, enhancing system functionality. Lessons
learned emphasized the effectiveness of collaborative problem-solving sessions and the value of
implementing automated testing. Areas lacking documentation for external libraries and the need for
more structured training sessions on new technologies were identified as areas for improvement.
Additionally, the team expressed a desire for improved feedback mechanisms on UI elements and
enhanced coordination with hardware teams. These insights will guide future sprints towards greater
efficiency and effectiveness.

Table 3.7 Sprint Retrospective of Foundational Development and Database Optimization


Sprint Retrospective
Liked Learned Lacked Longed For
Discuss lessons
Share aspects of the learned, whether they Identify areas where the Discuss any desires or
sprint that you are related to team felt a lack of expectations that the team
enjoyed or found processes, technical resources, support, or had but were not met
particularly effective. aspects, or teamwork. information. during the sprint.
Found satisfaction in
establishing a Acquired knowledge Needed more
Desired seamless
standardized file of UI/UX principles experience in advanced
integration with external
structure for better and implementation authentication
APIs and services.
organization and techniques. mechanisms.
collaboration.

3.2 Sprint 2 - Enhancing User Interaction and File Management


In Sprint 2, we focused on enhancing key features of the portfolio website generator. The first
task involved the implementation of a robust file upload structure, ensuring users could easily upload
their resume files to the platform. Next, we dedicated efforts to implementing efficient data extraction
algorithms to accurately parse information from uploaded files. Additionally, we focused on designing
pre-built templates using React, providing users with visually appealing options for showcasing their
portfolios. Finally, we prioritized the integration of these templates with the uploaded data, ensuring a
seamless and personalized user experience. Overall, Sprint 2 aimed to refine the platform's core
functionalities, laying the groundwork for a user-friendly and visually engaging portfolio creation
process

31
3.2.1 Sprint 2 - Capacity Plan of Enhancing User Interaction and File Management

To guarantee effective resource allocation, print's capacity planning, each team member's role,
availability, scheduled leaves, and extra activities are taken into consideration. Each of Ronit, Vishal,
the Scrum Master, and the Product Owner has set working days, prearranged vacation time, and time
set aside for extracurriculars like training. The planned workload distribution for each team member
is reflected in the estimated hours for design, development, testing, and documentation as show in
Table 3.8 Capacity plan for current sprint. This capacity plan considers each person's abilities and
responsibilities to maximize output and enable seamless sprint execution, improving team performance
as a whole and project success.

Table 3.8 Capacity plan of Enhancing User Interaction and File Management

Capacity Plan for Current Sprint


Design,
Planned Other
Development,
Working Leaves Course Upskilling Estimated
Name Role Testing,
Days (in work (in Days) Hours
Documentation
Days) activities
(in Days)
Sanskar Developer/Scrum 26 2 4 1 19
Master 95
Rishu Developer/Product 26 3 2 1 20
Owner 100

3.2.2 Detailed Estimation of User Stories of Enhancing User Interaction and File Management

3.2.2.1. Implement File Upload Structure

a) Enhancing User Interaction


The primary objective was to enhance user interaction and streamline file management through
the implementation of a file upload structure.
b) Creating Intuitive File Upload Functionality
Aimed to create intuitive and user-friendly file upload functionality to facilitate seamless
interaction for users. This involved designing and implementing a robust file upload structure
capable of efficiently handling various file types and sizes.
c) Designing the User-Friendly Interface
Emphasis was placed on designing a user-friendly interface to guide users through the file upload
process effortlessly. The interface prioritized clarity, simplicity, and ease of use, providing clear
instructions and feedback at each step.

32
d) Optimizing for Large File Handling
Efforts were made to optimize the file upload structure to handle large files efficiently.
Techniques such as chunked uploading and progressive enhancement were explored to enhance
performance and reliability, particularly with bulky files.
e) Thorough Testing and Refinement
Thorough testing and refinement were conducted throughout the sprint to ensure the robustness
and reliability of the file upload functionality. This involved rigorous testing under various
scenarios and incorporating feedback from users and stakeholders into the iterative development
process.
f) Successful Delivery of Enhanced File Upload Structure
By the conclusion of Sprint 2, the team had successfully delivered an enhanced file upload
structure. This implementation significantly improved user interaction and streamlined the file
management process, providing users with a seamless and efficient experience when uploading
files to the platform.
3.2.2.2. Data Extraction From Files

a) Objective of Data Extraction Feature Implementation:


The primary goal of this task was to implement robust data extraction features to parse
information from uploaded files effectively. This functionality aimed to enhance the platform's
capabilities by automating the extraction process and enabling users to populate their portfolios
seamlessly.
b) Implementation of Data Extraction
Focused on implementing data extraction algorithms capable of parsing various file formats,
including PDFs, to extract relevant information such as contact details, work experience,
education, and skills. This involved integrating sophisticated algorithms to analyze the file
content accurately and extract structured data.
c) Integration of Efficient Extraction Algorithms:
Integrate a head pose estimation library, such as Open Face, through software integration and
parameter tuning for optimal performance.
d) Ensuring Accuracy and Compatibility:
Special attention was given to ensuring the accuracy and compatibility of the data extraction
process. Rigorous testing and validation procedures were employed to verify the extracted data's
accuracy and compatibility with the platform's data model. Compatibility checks were also
conducted to ensure seamless integration with the platform's existing features and functionalities.

33
e) Thorough Testing and Quality Assurance:
The implementation underwent thorough testing and quality assurance processes to identify and
address any potential issues or discrepancies. This included testing the extraction algorithms
under various scenarios and file formats to ensure consistent performance and accuracy across
different use cases.

3.2.2.4. Pre-Build template designing - React

The objective of this task was to enhance the user experience by providing visually appealing
and customizable templates for users to choose from when creating their portfolios. By offering pre-
built templates, developers sought to streamline the portfolio creation process and empower users with
diverse design options to suit their preferences.

Developers focused on designing and implementing a variety of pre-built templates using React
and CSS. These templates were carefully crafted to incorporate modern design principles, including
responsive layouts, attractive typography, and intuitive navigation elements. Each template was
designed to offer a distinct visual style and layout, catering to different preferences and professional
fields.

The development process involved leveraging the capabilities of React, a JavaScript library for
building user interfaces, to create dynamic and interactive template components. CSS was utilized to
style and customize the appearance of the templates, ensuring consistency and coherence across the
platform.

Special emphasis was placed on ensuring that the pre-built templates were highly customizable
and diverse. Users were provided with options to personalize their chosen template by adjusting colors,
fonts, layout elements, and content sections to align with their branding and preferences. By offering
a range of templates with customizable features, developers aimed to cater to the diverse needs and
aesthetic preferences of users.

Following the implementation of the pre-built templates, thorough testing and quality
assurance measures were conducted to ensure their functionality, responsiveness, and compatibility
across devices and browsers. Additionally, user feedback and usability testing were utilized to gather
insights into the templates' effectiveness and identify areas for improvement, ensuring that the final
designs met user expectations and enhanced the overall user experience.

34
3.2.2.4. Pre-Build template designing - React

The primary objective of this task was to seamlessly integrate the pre-built templates with the
data uploaded by users, ensuring a cohesive and personalized user experience across the website.
Developers aimed to create a seamless integration process that would dynamically link the templates
with the uploaded data, allowing users to visualize their information within their chosen template
layout.

To achieve this goal, developers focused on developing robust mechanisms to dynamically link
the pre-built templates with the uploaded data. This involved implementing backend logic to fetch the
user's data from the database and dynamically populate the template components with the relevant
information. By establishing this integration, users could see their personal and professional details
displayed within the selected template design, creating a cohesive and personalized portfolio
presentation.

Special attention was given to optimizing the integration process for handling multiple files
uploaded by users. Developers implemented scalable solutions to efficiently manage and process large
volumes of data, ensuring that the integration remained seamless and responsive regardless of the size
or complexity of the uploaded files. This optimization contributed to a smooth user experience,
allowing users to seamlessly integrate their data across the website without encountering performance
issues or delays.

Throughout the development process, rigorous testing and quality assurance measures were
employed to validate the integration functionality and ensure its reliability and stability. Developers
conducted comprehensive testing to verify that the templates accurately reflected the uploaded data
and that all integration features performed as expected across different scenarios and use cases. By
prioritizing seamless integration and optimal performance, developers aimed to deliver a user-centric
solution that effectively combined data and design to create compelling online portfolios.

For all users stories we follow Table 3.9 Detailed estimation for sprint 2 and User Interaction and File
Management.

35
Table 3.6 Defect Report of Foundational Development and Database Optimization

36
3.2.3 Daily Scrum Activities

Vishal Gaur dedicated his efforts to refining the parsing algorithms, enhancing code structure,
and incorporating user-friendly features into the portfolio website generator. Simultaneously, Ronit
Kumar focused on optimizing template rendering, implementing drag-and-drop functionality, and
refining backend processes. Daily scrum template for Hardware and Software Integration are
mentioned below in the table 3.10.
Table 3.10 Daily scrum template for Hardware and Software Integration
Week-5

DAILY SCRUM TEMPLATE

Team
member
Question Monday Tuesday Wednesday Thursday Friday
Created Started
Reviewed Explored UI
wireframes implementing
What did requirements design
and frontend On
you do for file patterns for
prototypes for layout and leave
yesterday? upload file upload
file upload styles for file
feature. interface.
component. upload.
Designing
Integrating Conducting
Vishal UI Iterating on
What are drag-and-drop usability
Gaur components design based On
you doing functionality testing on file
for file on feedback leave
today? for file upload
upload and testing.
upload. interface.
dropbox.
Is there Waiting for
anything approval on Leave
N/A N/A N/A
blocking design day
you? direction.
Integrated Implemented
Discussed Implemented
What did Multer file storage
file upload backend On
you do middleware logic and
requirements routes for leave
yesterday? for file directory
with team. file upload.
handling. structure.
Refining file
Writing Optimizing
upload Conducting
What are JavaScript file upload
Ronit endpoints unit tests on On
you doing code for file performance
Kumar based on file upload leave
today? upload and error
frontend logic.
functionality. handling.
needs.
Pending
Is there
frontend
anything Leave
N/A components N/A N/A
blocking day
for data
you?
integration.

37
Week-6

DAILY SCRUM TEMPLATE

Team
member
Question Monday Tuesday Wednesday Thursday Friday
Started
Explored
Reviewed Developed implementing
What did parsing
requirements regex patterns frontend for On
you do algorithms
for data for data displaying leave
yesterday? for file
extraction. extraction. extracted
types.
data.
Designing
UI Conducting
Vishal Iterating on Integrating
What are components usability
Gaur design based data display On
you doing for testing on
on feedback with backend leave
today? displaying data display
and testing. functionality.
extracted interface.
data.
Is there Waiting for
anything approval on Leave
N/A N/A N/A
blocking design day
you? direction.
Discussed Implemented
Researched Tested regex
What did data parsing
parsing patterns for On
you do extraction algorithms for
libraries and accuracy and leave
yesterday? approaches supported file
tools. efficiency.
with team. types.
Writing Refining Optimizing
Conducting
Ronit What are JavaScript data performance
unit tests on On
Kumar you doing code for extraction of data
parsing leave
today? parsing logic based extraction
algorithms.
algorithms. on testing. processes.
Is there Pending
anything completion Leave
N/A N/A N/A
blocking of parsing day
you? algorithms.

38
Week-7
DAILY SCRUM TEMPLATE

Team
member
Question Monday Tuesday Wednesday Thursday Friday
Started
Created
Explored UI implementing
Reviewed wireframes
What did design frontend
requirements and On
you do patterns for layout and
for pre-built prototypes for leave
yesterday? template styles for
templates. template
frontend. template
designs.
pages.
Designing
Vishal Integrating Conducting
UI Iterating on
Gaur What are template usability
components design based On
you doing designs with testing on
for template on feedback leave
today? backend template
portfolio and testing.
functionality. pages.
pages.
Is there Waiting for
anything approval on Leave
N/A N/A N/A
blocking design day
you? direction.
Discussed Implemented Implemented
Integrated
What did template backend logic for
data fetching On
you do portfolio routes for dynamic
for template leave
yesterday? requirements template template
content.
with team. pages. rendering.
Writing Refining Conducting
Optimizing
Ronit What are JavaScript template unit tests on
performance On
Kumar you doing code for logic based template
of template leave
today? template on frontend rendering
rendering.
functionality. needs. logic.
Is there Pending
anything completion Leave
N/A N/A N/A
blocking of frontend day
you? integration.

39
Week-8
DAILY SCRUM TEMPLATE

Team
member
Question Monday Tuesday Wednesday Thursday Friday
Started
Reviewed Explored UI Created
implementing
What did requirements design wireframes
frontend On
you do for patterns for and
integration leave
yesterday? integrating data prototypes for
with parsed
parsed data. integration. data display.
data.
Designing
Conducting
Vishal UI Iterating on Integrating
What are usability
Gaur components design based parsed data On
you doing testing on
for on feedback with template leave
today? integrated
displaying and testing. frontend.
pages.
parsed data.
Is there Waiting for
anything approval on Leave
N/A N/A N/A
blocking design day
you? direction.
Discussed Implemented Implemented
Integrated
What did data backend logic for data
parsed data On
you do integration routes for binding in
with backend leave
yesterday? approaches data template
functionality.
with team. retrieval. pages.
Refining Conducting Optimizing
Writing
Ronit What are data binding unit tests on performance
JavaScript On
Kumar you doing logic based data of data
code for data leave
today? on frontend integration integration
integration.
needs. logic. processes.
Is there Pending
anything completion Leave
N/A N/A N/A
blocking of frontend day
you? integration.

3.2.4 Functional Documents

Demography (Users, Location):


Users:
Target Users: The Portfolio Website Generator caters to a diverse user base including job seekers,
professionals, and students worldwide. It serves individuals aiming to enhance their online
professional presence.

40
User Characteristics: Users vary in professional backgrounds, experience levels, and career
aspirations. They seek to create dynamic, visually appealing profiles to stand out in the competitive
job market.
Location:
Target Location: The platform is accessible globally, acknowledging the widespread need for
effective job application tools across different geographical regions. It accommodates users from
diverse locations, ensuring inclusivity and relevance in various job-seeking environments.

Business Processes:
The Portfolio Website Generator encompasses the following key business processes:
a) Resume Upload and Conversion: Users upload static PDF resumes to the platform for conversion
into interactive web-based profiles.
b) Data Processing: The system processes the uploaded resumes, extracting relevant information and
structuring it into visually appealing formats.
c) Profile Customization: Users customize their profiles with templates, themes, and additional
multimedia elements to enhance presentation.
d) Deployment: Upon completion, the platform deploys them online for visibility to potential
employers.

3.2.5 Architecture Document

Microservices

Our application architecture uses few microservices such as Google Passport for signup and
Razorpay for payment integration.
Event-Driven

Our project leverages an event-driven architecture to provide a dynamic and interactive user
experience. Through seamless integration of event handling mechanisms, user interactions such as
clicking buttons, uploading files, or scrolling trigger specific actions within the application. These
events serve as catalysts for various functionalities, including data fetching, UI updates, and
navigation, ensuring that users can effortlessly interact with our personalized templates and benefit
from a smooth and responsive interface.

3.2.6 Functional Test Case Document

41
The functional test cases for the portfolio website generator encompass critical aspects of the
system's functionality, ensuring its reliability and user-friendliness. The "Valid User Login" test case
validates the seamless authentication process, confirming that users can successfully log in to their
accounts using valid credentials. Meanwhile, the "Successful File Upload" test case assesses the
system's ability to efficiently handle file uploads, ensuring that users can upload their portfolio assets
without encountering errors or delays. Lastly, the "Text Extraction from PDF" test case verifies the
accuracy and effectiveness of the text extraction algorithm, ensuring that relevant information can be
extracted accurately from uploaded PDF files to populate the user's portfolio website. Successful
execution of these test cases demonstrates the system's readiness for deployment, with any identified
issues serving as opportunities for refinement to enhance overall performance and usability. Functional
test case document of Hardware and Software Integration is mentioned below in the table 3.12.

42
Table 3.11 Functional test case document of Hardware and Software

Functional Test Case Template Integration


Feature Test Case Steps to execute test case Expected Output Actual Output Status More Information
Open the application's login page.
The user should be successfully logged The user was able to log in.
Enter a valid username. into the system.
User Login Valid User Login Pass User can also login using google passport
Enter a valid password. The application should redirect the user to The application redirects the user to
the home page. the home page.
Click on the "Login" button.

1. Navigate to the file upload


The file should be successfully uploaded

43
File Upload Successful File Upload section of the website. The file is uploaded successfully. Pass Pdf files can only be uplaoded.
to the website.
2. Click on the "Upload" button.

The application should extract text from Text is successfully extracted from
1. Access the text extraction
the uploaded pdf. the pdf. Text Extracted and Portfolio website is
Text Extraction Text Extraction from PDF feature in the application. Pass
The extracted text should be displayed Extracted text is displayed on the generated.
2. Upload a pdf containing text.
on the template. template.
3.2.7 Defect Report
A Table 3.13 Defect Report serves as a critical tool for identifying and documenting issues
encountered during the testing phase of software development. It provides detailed information about
the defect, including its nature, severity, steps to reproduce, and any additional relevant details. This
report facilitates communication between testers, developers, and stakeholders, ensuring that defects
are addressed promptly and effectively. By systematically logging and tracking defects, teams can
prioritize and allocate resources efficiently to resolve them, ultimately improving the overall quality
and reliability of the software product.

44
Table 3.12 Defect Report of Hardware and Software Integration

45
3.2.8 Sprint Retrospective
In the Sprint Retrospective for the portfolio website generator project, several key insights and
reflections emerged from the team's recent sprint. Significant achievements included the successful
integration of real-time alert features and the incorporation of geolocation data, which bolstered the
system's functionality. Valuable lessons were learned through collaborative problem-solving sessions
and the implementation of automated testing, highlighting the importance of these practices in ensuring
project success. However, areas for improvement were also identified, such as the need for better
documentation of external libraries and structured training sessions on new technologies. Additionally,
the team expressed a desire for enhanced feedback mechanisms for UI elements and improved
coordination with hardware teams. These reflections will inform future sprints, guiding the team
towards greater efficiency and effectiveness in project execution. Sprint retrospective table is
mentioned below in table 3.13.
Table 3.13 Sprint retrospective of Hardware and Software Integration

Sprint Retrospective
Liked Learned Lacked Longed For
Discuss lessons
Share aspects of the learned, whether they Identify areas where the Discuss any desires or
sprint that you are related to team felt a lack of expectations that the team
enjoyed or found processes, technical resources, support, or had but were not met
particularly effective. aspects, or teamwork. information. during the sprint.
Enjoyed developing
Gained insights into Required more expertise Aspired for more diverse
user-friendly file
data processing and in optimizing large file and customizable
upload functionality
extraction techniques. handling. template options.
with intuitive design.
Appreciated the
Learned about Needed deeper Desired smoother
creativity involved in
template integration understanding of API integration between
designing pre-built
techniques and rate limiting and fair templates and uploaded
templates using React
dynamic data linking. usage policies. data.
components.
Liked the challenge of
Acquired knowledge Lacked experience in Longed for enhanced
implementing secure
of DevOps principles setting up subdomains monitoring and
payment gateway
and deployment for customized user optimization tools for
integration for
strategies. portfolios. deployment processes.
seamless transactions.

46
3.3 Sprint 3 - Deployment Optimization and Infrastructure Scaling
Sprint 3 marks the final phase of development for the portfolio website generator project,
focusing on refining features, optimizing performance, and preparing for deployment. Building on the
foundational work accomplished in previous sprints, Sprint 3 aims to enhance user experience,
strengthen security measures, and streamline the deployment process. With a keen focus on delivering
a polished and user-friendly product, this sprint emphasizes the integration of payment gateways,
implementation of rate limiting policies, and finalization of DevOps deployments. Additionally,
attention is directed towards addressing any remaining bugs or issues identified during testing,
ensuring a seamless and error-free user experience. Sprint 3 represents the culmination of the project's
development efforts, setting the stage for the product's launch and subsequent user adoption.

3.3.1 Sprint 3 - Capacity Plan for Deployment Optimization and Infrastructure Scaling

The following capacity plan outlines the resource allocation and workload distribution for
Sprint 2 of our project. We, as a team, are committed to achieving our goals effectively and efficiently.
Vishal and Ronit, our dedicated developers, have planned to work for 26 days and 20 days,
respectively. Throughout the sprint, Vishal and Ronit will allocate time for coursework activities and
upskilling to ensure continuous learning and growth. As the Scrum Master, I will facilitate the process,
dedicating two days for planned leave, two days for coursework, and three days for upskilling while
working for 20 days. Our Product Owner, responsible for guiding development, has allocated 26 days
for work, with three days for planned leave, two days for coursework, and one day for upskilling. This
meticulous planning aims to maintain a balanced workload and optimize productivity, allowing us to
deliver high-quality results within the sprint timeline.
Table 3.14 Capacity plan of Deployment Optimization and Infrastructure Scaling

Capacity Plan for Current Sprint


Design,
Planned Other
Development,
Working Leaves Course Upskilling Estimated
Name Role Testing,
Days (in work (in Days) Hours
Documentation
Days) activities
(in Days)
Ronit Developer/Scrum 26 3 2 1 20
Master 100
Vishal Developer/Product 26 2 1 1 22
Owner
110

47
3.3.2 Detailed Estimation of User Stories for Deployment Optimization and Infrastructure
Scaling

3.3.2.1. Rate Limiting & Fair Usage Policy

In Sprint 3, our development team shifted its focus towards implementing crucial mechanisms
aimed at ensuring equitable resource allocation and preventing abuse within our portfolio website
generator platform. This phase marked a pivotal stage in our project's evolution, as we sought to
establish robust measures to uphold fairness and maintain the integrity of our platform. At the forefront
of our objectives was the implementation of rate limiting and a fair usage policy, which served as
foundational elements in fostering a balanced and sustainable user environment.

Central to our efforts was the development of mechanisms to restrict users from engaging in
excessive resource utilization beyond predefined limits. We recognized the importance of safeguarding
our platform's resources to ensure optimal performance and mitigate the risk of system overload. By
implementing stringent controls and limitations, we aimed to prevent individual users from
monopolizing resources, thereby fostering an environment conducive to fair access and usage for all.

An essential aspect of our task involved enforcing limitations on API calls based on predefined
rate limits. This required the implementation of sophisticated tracking mechanisms to monitor user
activity and API usage in real-time. Through the integration of robust tracking and enforcement
systems, we empowered our platform to dynamically adjust resource allocations and enforce rate limits
in accordance with predefined thresholds. This proactive approach not only helped optimize resource
utilization but also ensured that users adhered to established usage guidelines, promoting fairness and
preventing potential abuse.

Collaboration with stakeholders played a pivotal role in shaping our approach towards defining
usage and rate limits. We engaged in thorough discussions and consultations to gain insights into user
needs and expectations while considering factors such as resource availability and user subscription
plans. By aligning our policies with user requirements and industry standards, we aimed to strike a
balance between providing flexibility for users and safeguarding the stability and sustainability of our
platform.

In conclusion, Sprint 3 represented a significant milestone in our project's journey,


characterized by the implementation of rate limiting and a fair usage policy to promote fairness,

48
transparency, and sustainability within our portfolio website generator platform. Through meticulous
planning, collaboration, and execution, we established robust mechanisms to regulate resource
utilization, enforce usage guidelines, and foster an environment conducive to equitable access and
usage for all users.

3.3.2.2. Payment integration and Making subdomains

Our development focus expanded to encompass two critical functionalities: payment


integration and subdomain creation. These features were integral to enhancing the user experience and
facilitating seamless deployment of websites generated through our platform. Our primary objective
was to streamline the process of enabling users to make payments for deploying their personalized
portfolio websites while also offering the convenience of creating unique subdomains for their online
presence.

Central to our efforts was the integration of a reliable payment gateway to facilitate secure and
convenient transactions. We recognized the importance of providing users with a seamless payment
experience while prioritizing security and reliability. To achieve this, we opted to implement
Razorpay, a trusted payment processing solution known for its robust features and seamless integration
capabilities. By leveraging Razorpay's services, we aimed to offer users a range of payment options
and ensure that transactions were conducted securely and efficiently.

Simultaneously, we focused on enabling users to create subdomains for their deployed


websites, thereby enhancing their online presence and customization options. Subdomains provided
users with a unique web address that reflected their personal branding and identity. Implementing this
feature required meticulous planning and execution to ensure that subdomains were created seamlessly
and integrated seamlessly with users' deployed websites.

Throughout the development process, our team prioritized the security and reliability of both
payment transactions and subdomain creation. We implemented stringent measures to safeguard users'
financial information and personal data, adhering to industry best practices and compliance standards.
Additionally, we conducted thorough testing and validation to ensure the seamless functioning of
payment processing and subdomain creation functionalities across different scenarios and user
interactions.

49
In conclusion, Sprint 3 marked a significant milestone in our project's journey, as we
successfully implemented payment integration and subdomain creation features to enhance the
functionality and usability of our portfolio website generator platform. Through careful planning,
collaboration, and execution, we empowered users to seamlessly make payments for deploying their
websites and create unique subdomains to showcase their professional identity online.
3.3.2.3. Payment integration and Making subdomains

In Sprint 3, our focus shifted towards optimizing the deployment process to ensure efficient
and reliable releases of the portfolio websites generated through our platform. Our primary objective
was to streamline the deployment pipeline and establish a robust infrastructure for hosting and serving
the deployed websites. To achieve this, we adopted a DevOps approach, integrating development and
operations practices to automate and streamline the deployment process.
Central to our deployment strategy was the utilization of Amazon EC2 instances and Nginx for
hosting and serving the portfolio websites. We recognized the scalability, flexibility, and reliability
offered by EC2 instances, making them an ideal choice for our deployment needs. By leveraging EC2
instances, we could easily provision virtual servers and configure them to meet the specific
requirements of hosting portfolio websites.
Additionally, we deployed Nginx as a web server and reverse proxy to efficiently handle
incoming HTTP requests and serve static and dynamic content. Nginx's lightweight and high-
performance architecture made it well-suited for our deployment environment, ensuring fast and
reliable delivery of portfolio websites to users.
Throughout the deployment process, we prioritized reliability, security, and performance to
ensure optimal user experience. We implemented robust monitoring and logging mechanisms to track
the health and performance of the deployment environment, enabling timely detection and resolution
of any issues that may arise. Furthermore, we implemented cost optimization strategies to minimize
operational expenses while maximizing resource utilization and efficiency.
In conclusion, Sprint 3 marked the culmination of our efforts to establish a streamlined and
efficient deployment process for the portfolio websites generated through our platform. By leveraging
DevOps practices and utilizing technologies such as Amazon EC2 and Nginx, we were able to ensure
reliable, secure, and performant deployment of portfolio websites while optimizing costs and
enhancing the overall user experience.

50
Table 3.15 Detailed estimation of Deployment Optimization and Infrastructure Scaling

51
3.3.3 Daily Scrum Activities

In Sprint 3, team members Vishal Gaur and Ronit Kumar demonstrated commendable progress
and collaboration in their daily scrum activities. They diligently provided updates on their tasks,
showcasing their involvement in various project activities such as refining features, conducting
usability testing, integrating payment gateways, and finalizing documentation. Daily scrum activity of
Deployment Optimization and Infrastructure Scaling is given in the table 3.16 below.
Table 3.16 Daily scrum activity of Deployment Optimization and Infrastructure Scaling
Week-9

DAILY SCRUM TEMPLATE

Team
Wednesda Frida
membe Question Monday Tuesday Thursday
r y y
Started
Created
implementin
What did Reviewed Explored UI wireframes
g frontend
you do requirement design patterns and On
for rate
yesterday s for rate for fare usage prototypes for leave
limiting and
? limiting. policy. rate limiting
fare usage
UI.
policy.
Integrating
Vishal Designing Conducting
Iterating on frontend with
Gaur What are UI usability
design based on backend On
you doing components testing on
feedback and functionality leave
today? for setting rate limiting
testing. for rate
rate limits. interface.
limiting.
Is there Waiting for
anything approval on Leave
N/A N/A N/A
blocking design day
you? direction.
What did Discussed Implemented Implemented
Researched fare
you do rate limiting backend logic backend On
usage policies
yesterday requirement for rate logic for fare leave
and regulations.
? s with team. limiting. usage policy.
Writing Optimizing
Refining Conducting
What are JavaScript performance
backend logic unit tests on On
Ronit you doing code for rate of rate
based on rate limiting leave
Kumar today? limiting limiting
frontend needs. functionality.
logic. processes.
Pending
Is there
completion of
anything Leave
N/A backend N/A N/A
blocking day
implementation
you?
.

52
Week-10

DAILY SCRUM TEMPLATE

Team
Wednesda Frida
membe Question Monday Tuesday Thursday
r y y
Created
Reviewed wireframes Started
What did Explored UI
requirement and implementin
you do design patterns On
s for prototypes for g frontend
yesterday for payment leave
payment payment for payment
? interface.
integration. integration integration.
UI.
Vishal Designing Integrating Conducting
Iterating on
Gaur What are UI frontend with usability
design based on On
you doing components backend testing on
feedback and leave
today? for payment payment payment
testing.
options. functionality. interface.
Is there Waiting for
anything approval on Leave
N/A N/A N/A
blocking design day
you? direction.
Discussed Implemented
What did Researched Implemented
payment logic for
you do payment backend logic On
integration creating
yesterday gateways and for payment leave
requirement subdomains
? APIs. processing.
s with team. dynamically.
Writing
JavaScript Refining Conducting Optimizing
What are
Ronit code for backend logic unit tests on performance On
you doing
Kumar payment based on payment of payment leave
today?
integration frontend needs. functionality. processes.
logic.
Pending
Is there
completion of
anything Leave
N/A backend N/A N/A
blocking day
implementation
you?
.

53
Week-11

DAILY SCRUM TEMPLATE

Team
member
Question Monday Tuesday Wednesday Thursday Friday
Configured Set up Deployed
What did Prepared
NGINX domain frontend On
you do frontend code
settings for settings on code to EC2 leave
yesterday? for deployment.
hosting. GoDaddy. instance.
Testing
Conducting
What are Troubleshooting website Finalizing
Vishal final checks On
you doing deployment functionality domain
Gaur before leave
today? issues. on EC2 configuration.
launch.
instance.
Is there
anything Leave
N/A N/A N/A N/A
blocking day
you?
Optimized
Configured Configured Ensured
What did NGINX
backend DNS records server On
you do performance
services for for security and leave
yesterday? for
deployment. subdomains. permissions.
scalability.
Troubleshooting Conducting Finalizing Conducting
Ronit What are
backend load testing DNS settings security On
Kumar you doing
deployment on deployed for audits on leave
today?
issues. services. subdomains. the server.
Is there
anything Leave
N/A N/A N/A N/A
blocking day
you?

3.3.4 Functional Documents

Introduction:

The online resume transformation platform is an innovative project aimed at revolutionizing the
traditional job application process. In a dynamic job market, presenting one's professional journey
effectively is crucial. Our platform addresses this need by offering a user-friendly solution to convert
static PDF resumes into interactive, visually appealing web-based profiles. By embracing cutting-
edge technologies, we aim to empower users in showcasing their skills and experiences in a way that
stands out to potential employers.

54
Product Goal:

The primary goal of our platform is to provide users with a tool that enhances the presentation of
their professional information. We seek to streamline the job application process by transforming
conventional resumes into dynamic, interactive profiles that capture the attention of recruiters.

Demography (Users, Location):

Users:

Target Users: The Portfolio Website Generator caters to a diverse user base including job seekers,
professionals, and students worldwide. It serves individuals aiming to enhance their online
professional presence.

User Characteristics: Users vary in professional backgrounds, experience levels, and career
aspirations. They seek to create dynamic, visually appealing profiles to stand out in the competitive
job market.

Location:

Target Location: The platform is accessible globally, acknowledging the widespread need for
effective job application tools across different geographical regions. It accommodates users from
diverse locations, ensuring inclusivity and relevance in various job-seeking environments.

Business Processes:

The Portfolio Website Generator encompasses the following key business processes:

a) Resume Upload and Conversion: Users upload static PDF resumes to the platform for conversion
into interactive web-based profiles.

b) Data Processing: The system processes the uploaded resumes, extracting relevant information and
structuring it into visually appealing formats.

c) Profile Customization: Users customize their profiles with templates, themes, and additional
multimedia elements to enhance presentation.

d) Deployment: Upon completion, the platform deploys them online for visibility to potential
employers.

Features:

Feature: PDF Parsing and Portfolio Generation

55
a) Description: The platform parses the content of uploaded PDF resumes, extracting relevant
information such as work experience, education, skills, and contact details. It then dynamically
generates an HTML/CSS portfolio based on the parsed information, ensuring a visually appealing
and professionally formatted online profile.

b) User Story: As a user, I want the platform to efficiently parse my PDF resume and automatically
create an attractive HTML/CSS portfolio, enabling me to showcase my professional information
effectively to potential employers.

Authorization Matrix
Define the roles and their corresponding access levels:

Table 3.18 Authorization Matrix

Role Access Level

Full access to Code Management


Administrator View, edit and manage user data.
Ability to revoke the website hosted in the user's name.

Upload PDF resumes for parsing and portfolio generation.


User Customize the generated HTML/CSS portfolio based on parsed information.
Access the hosted portfolio for personal and professional use.

Assumptions:

1. Users will have access to reliable internet connections for an optimal platform experience.

2. The text extraction tool will provide accurate results for diverse resume formats.

3. The platform will comply with data privacy regulations to ensure the confidentiality of user
information.

4. Users will engage positively in collaborative features, contributing to a supportive


community environment.

5. Regular updates and improvements will be made based on user feedback and evolving
industry trends.

56
3.3.5 Architecture Document

1. Frequency of Data Exchange

The frequency of data exchange in a portfolio website generator varies based on user interactions and
system requirements, occurring during actions like file uploads, design changes, and website
publishing.
3. Mode of Exchanges (API, File, Queue etc.)
Our project primarily utilizes API-based exchanges for several reasons. APIs offer a
standardized and efficient means of communication between different software components,
allowing seamless integration and data transfer. By leveraging APIs, we can easily connect our
system with external services and resources, such as payment gateways for handling transactions,
cloud storage for managing user data, and hosting platforms for deploying websites. Additionally,
APIs provide a structured way to access and manipulate data, enabling us to extract information from
uploaded resumes, process payments securely, and interact with various functionalities within our
platform. This approach enhances flexibility, scalability, and maintainability, as we can adapt to
changes in external services and extend our system's capabilities by integrating with new APIs or
updating existing ones without disrupting the overall functionality. Overall, API-based exchanges
streamline our project's operations, ensuring smooth interactions and robust performance across the
entire ecosystem.
3.3.6 Functional Test Case Document

The functional test cases for the portfolio website generator encompass critical aspects of user
interaction and system functionality. "Valid User Login" ensures the seamless authentication process,
allowing users to access their accounts securely. "Successful File Upload" verifies the system's
capability to upload files, a fundamental feature for users to add content to their portfolios. "Text
Extraction from PDF" tests the accuracy and reliability of the data extraction algorithm, ensuring that
information from uploaded documents is extracted correctly. Lastly, "Successful Payment Process"
confirms the smooth integration of payment gateways, enabling users to subscribe to premium features
effortlessly. Together, these test cases ensure the robustness and usability of the portfolio website
generator, enhancing the user experience and facilitating efficient website creation. Function Test case
of Deployment Optimization and Infrastructure Scaling are given below in the table 3.17.

57
Table 3.18 Function Test case of Deployment Optimization and Infrastructure Scaling
Functional Test Case Template
Feature Test Case Steps to execute test case Expected Output Actual Output Status More Information
Open the application's login page.
The user should be successfully logged The user was able to log in.
Enter a valid username. into the system.
User Login Valid User Login Pass User can also login using google passport
Enter a valid password. The application should redirect the user to The application redirects the user to
the home page. the home page.
Click on the "Login" button.

1. Navigate to the file upload


The file should be successfully uploaded
File Upload Successful File Upload section of the website. The file is uploaded successfully. Pass Pdf files can only be uplaoded.
to the website.
2. Click on the "Upload" button.

58
The application should extract text from Text is successfully extracted from
1. Access the text extraction
the uploaded pdf. the pdf. Text Extracted and Portfolio website is
Text Extraction Text Extraction from PDF feature in the application. Pass
The extracted text should be displayed Extracted text is displayed on the generated.
2. Upload a pdf containing text.
on the template. template.

1. Navigate to the payment The payment should be processed


Payment is processed successfully.
section of the application. successfully.
Confirmation message: "Payment
2. Enter valid A confirmation message should be
successful! Thank you for your User can check the orders in the Orders
Payment Successful Payment Process payment details (e.g., credit card displayed indicating the successful Pass
purchase." tab.
number, expiry date, CVV). payment.
User is redirected to the hosted
3. Click on the The user should be redirected to the
website.
"Pay Now" or similar button. hosted website.
3.3.7 Defect Report
The following Table 3.18 Defect Report highlights critical issues encountered during the
testing phase of the portfolio website generator. Firstly, users are experiencing authentication errors
despite entering valid credentials, impeding their access to the system. This consistent issue disrupts
user workflow and requires immediate resolution to ensure seamless user login. Additionally, crucial
information such as the user's name and email are missing from the payment confirmation page,
leading to a lack of clarity regarding successful payment transactions. Furthermore, the absence of a
confirmation message for failed payments and missing routes for the payment failed page add to the
usability challenges, hindering user understanding of transaction outcomes. Addressing these defects
promptly is essential to enhance system functionality and user experience.

59
Table 3.18 Defect Report of Deployment Optimization and Infrastructure Scaling

60
3.3.8 Sprint Retrospective

As documented in Table 3.19, the Sprint Retrospective for the portfolio website generator
scrutinizes various facets of the sprint, highlighting achievements, insights gained, areas necessitating
refinement, and unmet anticipations. Remarkable successes encompass the seamless integration of
real-time alert generation and the substantial augmentation of geolocation data within the system.
Valuable lessons were gleaned from collaborative problem-solving endeavors and the deployment of
automated testing protocols. However, challenges surfaced due to inadequacies in documenting
external libraries and a dearth of feedback on user interface components. Additionally, the team
identified a need for more structured training sessions and improved coordination with hardware
counterparts. Through conscientious reflection and deliberation, the team aims to streamline processes
and pinpoint opportunities for enhancement in forthcoming sprints.
Table 3.19 Sprint Retrospective for Deployment Optimization and Infrastructure
Scaling

Sprint Retrospective
Liked Learned Lacked Longed For
Discuss lessons
Share aspects of the learned, whether they Identify areas where the Discuss any desires or
sprint that you are related to team felt a lack of expectations that the team
enjoyed or found processes, technical resources, support, or had but were not met
particularly effective. aspects, or teamwork. information. during the sprint.
Enjoyed
Gained insights into Needed more expertise Aspired for enhanced
implementing rate
payment gateway in setting up and deployment monitoring
limiting policies for
integration and secure managing subdomains and optimization
fair resource
transaction handling. for user portfolios. capabilities.
allocation and usage.
Found satisfaction in Learned about Lacked advanced Desired smoother
streamlining optimizing resource knowledge in integration with third-
deployment processes management for configuring and party APIs and services
and ensuring reliable efficient usage managing payment for extended
deployments. tracking. gateways. functionality.

61
CHAPTER 4

RESULTS AND DISCUSSIONS

4.1 Outcome of Foundation Establishment and Core Features


Implementation
a) Standard File and Code Structure Implementation: Established a consistent file and code
structure for improved maintainability. Implemented coding conventions to ensure uniformity
across the project.
b) Landing Page Design Enhancement: Designed and implemented an engaging and visually
appealing homepage layout. Developed React code to bring the designed layout to life,
ensuring a seamless user experience.
c) User Authentication Implementation: Implemented secure user authentication mechanisms
to ensure data privacy. Integrated Google Passport and self-login for user authentication.
d) User Database Architecture Optimization: Optimized database efficiency for improved
performance and scalability. Implemented MongoDB for efficient data storage while ensuring
data integrity.

4.2 Outcome of Feature Expansion and User Experience Refinement


a) File Upload Structure Development: Developed an intuitive file upload functionality for
users, ensuring ease of use. Optimized file handling for large uploads to enhance user
experience.
b) Data Extraction from Files Integration: Integrated data extraction algorithms to extract
information from uploaded files. Ensured accuracy and compatibility of data extraction
processes.
c) Pre-built Template Designing with React: Designed visually appealing templates for users'
portfolios. Implemented pre-built templates using React and CSS, ensuring customization
options.
d) Integration of Templates with Uploaded Data: Seamlessly integrated user data with pre-
built templates across the website. Linked templates dynamically with uploaded data,
optimizing for multiple files.

62
4.3 Outcome of Refinement, Optimization, and Deployment
a) Rate Limiting & Fair Usage Policy Implementation: Implemented mechanisms for equitable
resource allocation and abuse prevention. Enforced usage and API rate limits based on predefined
policies.
b) Payment Integration and Subdomain Creation: Integrated Razorpay for secure payment processing.
Enabled the creation of subdomains for user websites upon successful payment.
c) Final DevOps Deployments Setup: Streamlined the deployment process for efficient releases. Set up
deployment using EC2 instance and Nginx, ensuring reliability, security, and performance.

Fig. 4.1 Front End Home Page

Fig. 4.2 Deployed Website

63
CHAPTER 5

CONCLUSION AND FUTURE ENHANCEMENT

5.1 Conclusion

In our Portfolio Website Generator project, we have developed innovative solutions to address the
needs of users seeking to create professional online portfolios. Firstly, we have implemented a robust
alert system to notify users of any potential issues during the portfolio creation process. For instance,
if the system detects any errors or inconsistencies in the uploaded PDF resume, it promptly alerts the
user, allowing them to review and rectify the issues before proceeding.

Secondly, our project incorporates advanced facial recognition technology to enhance security
measures within the portfolio website. By implementing facial recognition, users can ensure that only
authorized individuals have access to their portfolio content. This feature not only safeguards sensitive
information but also enhances the overall security of the portfolio website, protecting it from
unauthorized access and potential breaches.

As we continue to advance in the field of AI and technology, our project strives to leverage these
advancements to provide users with smarter, more efficient solutions. By integrating various models
and algorithms, we aim to optimize the portfolio creation process, making it more intuitive and user-
friendly for individuals of all skill levels.

In a world where online presence is paramount, our project offers cost-effective solutions to real-world
challenges faced by professionals seeking to showcase their skills and accomplishments. By notifying
users of any potential errors and providing enhanced security features, our project aims to empower
individuals to create compelling online portfolios that effectively represent their personal brand and
professional expertise. Ultimately, by streamlining the portfolio creation process and enhancing
security measures, our project contributes to the success and safety of users in the digital landscape.

64
5.2 Future Enhancement
In the future, our Portfolio Website Generator project could undergo several enhancements to further
improve user experience and functionality. Firstly, we could expand the range of available templates
to offer users a more diverse selection of designs and layouts to choose from. This would allow users
to find a template that best suits their personal preferences and professional needs.

Additionally, we could refine the parsing algorithms used to extract data from uploaded PDF resumes.
By optimizing these algorithms, we can ensure greater accuracy and reliability in transferring
information from the resume to the portfolio website. This would minimize errors and inconsistencies,
resulting in a more polished and professional-looking final product.

Another potential enhancement could involve incorporating a feature that allows users to edit the code
of their portfolio website templates. By giving users the ability to customize the underlying code, they
can make more advanced modifications and tailor the design to better reflect their unique style and
branding.

Furthermore, implementing a drag-and-drop functionality for adding elements to the portfolio website
could significantly enhance the user interface and make the website creation process more intuitive
and interactive. This would empower users to easily rearrange and customize the layout of their
portfolio pages without requiring any coding knowledge.

Overall, by incorporating these future enhancements, our Portfolio Website Generator project can
continue to evolve and provide users with a comprehensive and user-friendly platform for creating
professional online portfolios. These enhancements would contribute to a more seamless and
personalized experience, ultimately enhancing the value and utility of the project for users.

65
APPENDIX

A. PATENT DISCLOSURE FORM


Application for patent filing
D D M M Y Y Y Y
Date
2 3 0 3 2 0 2 4

Name of the Faculty : Dr. G. Senthil Kumar

Department : Computational Intelligence

Faculty ID Number : 100195

Official E-mail ID : senthilg1@srmist.edu.in

Contact no. of all Inventors 9414428497, 6200336831

Major area of invention : Converting PDF resumes into interactive HTML/CSS portfolios

Narrow focus area of invention : Developing algorithms to parse PDF content and generate visually
appealing HTML/CSS portfolios

Title of the invention Portfolio Website Generator

Earlier status of research : Identified a need for a solution to convert static PDF resumes into
dynamic online portfolios, leading to the development of the PDF to
HTML/CSS Portfolio Converter project

How different your invention from : This invention offers a unique solution for converting PDF resumes
into HTML/CSS portfolios with user-friendly customization options
similar research / others - Novelty?

Possible domain for field application : Job seekers, professionals, students, and anyone looking to enhance
their online professional presence

Possible sector for commercialization : Recruitment agencies, educational institutions, career counselling
services, job search platforms, and professional networking websites

Faculty Signature with date :

66
Invention Disclosure Form

To be filled by the inventors

Please provide highly relevant information for details asked below and use consistent
language while describing the specific feature or element in the invention disclosure.
1. Title of invention (Please indicate a title for the invention and technology of the
invention)

Portfolio Website Generator

2. Describe the invention. (Please describe specifically about the general purpose of
invention. Is the invention a new process, device of product, system, software, or a
combination of these elements?)

The invention is a software application designed to convert PDF resumes into


interactive HTML/CSS portfolios. It combines algorithms to parse the content of PDF
resumes and generate visually appealing web-based portfolios. This invention
primarily falls under the category of software development but involves elements of
data parsing and web development.

3. Does the invention provide a new use of or improvement to an existing product or


process? (Highlight the use or improvements from the existing with recent and
relevant references)

This invention provides a new use of existing PDF resume documents by


transforming them into dynamic online portfolios. While there are existing tools for
creating online portfolios, the novelty lies in the automatic conversion process from
PDF to HTML/CSS format, streamlining the portfolio creation process for users.
Recent advancements in web technologies have made such dynamic and interactive
online portfolios increasingly popular and effective for showcasing professional
credentials.

4. State the Novelty of the invention and specify the claims in the invention.

The novelty of the invention lies in its ability to automate the conversion process from
PDF to HTML/CSS format, providing users with a convenient and efficient way to
create visually appealing online portfolios. The primary claim of the invention is the

67
seamless transformation of static PDF resumes into interactive web-based portfolios
with customizable design elements.

5. Describe the advantages of the present invention over the existing technologies
(please identity the advantages e.g. efficiency, cost benefits, simplicity etc.

Efficiency: The invention streamlines the process of portfolio creation by automating


the conversion from PDF to HTML/CSS format.

Cost Benefits: Users can create professional online portfolios without the need for
expensive design software or hiring a web developer.

Convenience: The invention enables users to purchase and deploy their portfolio's
domain directly within the platform, streamlining the entire process of establishing
an online presence.

Simplicity: The software offers a user-friendly interface, making it accessible to


individuals without extensive technical knowledge.

6. Describe how the present invention overcomes the drawbacks of currently


available technology related to your invention. (please include the relevant
references)

Current methods of creating online portfolios may involve manual design or reliance
on pre-made templates. This invention overcomes these drawbacks by automating
the conversion process, saving users time and effort. Additionally, existing online
portfolio platforms may lack customization options or require subscription fees,
whereas this invention offers flexibility and cost-effectiveness.

7. Describe uses, applications and benefits of the invention.

The invention is useful for students, job seekers, professionals and anyone looking
to showcase their credentials online. It benefits users by providing them with a
professional and customizable platform to present their skills and experiences to
potential employers or clients.

8. Does the focus of the invention results in societal impact technology? (Please
describe how in detail, also specify the commercial applications, market need of
product/ service of invention and why?)

The invention has societal impact potential by facilitating access to professional


opportunities for individuals from diverse backgrounds. Commercial applications
include integration with recruitment platforms, career counselling services,

68
educational institutions, and professional networking websites to enhance the user
experience and streamline the hiring process.

9. Characterize the disadvantages and limitations of the invention

Dependence on PDF Quality: The accuracy of parsing and conversion may vary
depending on the quality, formatting, and data of the original PDF resume.

Limited Customization: While the invention offers customizable design elements, it


may not provide the same level of flexibility as manual web development.

10. Enclose the sketches, drawings, photographs, and other materials that help in better
understating/ illustration of the novelty in the invention.

Experimental Testing: The software has undergone experimental testing to validate


its functionality and performance.

Experimental Approach: Testing involved uploading various PDF resumes to assess


the accuracy of parsing and the quality of generated portfolios.

Documentation: Experimental data is documented in formal logs and reports,


confirming the effectiveness of the invention.

Further Development: Ongoing development focuses on refining the parsing


algorithms, enhancing customization options, and improving overall user.

11 Current development status of the invention

A. Has your invention been tested experimentally


Yes, the invention has been tested experimentally to validate its functionality
. and performance.

B. Describe the experimental approach of the invention also state the methods
adopted in the experiment.

Gathering a diverse set of PDF resumes with varying formats and content.
Uploading the PDF resumes to the software application for parsing and
conversion.
Assessing the accuracy of parsing by comparing the extracted information
with the original resume content.

Evaluating the quality of the generated HTML/CSS portfolios, including


design elements and User Interface.

69
Soliciting feedback from users who tested the software to identify areas for
improvement.

C. Are the experimental data is documented in a formal log or any instrumental


confirmation available for the invention (kindly provide the details)

Yes, the experimental data is documented in formal logs and reports. These
documents contain detailed records of the testing process, including:

1. Description of the test cases conducted


2. Results of parsing accuracy and portfolio quality assessments
3. User feedback and suggestions for enhancements

D. Is further development of your invention being necessary or development of


the invention is in progress (provide the relevant information)

Further development of the invention is in progress to address identified


areas for improvement and incorporate user feedback. Key areas of focus for
development include:

1. Refining parsing algorithms to improve accuracy, particularly for


resumes with complex layouts or non-standard formatting.
2. Enhancing customization options for users to have more control over
the design and layout of their portfolios.
3. Implementing additional features based on user requests and market
trends.

12. Please list any of your publications (including abstracts, posters, news releases,
etc.) to emphasize the present invention background.

As of now, there are no specific publications related to the invention. However,


ongoing research and development efforts may lead to publications in the future to
showcase the advancements and innovations of the software application.

70
13. INVENTOR(S) AND/OR CONTRIBUTOR(S):

INVENTOR (1) INVENTOR (2)

Signature:

Name: Vishal Gaur Ronit Kimar

Address: Department of Computational Intelligence, Department of Computational Intelligence,


SRM IST, Kattankulathur campus-603203 SRM IST, Kattankulathur campus-603203

City and State: Chennai &Tamil Nadu Chennai &Tamil Nadu

Citizenship INDIAN INDIAN


India India
(Country):

INVENTOR (3)

Signature:

Name: Dr. G. Senthil Kumar

Address: Department of Computational Intelligence,


SRM IST, Kattankulathur campus-603203

City and State: Chennai &Tamil Nadu

Citizenship INDIAN
India
(Country):

14. ASSIGNMENT DETAILS: Assignee is the entity or individual who holds the patent.

Signature: (To be signed by the authorized


signatory on behalf of the assignee)

Name of the Authorized Signatory and Designation

Address:

City and State:

Citizenship

(Country):

71
B. SAMPLE CODING

const fs = require('fs');

const path = require('path');


const PDFParser = require('pdf-parse');

const resumeModal = require('../modal/resumeModal');

const axios = require('axios');

// Controller method to handle file upload and text extraction

exports.uploadFile = async function (req, res, next) {

if (!req.file) {
return res.status(400).send('Please upload a file');

console.log('Uploading file')

// Check if match is found

if (match) {

// Extracted JSON string


const jsonString = match[1];

// Replace escape characters for quotes

const cleanedJsonString = jsonString.replace(/\\"/g, '"');

// Construct JSON object using regex matches

apiJsonRes = JSON.parse(cleanedJsonString);

// Access the object properties if needed


console.log(apiJsonRes);

72
} else {

console.log("JSON object not found in the message content.");

// const userData = extractUserInfo(pdfText)

// You can further process the extracted text here

if (req.user) {

resumeModal.create({

email: req.user.email,

fullname: req.user.fullname,
resumeData: apiJsonRes,
})

// apiJsonRes.skills = apiJsonRes.skills?.split(', ')?.map(skill => skill.trim());

res.status(200).send(apiJsonRes);

} catch (err) {

console.error('Error extracting text from PDF:', err);

res.status(500).send('Error extracting text from PDF');


}

};

exports.uploadTextData = async function (req, res, next) {

console.log('Uploading Text Data')

try {

// You can further process the extracted text here


resumeModal.create({

73
email: req.user.email,

fullname: req.user.fullname,

resumeData: req.body.userData,

})

res.status(200).send(userData);

} catch (err) {

console.error('Error extracting text from PDF:', err);

res.status(500).send('Error extracting text from PDF');

};

exports.getResumeId = async function (req, res, next) {

console.log('Uploading Text Data')

try {

// You can further process the extracted text here

const resume = await resumeModal.findOne({ email: req.user.email }).sort({ updatedAt: -1


}).exec()

res.status(200).send(resume?._id);
} catch (err) {

console.error('Error extracting text from PDF:', err);

res.status(500).send('Error extracting text from PDF');

};

exports.getOrders = async function (req, res, next) {


try {

74
// You can further process the extracted text here

const resume = await resumeModal.find({ email: req.user.email , isPaid:true }).sort({


updatedAt: -1 }).exec()

res.status(200).send(resume);

} catch (err) {

console.error('Error extracting text from PDF:', err);

res.status(500).send('Error extracting text from PDF');


}

};

exports.getPaidRouteData = async function (req, res, next) {

try {

// You can further process the extracted text here

const resume = await resumeModal.find({ hostedRoute: req.query.username , isPaid:true


}).sort({ updatedAt: -1 }).exec()

res.status(200).send(resume);
} catch (err) {

console.error('Error extracting text from PDF:', err);

res.status(500).send('Error extracting text from PDF');

};

// Function to extract text from PDF

async function extractTextFromPDF(pdfBuffer) {


const data = await PDFParser(pdfBuffer);

return data.text;

function extractUserInfo(text) {
const userInfo = {};

75
// Extract basic information

const basicInfoRegex = /Email: (.+?)\| Mobile: (.+?) \| GitHub: (.+?) \| LinkedIn: (.+?) \| Address:
(.+)/;

const basicInfoMatches = text.match(basicInfoRegex);

if (basicInfoMatches) {

userInfo.email = basicInfoMatches[1].trim();
userInfo.mobile = basicInfoMatches[2].trim();

userInfo.github = basicInfoMatches[3].trim();

userInfo.linkedin = basicInfoMatches[4].trim();

userInfo.address = basicInfoMatches[5].trim();

// Extract experience
const experienceRegex = /EXPERIENCE([\s\S]+?)EDUCATION/;

const experienceMatches = text.match(experienceRegex);

if (experienceMatches) {

userInfo.experience = extractExperience(experienceMatches[1]);

// Extract education
const educationRegex = /EDUCATION([\s\S]+?)LEADERSHIP EXPERIENCE/;

const educationMatches = text.match(educationRegex);

if (educationMatches) {

userInfo.education = extractEducation(educationMatches[1]);

// Extract leadership experience


const leadershipRegex = /LEADERSHIP EXPERIENCE([\s\S]+?)TECHNICAL SKILLS/;

76
const leadershipMatches = text.match(leadershipRegex);

if (leadershipMatches) {

userInfo.leadership_experience = leadershipMatches[1].trim();

// Extract technical skills

const skillsRegex = /TECHNICAL SKILLS([\s\S]+?)ADDITIONAL INFORMATION/;

const skillsMatches = text.match(skillsRegex);

if (skillsMatches) {

userInfo.skills = skillsMatches[1].trim().split(/,\s*/);

}
// Extract additional information
const additionalInfoRegex = /ADDITIONAL INFORMATION\n([\s\S]+)/;

const additionalInfoMatches = text.match(additionalInfoRegex);

if (additionalInfoMatches) {

userInfo.additional_information = additionalInfoMatches[1].trim();

return userInfo;
}

// Helper function to extract experience data

function extractExperience(data) {

const experienceArray = [];

const sections = data.trim().split('●');

for (const section of sections) {


const lines = section.trim().split('\n');

const heading = lines.shift().trim();


const points = lines.join('\n').trim();

77
experienceArray.push({ heading, points });

return experienceArray;

// Helper function to extract education data

function extractEducation(data) {

const educationArray = [];

const lines = data.trim().split('\n');

for (let i = 0; i < lines.length; i += 4) {

educationArray.push({
institution: lines[i].trim(),
degree: lines[i + 1].trim(),

duration: lines[i + 2].trim(),

specialization: lines[i + 3].trim()

});

return educationArray;

78
C. PLAGIARISM REPORT

79
80
81

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy