0% found this document useful (0 votes)
7 views115 pages

Blog Web Application New 1

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 115

BLOG WEB APPLICATION

A Project Report

Submitted in partial fulfilment of the Requirements for the award of the Degree of

BACHELOR OF SCIENCE (INFORMATION TECHNOLOGY)

By

Mr. HARSHAL DHANAJI KAMBLE

IT-2056
Under the esteemed guidance of

Mr. Mandar Bhave

Course Coordinator

DEPARTMENT OF INFORMATION TECHNOLOGY

D. G. RUPAREL COLLEGE OF ARTS, SCIENCE &


COMMERCE
(Affiliated to University of Mumbai)

SENAPATI BAPAT MARG, MAHIM, MUMBAI, 400 016

MAHARASHTRA

2022-23
PROFORMA FOR THE APPROVAL PROJECT PROPOSAL

(Note: All entries of the proforma of approval should be filled up with appropriate &
complete information. Incomplete proforma of approval in any respect will be
summarily rejected.)

PNR No.: …………………… Roll no: IT-2056


1. Name of the Student
HARSHAL DHANAJI KAMBLE
2. Title of the Project
BLOG WEB APPLICATION
3. Name of the Guide

4. Teaching experience of the Guide ____________________________________

5. Is this your first submission? Yes No

Signature of the Student

Date: …………………
D. G. RUPAREL COLLEGE OF ARTS, SCIENCE & COMMERCE

(Affiliated to University of Mumbai)

SENAPATI BAPAT MARG, MAHIM, MUMBAI, Maharashtra 400 016.

DEPARTMENT OF INFORMATION TECHNOLOGY

CERTIFICATE

This is to certify that Mr./Ms. _______________________of B.Sc. Information


Technology Class, Seat no. ___________has successfully completed the Project
work, titled _________________________________________________during
the Academic Year 2021-2022.

Date:

Internal Guide External Examiner Mr. Mandar Bhave

(Course Co-Ordinator)
ABSTRACT

Blog is a communication tool that plays a key role in a web application. Use of blogs has
resulted in a paradigm shift in the way a web application interacts with the customer. During the
development of web application, there is a need to elicit and specify the requirements for the
blogging functionality. In this study, we present a requirements checklist for the blog, from the
perspective of integrating the blog in a web application.

We follow the use case-based approach for identifying the software requirement for the
blog. The requirement checklist helps both the web application and the developer during the
requirement elicitation of the blog’s software. The checklist is also useful during the testing
phase for the validation and verification of the blog functionality.
ACKNOWLEDGEMENT

My journey towards achieving my destination for design for the design and development of “Blog
Web Application” has finally come to a fruitful culmination.

My whole efforts and wholehearted co-operation of each one has ended on a successful note.
During this journey, I faced numerous unforeseen problems and unknown challenges. However, at these
junctures, a few enterprising people stepped in and guide me in a right direction.

I would like to extend my sincere acknowledgement to those who have supported and encouraged
me during this tough journey. Many people met me during this endeavor and enrich me with their support
and knowledge both personally and professionally that resulted in project being better that it could
possibly have been without them.

I express my sincere gratitude to Prof. Mandar Bhave for his ongoing support during the
journey and for assisting me throughout this project. I thank him for providing me confidence. I also
thank Ms. Mansi Rajapurkar For always having my back on this and most importantly for the guidance
throughout the project development.

A special mention to my friend and family who helped me in completing the project by
suggesting me new ideas for the project and sharing them. I pay regards to my parents for encouraging
and support me when I need or require.
DECLARATION

I hereby declare that the project entitled, “Project Name” done at D.G.

Ruparel College of Arts, Science & Commerce, has not been in any case duplicated to

submit to any other university for the award of any degree. To the best of my knowledge other

than me, no one has submitted to any other university.

The project is done in partial fulfilment of the requirements for the award of degree of

BACHELOR OF SCIENCE (INFORMATION TECHNOLOGY) to be submitted as final

semester project as part of our curriculum.

Harshal Kamble

Signature:
Table of Contents
Chapter 1 ..................................................................................................................................................... 1
Introduction ................................................................................................................................................. 1
1.1 Background ......................................................................................................................................... 1
1.2 Objectives ........................................................................................................................................... 2
1.3 Purpose and Scope .............................................................................................................................. 3
1.3.1 Purpose........................................................................................................................................ 3
1.3.2 Scope............................................................................................................................................ 4
1.3.3 Applicability ............................................................................................................................... 5
Chapter 2 ..................................................................................................................................................... 7
Survey of Technologies ............................................................................................................................... 7
2.1 Existing System .................................................................................................................................. 7
2.2 Proposed System ................................................................................................................................. 9
2.3 Requirement Analysis ......................................................................................................................... 9
2.4 Hardware Requirement ..................................................................................................................... 10
2.5 Software Requirement ...................................................................................................................... 11
2.6 Justification of Platform .................................................................................................................... 11
Chapter 3 ................................................................................................................................................... 13
Requirements and Analysis ...................................................................................................................... 13
3.1 Problem Definition............................................................................................................................ 13
3.2 Requirement Specification ................................................................................................................ 14
3.2.1 Functional Requirements ........................................................................................................ 14
3.2.2 Non-Functional Requirements ................................................................................................ 15
3.3 Planning and Scheduling................................................................................................................... 17
3.3.1 GANTT CHART ...................................................................................................................... 17
3.4 Preliminary Products Description ..................................................................................................... 18
3.4.1 Product Perspective: ................................................................................................................ 18
3.4.2 Product Functions:................................................................................................................... 18
3.5 Entity Relationship Diagram ............................................................................................................. 18
3.6 Conceptual Diagrams ........................................................................................................................ 20
3.6.1 Event table: ............................................................................................................................... 20
3.6.2 Use-case diagram: .................................................................................................................... 22
3.6.3 Sequence diagram .................................................................................................................... 25
3.6.4 Activity diagram:...................................................................................................................... 26
3.6.5 Class diagram: .......................................................................................................................... 27
3.6.6 Object diagram......................................................................................................................... 28
3.6.7 Component diagram ................................................................................................................ 29
3.6.8 Deployment diagram................................................................................................................ 30
Chapter 4 ................................................................................................................................................... 31
System Design ............................................................................................................................................ 31
4.1 Basic Modules................................................................................................................................... 31
4.2 Data Design....................................................................................................................................... 32
4.2.1 Schema Design: ........................................................................................................................ 32
4.2.2 Data Integrity and Constraints ............................................................................................... 33
4.3 Procedural Design ............................................................................................................................. 35
4.3.1 Logic Diagram .......................................................................................................................... 35
4.3.2 Algorithms Design .................................................................................................................... 35
4.4 User Interface Design: ...................................................................................................................... 37
4.5 Security Issues .................................................................................................................................. 39
4.6 Test Case Design: ............................................................................................................................. 40
Chapter 5 Implementation and testing ........................................................................................................ 42
5.1 Implementation Approaches ............................................................................................................. 42
5.2 Coding Details and Code Efficiency:................................................................................................ 43
5.2.1 Code Efficiency......................................................................................................................... 43
5.3 Testing approaches............................................................................................................................ 89
5.3.1 Unit Testing .............................................................................................................................. 89
5.3.2 Integration Testing................................................................................................................... 89
5.3.2 Beta Testing ................................................................................................................................... 90
5.4 Modification and Improvements ....................................................................................................... 91
Chapter 6 Results and Discussion ............................................................................................................... 92
6.1 Test Reports ...................................................................................................................................... 92
6.2 System Functioning/ User Documentation ....................................................................................... 96
Chapter 7 Conclusion................................................................................................................................ 104
7.1 Conclusion ...................................................................................................................................... 104
7.2 Limitation of the system ................................................................................................................. 105
7.3 Future Scope of the Project ............................................................................................................. 105
References & Bibliography....................................................................................................................... 106
Website Used ............................................................................................................................................ 106
Table Of Figures:

Figure 1 14
Figure 2 16
Figure 3 18
Figure 4 19
Figure 5 20
Figure 6 22
Figure 7 23
Figure 8 24
Figure 9 25
Figure 10 26
Figure 11 27
Figure 12 32
Figure 13 34
Figure 14 35
Figure 15 36

1
Chapter 1

Introduction

1.1 Background

Blogging has become such a mania that a new blog is been created every second of every
minute of each hour of each day. A blog is the best bet among all the online crowd. blog is
usually the work of the individual occasionally of a small group, and often covered a single
subject. Recently "Multi-Author Blogs" (MABs) have been introduced and developed to make
the work easier, with posts written by the greater number of authors and professional writers,
MABs from newspapers, other media outlets, universities, think tanks, social media, advocacy
groups, and similar institutions account for an increasing quantity leading to blog traffic.

A blog is a type of website that is updated regularly with added content. Most blogs
contain short, informal articles called blog posts. These posts usually contain some combination
of text, photos, videos, and other media. At its core, a blog is just a space on the Web that you
can create to record and express your opinions, experiences, and interests.

If you spend much time browsing the Web, you've probably read a blog post before, even
if you didn't realize it at the time. Some of the most-read blogs are a bit like online magazines
because they're written by a team of people who are paid to update the blog with new posts
several times a day.

Blog can also be used as a verb, meaning to maintain or add content to a blog. The rise
of new social media platforms such as Twitter and many more has helped to integrate MABs and
single-author blogs into social streams. Blog contains the information of various things related to
Technology, Education, News, International, Business, Sports, Entertainment, and ongoing
activities throughout the world. A novel a long, frictional narrative which describes intimate
human experience. A weblog, sometimes written as web log or Weblog, is a Web site that
consists of a series of entries arranged in reverse chronological order, often updated on

1
frequently with latest information about particular topics. WEBLOG is a combination of both
novel and blog and is also rising as it has been used more usually by everyone.

The main aim of the project is to provide data to students in only one site. Students can
gather the information from one site as well as give their feedback and create their own blog.
Students can post their views and thoughts and analyse themselves. Beside all such core
functionalities, the application also includes features like CURD, FAQ, Request, feedback, etc.
so as to provide a satisfactory user experience to the individual. This software is supposed to
eliminate and, in some cases, reduce the hardships faced by this existing system. Moreover, this
system is designed for the particular need of company or the group of people to carry out
operations in a smooth and effective manner. The application is reduced as much as possible to
avoid errors while entering the data. It also provides error message while entering invalid data.
No formal knowledge is needed for the user to use this system. Thus, by this all it provides it is
user-friendly environment. This application can lead to error free, secure, reliable, and fast
management system. It can assist the user to concentrate on their other activities rather to
concentrate on the record keeping. Thus, it will help organization in better utilization of
resources. This system will ultimately allow you to better manage resources.

1.2 Objectives

By my analysis on web search, I was expected that for common people to develop
website, they have to face many problems and also, they want to share their knowledge,
technology, articles, etc.

In the recent time Blogs are store in the paper files and difficult to search or modify any
information, for expanding the Blogs infrastructure, Awareness of environmental issues or any
other issues related to education, health, digital technology, and search for greater safety give of
information to all persons in all age groups and a new role within the education system, I choose
this project. As a result of these project initiatives phenomenal growth has taken place in all the
activities of blogs and any user can share its information related to any topic to all users. If you
have a blog, you are doing it with a result in mind. All blogs need goals. Without goals, you
won’t accomplish anything at all. Not only do you need goals, but you must quantify them.

As a blogger, your mindset needs to be extremely specific. If your goal is to make money
(your immediate goal, not your goal), it is not really a goal. It is what results from achieving
other goals. Remember that you need to be able to set metrics to your goals and you can’t really
set metrics to making money. There are goals, however, that you can set that are quantitative and
achievable. The objective of my project is to provide all its user with easy access to relevant, and
by using provide them choosing facility to component. People will make their own blog using
style, template, their own creativity, etc. The objective of our Project is to provide all its
user with easy access to relevant, and by using provide them. Choosing facility to
component.

The objective of a blog is to provide content on your website that answers your
prospective customers' questions and helps them learn about your product or service. It expands
your brand's visibility by giving Google and other search engines content to index and serve up
in search results.

1.3 Purpose and Scope

1.3.1 Purpose
The main purpose of the Project on Online Blogging System is to manage the details of
Blogs, Idea, Topic, Entries, Views. It manages all the information about Blogs, Content, Views,
Blogs. The project is totally built at administrative end and thus only the administrator is
guaranteed the access. The purpose of the Blogs, Idea, Content, Topic. It tracks all the details
about the Topics, Entries, Views.

This platform provides an environment for posting or sharing knowledge throughout the
organization. This gives detailed information about functional and non-functional requirements
of users or students that is whatever they want to share then they can easily write on their blog,
and it can be viewed by the member in the organization. The purpose meets the goal of sharing
the information in formal or in secure way. This system provides an effortless way for teachers
and student to get connected to each other after leaving the particular organization.

The purpose of Online Blogging System is to automate the existing manual system by the
help of computerized and full-fledged computer software, fulfilling their requirements, so that
their valuable data/information can be stored for a longer period with easy accessing and
manipulation of the same. The required software and hardware are easily available and easy to
work with. Online Blogging System, as described above, can lead to error free, secure, reliable,
and fast management system. It can assist the user to concentrate on their other activities rather
to concentrate on the record keeping. Thus, it will help organization in better utilization of
resources.

The organization can maintain computerized records without redundant entries. That means
that one need not be distracted by information that is not relevant, while being able to reach the
information. The aim is to automate its existing manual system by the help of computerized
equipment and full-fledged computer software, fulfilling their requirements, so that their
valuable data/information can be stored for a longer period with easy accessing and manipulation
of the same. Basically, the project describes how to manage for good performance and better
services for the clients. It is also use for creating posting and viewing the others post, ideals,
entries, and blogs.

1.3.2 Scope
Blogging is not only for writing, but it is a business by itself. It involves a good
understanding of the topic you have selected, digital marketing, and sales. This will give you an
understanding of content marketing You can use your writing skills and become a good
entrepreneur based on your content marketing skills.

This platform allows will allow any individual to create their own blog as required by them. The
gist of the idea is to digitalize the process of manually driven ideas, topics and blog sharing
among the user, small or big organizations as well as small forums and then to bake it into a web
application to make it available for common people even to speed up process reducing further
hassle and issues. It may help collecting perfect management in detail. In a noticeably
abbreviated time, the collection will be obvious, simple and sensible.
It will help a person to know the management of passed year perfectly and vividly. It also
helps in current all works relative to Online Blogging System. It will be also reduced the cost of
collecting the management & collection procedure will go on smoothly.

1.3.3 Applicability
Personal blogs: The personal blog, an ongoing diary or commentary by an individual, is the
traditional, most common blog. Personal bloggers usually take pride in their blog posts, even
if their blog is never read. Blogs often become more than a way to just communicate; they
become a way to reflect on life or works of art. Blogging can have a sentimental quality.

Corporate and organizational blogs: A blog can be private, as in most cases, or it can be for
business purposes. Blogs used internally to enhance the communication and culture in a
corporation or externally for marketing, branding or public relations purposes are called
corporate blogs

By media type: A blog comprising videos is called a vlog, one comprising links is called a link
log, a site containing a portfolio of sketches is called a sketch blo1g or one comprising photo is
called a photoblog. Blogs with shorter posts and mixed media types are called tumblelog. Blogs
that are written on typewriters and then scanned are called typecast or typecast blogs; see
typecasting (blogging).

Science: A means of spreading data or discussing activities or results.

Social: Used to maintain social networks between people.

Consumer-generated advertising in blog: This is a relatively new and controversial development,


and it has created a new model of marketing communication from businesses to consumers.
Among the various forms of advertising on blog, the most controversial are the sponsored posts.
These are blog entries or posts and may be in the form of feedbacks, reviews, opinion, videos,
etc. & usually contain a link back to the desired site using a keyword/s. Many blogs provide
commentary or news on a particular subject; others function as more personal online diaries. A
typical blog combines text, images, and links to other blogs, Web pages, and other media related
to its topic. The ability of readers to leave comments in an interactive format is an important part
of many blogs. Most blogs are primarily textual, although some focus on art (art blog), videos
(video blogging), music (MP3 blog), and audio (podcasting). Micro blogging is another type of
blogging, featuring noticeably short posts.
Chapter 2

Survey of Technologies

2.1 Existing System

Existing system is manual system. It requires a lot of file work to be done. It is a time-
consuming system. All customer information is maintained manually. Any searching requires so
much effort manually. There is no way of spreading the information so fast and in cheaper
manner. In previous system all information does not get in one place. Here people can write
whatever they want to write without any difficulties.

The other existing software are publicly accessible to anyone, there is no security for
confidential data. In the past, an individual has generally had to write to any other individual
exclusively. It’s hard for them to get excited about writing something that they know no one else
will see, on a subject that seems to serve no real purpose outside the society.

The platform also has its darker side with some limitations on the enjoyment of its
features and functionality. One of the major downsides of Blogger is that you cannot monetize it
with ads other than Google’s. Google frowns over the competition thus it exercises exclusive ad
service only for Google ads in Blogger. Google owns the site as it exercises control on what ads
you are allowed to post on your blog site. With this ownership issue, a blogger should realize
that whatever content that they post on Blogger could disappear if Google decides to close down
the platform. Therefore, anyone who is using Blogger should backup their content because their
blog site could be deleted by Google even without notice to the blog site user.

Another disappointing feature from the Blogger template is that it lacks plugins that are
so numerously available in its competitive blogging platform, WordPress. Although professional
bloggers could tweak the template a bit, they are not at the full liberty to customize their blog
sites. It is because of these limited features and designs available in the Blogger templates that
lead us to another downside of using blogger – duplicate or similar blog site design. Because
there are only quite a few available template designs to choose from it is a challenge to create a
professional-looking blog site. Most often than not, you will feel extremely disappointed to find
another site using the same design as your blog site.

Following are some available existing systems for blog:

• WordPress: WordPress started in 2003 with a single bit of code to enhance the
typography of everyday writing and with fewer users than you can count on your fingers
and toes. Since then, it has grown to be the largest self-hosted blogging tool in the world,
used on millions of sites and seen by tens of millions of people every day. WordPress
started as just a blogging system but has evolved to be used as full content management
system and so much more through the thousands of plugins and widgets and themes,
WordPress is limited only by your imagination.

• Drupal: Drupal isn’t your typical blogging software. While it has an incredible
community behind the code and many blogs use it for blogging software, it’s not just
blogging software. Drupal is community software. Drupal really shines as blog software
for a blogging community. Drupal also comes with a large community of developers and
modules. With these modules, one could build any type of site or add nearly any sort of
functionality to their Drupal installation.

• Serendipity: Serendipity takes pride in the fact that it is a beginner friendly blogging
platform. Serendipity keeps your plugins up to date by automatically checking the
plugins repository online and downloading the updated version if needed from a fairly
extensive library of user-contributed plugins.

• Social media platforms: After the rise of blogging website many social media platforms
are also down on this lane. Many social media platforms such as twitter, Instagram,
Tumblr, Pinterest, LinkedIn have adapted the blogging design for their own goods, but
they have their own drawbacks.
2.2 Proposed System

Having a good blogging system can get rid of faster and an important issue for everyone.
Using this system one can store information about every new entry of blogs without thinking for
the privacy issues as it will be secure by admin. One can do all the works such as Vlogging,
blogging, saving notes, saving images as memories, work diary only through single system there
will beno need for using multiple applications for such functionalities. The blog can be private as
well as public as per user need.

In public blog everyone can read the uploaded blog and get the information in it. They
can also add comments and give their opinion on the particular blog if they want. This comment
will also be visible to the blog owner. In private, the user can select the Number of peoples
he/she wanted to show their blog to, not everyone can see this blog. The other functionalities are
same as the public blog, but it’s just private blogs are more secured.

In public blog if anyone is not comfortable with the following user or the topic then they
can even select the topics they wanted to see the blogs. In this system the user can use “CURD”
(Create, Update, Read, Delete) for their blog. This application will also have the search option to
search the particular user or the topic of their own interest to read. All the blogs and the users
will be handles by the admin of the page. He will be maintaining query records.

2.3 Requirement Analysis

Requirements analysis is critical to the success or failure of a systems or software project.


The following are the activities of requirements analysis:

• System needs store information about new entry of Blogs.


• System needs to help the internal staff to keep information of Idea and find them as per
various queries.
• System needs to maintain quantity record.
• System needs to update and delete the record.
• System also needs a search area.
• It also needs a security system to prevent data.
• Easy to maintain records.
• Less time consuming.
• No redundancy of data.

2.4 Hardware Requirement

The hardware requirements are the requirements of a hardware device. Most hardware
only has operating system requirements or compatibility. For example, a printer may be
compatible with Windows XP but not compatible with newer versions of Windows like
Windows 10, Linux, or the Apple macOS.

If a hardware device is not compatible with your computer, it is up to the manufacturer to


release drivers. Unfortunately, many manufacturers only release updated drivers to fix problems
with the older drivers and often do not release drivers for newer operating systems or alternative
operating systems. If a hardware device doesn't have drivers for your operating system, the only
solution maybe to get a more up-to-date replacement device.

For running any software there is some specification and only if it satisfies the specified
requirements, it will get installed and work as it is designed for.

This software also has some specifications as follows:

• The minimum Ram of 2GB or above.


• Minimum space required of HDD is at-least 20GB.
• Any processor will be applicable.
• Hardware components such as monitor, keyboard, mouse.
• Motherboard (PIV)
• 500 V.A UPS. (Can be used in the case of power failure)
2.5 Software Requirement

• What do you mean by software requirements?


1. A condition or capability needed by a user to solve a problem or achieve an
objective. A condition or capability that must be met or possessed by a system or
system component to satisfy a contract, standard, specification, or other formally
imposed document.
2. For the development of my blog application, I will be using windows 11 operating
system but this web application can also run-on other operating system such as
windows 7, windows XP, etc.
3. The Backend for my application will be Microsoft SQL server (that is MYSQL)
2005 and PHP on XAMPP server (latest one).
4. The GUI for my website will be designed using HTML and CSS.
5. The IDE I will be using is XAMPP and Visual Studio server.
6. My application would compulsorily need a web application server of Apache
Tomcat 6.0s or 7.0.
7. It will also be using Microsoft IIS in webserver software.
8. Proper internet connectivity.

2.6 Justification of Platform

The website will be developed using the JS, HTML, CSS and for backend I will be using
MYSQL and PHP server. There are many platforms available to develop a web application such
as java/JSP/visual studio, etc. PHP is a script language and interpreter that is freely available and
used primarily on Linux Web servers. PHP, originally derived from Personal Home Page Tools,
now stands for PHP: Hypertext Pre-processor, which the PHP FAQ describes as a "recursive
acronym."

PHP executes on the server, while a comparable alternative, JavaScript, executes on the
client. PHP is an alternative to Microsoft's Active Server Page (ASP) technology. As with ASP,
the PHP script is embedded within a Web page along with its HTML(also CSS and JavaScript).
Before the page is sent to a user that has requested it, the Web server calls PHP to interpret and
perform the operations called for in the PHP script.

For the backend support I will be using Microsoft SQL server, as it is secure and
portable. Microsoft SQL server is the relational database management system. When writing
code for SQL CLR, data is stored in SQL server databases and can be accessed using the Xampp
API’s. SQL server also provides several enhancements to the PHP including classes to work with
tabular data or a single row of data. There are many advantages of using Microsoft SQL Server
as it has an enhanced performance.
Chapter 3

Requirements and Analysis

3.1 Problem Definition

Problems with the existing system are: -

• Poorly written code: Many bloggings Web app have this issue which will lead to the
problems to a host of we application including ineffective algorithm causing less reach of
the blog to the world, memory leaks, and application deadlocks.

• Unoptimized database: Unoptimized database can destroy a production application.


Missing indexes can slow down the performance of SQL queries, which can crash the
whole site.

• Unmanaged growth of Data: Data systems tend to degrade over time. Developing a plan
to manage and monitor data as it grows is indispensable to your web performance.

• Traffic Spikes: We generally think of increased traffic as a good thing but Due to the
large number of users of blogging web application through-out the world this causes the
traffic of the blogs in the server causing the crash of the server and render error. Planning
ahead is the key and set up an early warning system through simulated user monitor
systems.

• Poor Load distribution: Poor load distribution can cause slow response times by
incorrectly assigning new site visitors to bogged-down servers instead of others with
cycles spare.
• DNS, Firewall, and network connectivity: DNS queries make up the majority of web
traffic. That’s why a DNS issue can cause so much trouble, preventing visitors from
accessing your site and resulting in errors, 404s, and incorrect pathways. Likewise,
network connectivity and firewall efficiency are crucial for access and productivity. Use
DNS monitoring safeguards to pinpoint problems at hand. Also, revise switches, check
VLAN tags, and distribute tasks between servers.

• No option of update of the blog: The existing blogging web application does not give the
option of updating the blog after posting the blog on the particular topic. If we want to do
this, we have to delete the old product and then upload the new product with all the
updates. This can cause the loss of interest in the particular topic in which project is
based on.

• Security: Some of the existing blogging web application have the problem of data leaking
and have very less security. Because of this there is the leak of the personal data which
can be used by anyone for bad use. The personal data of the individual can be used by
anyone because of the lack of security and authentication.

• Different Platform for different Blog: In the Existing systems there is not one platform
for all type of blogs such as vlog (video blog), weblog (novel blog), etc. There is the need
of the same platform for all types of the blogs.

3.2 Requirement Specification

3.2.1 Functional Requirements


1) Admin
a) View Blogs: Can view all the types of blogs submitted by the users either
private or public. He will have the whole access.
b) View Users: The details pf all the users that are already there or new
registered users can be viewed by the admin. The user can be Individual or the
Small group of peoples.
c) Update notifications: All the new updates of the particular field can only be
given by admin at the notification panel.
d) CURD Application for all the blogs: The admin can CURD (Create, Update,
Read, Delete) any blogs or the users as per need.
e) Login and Logout: The admin will have its own id and password for logging
in and out after performing the functions.

2) Users:
a) Register: To use this application the user needs to login if they are already a
user or need to register otherwise.
b) Login: each user will have its own unique user id and password and they will
be provided with the 2-step authentication factor and the different columns of
the different topics.
c) Create Blog: The user can create the new blogs according to their need it can
be public as well as private. In public other users can also read the shared
blogs.
d) Update Blog: The user will be able to update or edit the submitted blog now,
because sometimes it becomes the need.
e) Read Blog: The users can read the blogs of each other and give their own
opinions by using the features of the commenting on the post. They will create
the spread of the particular individual through social media who are having
the similar opinions on the particular topic.
f) Delete Blog: Some blogs are inappropriate and can hurt anyone’s sentiments
such blogs should be deleted. For this only this option is given.

3.2.2 Non-Functional Requirements


1. Performance requirements: The website will contain different types of blogs
such as weblog, sports blog, articles, novels, vlogs, etc.
2. Network Requirements: The user using the website must have the proper
internet connectivity as it is a web application.
3. Security Requirements: The user can only see the half blog and the other half
is blurred without login and password. Must use full site encryption.
4. Error handling: The system will avoid errors and if any error occurs then the
system will provide safe backup. No loss of information will take place.
3.3 Planning and Scheduling

3.3.1 GANTT CHART

Date JUL AUG SEP OCT NOV DEC JAN FEB MAR

Phase

Literature
Survey.

Requirement
Gathering

System design

Coding

Testing

Documentation

Figure 1

Estimated Time

Actual Time
3.4 Preliminary Products Description

3.4.1 Product Perspective:


A design viewpoint in which the design target is a personal object (a consumer product),
such as a device or software app, that a user buys for private use. The product perspective is a
consumer perspective.

The system is intended to work on all types of operating systems like UNIX and
Windows based platform. The system will be a reliable product for all the users.

3.4.2 Product Functions:


1. Administrator: The administrator will be like God user or the super user who will be
having the complete access or control over the website. The registration of new user,
the login, announcement of the updates, handling the users all these tasks will be
done in supervision of the administrator. The administrator can also add, delete,
create, or read data.
2. User: The normal user will only be allowed to register, login, create and update the
blogs and can also add query to the helpdesk. But only the registered users will be
allowed to book an appointment after logging in.
3. User characteristics: The user should be familiar to the use of the internet and
various facility of the blog available online. The user will be able to choose which
types of blogs they wanted to see and read as per their interests, and they can be
asking queries accordingly to the particular blog through comment option.

3.5 Entity Relationship Diagram

ER Diagram stands for Entity Relationship Diagram, also known as ERD, is a diagram that
displays the relationship of entity sets stored in a database. In other words, ER diagrams help to
explain the logical structure of databases. ER diagrams are created based on three basic concepts:
entities, attributes, and relationships.

ER Diagrams contain different symbols that use rectangles to represent entities, ovals to
define attributes and diamond shapes to represent relationships.
At first look, an ER diagram looks remarkably similar to the flowchart. However, ER
Diagram includes many specialized symbols, and its meanings make this model unique. The
purpose of ER Diagram is to represent the entity framework infrastructure.

Figure 2
What is ER Model?

ER Model stands for Entity Relationship Model is a high-level conceptual data model
diagram. ER model helps to systematically analyse data requirements to produce a well-designed
database. The ER Model represents real-world entities and the relationships between them.
Creating an ER Model in DBMS is considered as a best practice before implementing your
database.
ER Modelling helps you to analyse data requirements systematically to produce a well-
designed database. So, it is considered a best practice to complete ER modelling before
implementing your database.

The above ER diagram is the database diagram for my blog application. This entity relationship
diagram shows the blog database system. Such data models are typically used in the first phase of
information system design; for example, they are used to describe information requirements and/or
the types of information to be stored in the database during the requirements analysis phase.

3.6 Conceptual Diagrams

3.6.1 Event table:


The event table displays the event in the following project and the source of the project. It
contains events such as event, trigger, source, activity, response, destination.

Sr Event Trigger Source Activity Response Destination


No.
1. Admin requests to Request for sign in. Admin Verify Homepage Admin/Database
login. username for admin
and
password
2. Admin can view View the details of Admin All the Database Database
users. all users. details of page of the
the users system.
using the
application.
3. Admin can used Add/Delete/Update/ Admin Name and Database/System
CRUD (create, read, Delete users. the other
update, delete) details of
function for the user the users.
information
4. Admin can create Add/delete the blog Admin Details of System/Database
and delete categories. category. the
categories
of the
system.
5. Request to Logout Request sent. Admin Admin Login Page Admin
logged out of website.
of the
system.
6. User request to Request to enter User Set Registration System
register details and create username page.
an account and
password
7. User request to Log- Requesting for sign User Verify Homepage User
in in the system. in. username of User.
and
password.
8. User can create and Request of Creation User Selection User/System
delete blog of its and Deletion of of the blog.
own profile blog.
9. Request to logout Request sent User User Homepage User
logged out of the
from the website.
system.
Figure 3

3.6.2 Use-case diagram:


Use-case diagrams illustrate and define the context and requirements of either an entire
system or the important parts of the system. You can model a complex system with a single use-
case diagram or create many use-case diagrams to model the components of the system. You
would typically develop use-case diagrams in the early phases of a project and refer to them
throughout the development process.

The following topics describe model elements in use-case diagrams:

• Use cases
• Actors
• Subsystems
• Relationship in use-case diagrams
Figure 4

This is the use case diagram for the admin of the application. These are the activities used by
admin in the application.
Figure 5

This is the use case diagram for the user of the application. Here is all the function that a user
can use while using this web application.
3.6.3 Sequence diagram
UML Sequence Diagrams are interaction diagrams that detail how operations are
carried out. They capture the interaction between objects in the context of a collaboration.
Sequence Diagrams are time focus, and they show the order of the interaction visually by
using the vertical axis of the diagram to represent time what messages are sent and when.

Sequence Diagrams captures:

• the interaction that takes place in a collaboration that either realizes a use case or an
operation (instance diagrams or generic diagrams)

• high-level interactions between user of the system and the system, between the system
and other systems, or between subsystems (sometimes known as system sequence
diagrams)

Figure 6
3.6.4 Activity diagram:
Activity diagram is another important diagram in UML to describe the dynamic aspects of the
system.

Activity diagram is basically a flowchart to represent the flow from one activity to another
activity. The activity can be described as an operation of the system.

The control flow is drawn from one operation to another. This flow can be sequential,
branched, or concurrent. Activity diagrams deal with all type of flow control by using different
elements such as fork, join, etc.

Figure 7
This is the activity diagram for my application of blog. This is nothing but the flowchart of the
application. This represents the activity of both user and admin of the system.

3.6.5 Class diagram:

Class diagram is a static diagram. It represents the static view of an application. Class diagram
is not only used for visualizing, describing, and documenting various aspects of a system but also
for constructing executable code of the software application.

Class diagram describes the attributes and operations of a class and also the constraints
imposed on the system. The class diagrams are widely used in the modelling of object-oriented
systems because they are the only UML diagrams, which can be mapped directly with object-
oriented languages.

Class diagram shows a collection of classes, interfaces, associations, collaborations, and


constraints. It is also known as a structural diagram.

Figure 8
3.6.6 Object diagram
A UML object diagram represents a specific instance of a class diagram at a certain moment
in time. When represented visually, you'll see many similarities to the class diagram.

An object diagram focuses on the attributes of a set of objects and how those objects relate to
each other. Object diagrams are dependent on the class diagram as they are derived from the
class diagram. It represents an instance of a class diagram. The objects help in portraying a static
view of an object-oriented system at a specific instant.

Both the object and class diagram are similar to some extent; the only difference is that the class
diagram provides an abstract view of a system. It helps in visualizing a particular functionality of
a system.

Figure 9
3.6.7 Component diagram
UML Component diagrams are used in modelling the physical aspects of object-
oriented systems that are used for visualizing, specifying, and documenting component-
based systems and also for constructing executable systems through forward and reverse
engineering. Component diagrams are essentially class diagrams that focus on a system's
components that often used to model the static implementation view of a system.

A component represents a modular part of a system that encapsulates its contents and
whose manifestation is replaceable within its environment. In UML 2, a component is drawn as
a rectangle with optional compartments stacked vertically. A high-level, abstracted view of a
component in UML 2 can be modelled as:

1. A rectangle with the component's name

2. A rectangle with the component icon

3. A rectangle with the stereotype text and/or icon

Figure 10
3.6.8 Deployment diagram
In UML, deployment diagrams model the physical architecture of a system. Deployment
diagrams show the relationships between the software and hardware components in the system
and the physical distribution of the processing.

Deployment diagrams, which you typically prepare during the implementation phase of
development, show the physical arrangement of the nodes in a distributed system, the artifacts
that are stored on each node, and the components and other elements that the artifacts implement.
Nodes represent hardware devices such as computers, sensors, and printers, as well as other
devices that support the runtime environment of a system. Communication paths and deploy
relationships model the connections in the system.

Deployment diagrams are effective for visualizing, specifying, and documenting the
following types of systems:

• Embedded systems that use hardware that is controlled by external stimuli; for example, a
display that is controlled by temperature change
• Client/server systems that typically distinguish between the user interface and the
persistent data of a system
• Distributed systems that have multiple servers and can host multiple versions of software
artifacts, some of which might even migrate from node to node.

Figure 11
Chapter 4

System Design

4.1 Basic Modules

1. User login:
❖ Register: The new user needs to register in order to make a new blogging account on the
website and use all the facilities to explore the website and make new reach to the world.
❖ Login: Only the registered users can use this module of login. In this user has to put their
login ID and Password to use the website. They can have the answer to the query if any.

2. Admin Login:

The admin will be responsible to add, delete or update the data of the new users and
blogs. He can view the users and the different types of blogs

3. Search Blogs:

The user and Admin both will be able to search the requested information after the login.
The blogs will be categorized according to its categories given by the system and the tags. The
user can choose the blog which they want to see.

4. Add Blogs:

The user can add their own blog to the website for the other users to read.

5. Blog Categories:

The user can see the blogs according to its categories and users can also add their own
blogs according to their category.
4.2 Data Design

4.2.1 Schema Design:


• Admin database:

Name Password

• User database:

Username Email-id Contact Gender City Password

• User database for login:

Username Password

1. Relationship Between tables:

User table:

Attributes Data type Allow null

Username Varchar Primary key


Admin table:

Attributes Data type Allow null

Name Varchar Primary key

Username Varchar Foreign key

(User table) (Admin table)

4.2.2 Data Integrity and Constraints


User details:

Attributes Data Type Allow null Description

Username Varchar Primary Key The username of


individual he wants to
have.

Email-id Varchar No This is the email


address of the user.

Contact Numeric No The 10-digit contact


number of the user.

Gender Varchar No The gender of the user.

City Varchar No This includes the


country of the user.

Password Varchar Unique Password for logging


in.
User login details:

Attributes Data type Allow null Description

Username Varchar Primary key The username registered


for the login in the web
application.
Password Varchar Unique The password created at
the time of registering
the profile.

User Admin details:

Attributes Data type Allow null Description

Name Varchar Primary key The name in the


database.
Password Varchar Unique The password for
logging in.
4.3 Procedural Design

4.3.1 Logic Diagram

Figure 12

4.3.2 Algorithms Design

Step 1 Go to website when needed.


Step 2 If you want to see and upload blogs on this website, you need to have an
account on this website first. If you are already a user, then you can directly
login.
Step 3 If you are a new user than register and add your details.

Step 4 Login into your Blogging Account.

Step 5 Search for the types of blogs you want to Read and have the opinion on.

Step 6 Add new blog on your account and publish it to the website if you are having a
public account.

Step 7 Blogs will be displayed after the search, click on the suitable blog, and add a
comment if you want.

Step 8 If you want to add the new category you can add it.

Step 9 User can also have a private account

Step 10 Then Logout from the Website.

Step 11 After visiting the site normal users can view the different Blogs and ask queries
without logging in.
Step 12 If the admin Login, then he can
1. Manage Users
2. Manage Blog
3. Manage Blog Category
4. Update users
5. Manage Blog Type
6. Manage Updates
Step 13 Logout from the website.
4.4 User Interface Design:

Website home page:

Figure 13
User login:

Figure 14
User registration login:

Figure 15

4.5 Security Issues

Issues Solutions

User Data Data will be kept in encrypted form in the


database and accessible only by valid users and
admin.
User Password Access will be given only to the valid users.

Admin/User privileges Users can access only his account, but admin can
access all the accounts.

Your Blog posts. A blog profile will be private or open as per user
requirement.
4.6 Test Case Design:

Index Test Case Test Data State Test input values Expected
result
1. The username Numbers or INVALID Harshal xyz Enter valid
should be only any other value
in characters (A- special
Z) and (a-z) characters
Alphabets VALID Harshal123 Name is
A-Z and a-z accepted.

2. The password Only INVALID Blog Password


should be numbers or must be
minimum 8 alphabets. minimum 8
characters or characters
more including including
some special special
characters. characters.
Alphabets VALID Blog@123 Confirm
and special Password.
characters
and numbers
3. Contact number Characters INVALID 12345sfd Mobile
should be only or numbers number
10 digits only. less than 10 should be 10
or more than digits only.
10 digits.
Numbers VALID 0123456789 Mobile
between 0-9 Number
accepted
4. The email id Id without INVALID 12345gmail Enter proper
should be in special email id.
proper format. character
and
alphabets.
Alphabets VALID [email protected] Email
and special Accepted.
characters.
Chapter 5

Implementation and testing

5.1 Implementation Approaches

Implementation is the phase which comes after designing. The result of this phase consists of
source code, together with documentation to make the code reliable. Implementation is the action
that must follow any preliminary in order for something to actually happen. It encompasses all
the processes involved in getting new software and hardware operating properly in its
environment, including installation, configuration, running, testing and making necessary
changes. In implementation we start with the actual execution of the website with the design we
have made. Implementation is done before we start with the coding of the software product.
Implementation includes writing codes with the design in hand. Implementation is the process of
building the web according to its design.

System Implementation is used to bring a developed system or sub system into operational use
and turning it over to the user. It involves programmer, users and operational management. It
also needs to introduce and train the people to work with the new system. The system has been
implemented and tested successfully. It meets the information Requirements specified to the
great extent. Although the system has been designed keeping the Present and future requirements
in mind and made very flexible. There are many limitations of this design.

Advantages:

1. It simplifies the operation.

2. It avoids a lot of manual work

3. Every Transaction is obtained and processed immediately.

4. Avoids errors by avoiding the manual work 38

5. User friendly screen to enter the data and enquire the database tables.
6. User can easily access the system without much experience.

5.2 Coding Details and Code Efficiency:

5.2.1 Code Efficiency


• Coding of the application is done completely using the php and JavaScript oriented concepts,
hence is easy to go through while surfing or for a new developer to understand.

• Naming convention have been utilized for user element and that of variables and functions
which help for better understanding of the website application code.

• The application does not contain any type of redundant code which might lead to slowing down
application response time.

• Comments have been declared whenever required for further references.

• The code is written according to the logic which was required for the application to present
itself and hence avoiding any type of unwanted lines of code.

• Simplicity has been maintained throughout the application code by making use of sections and
proper formatting of the code.

• Validations have been provided in order to prevent from any type of misuse of the application
by any of the users.
index.php

<style media="screen">

//This code is for User Interface of the website.

.bg {

background: url('https://png.pngtree.com/png-vector/20220127/ourmid/pngtree-video-blogger-
making-video-for-blog-or-vlog-review-png-image_4369337.png');

background-repeat: no-repeat;

background-position: top;

background-size: contain;

background-colour: Blue;

height: 500px;

</style>

<?php

$index_url='index.php';

$posts_url='posts/posts.php';

$top_posts_url='posts/topposts.php';

$post_url='posts/post.php';

$newpost_url='posts/newpost.php';

$login_url='users/login.php';

$logout_url='users/logout.php';
$register_url='users/register.php';

$search_url='posts/search.php';

$contact_us_url='users/contact_us.php';

session_start();

include("include/navbar.php");

include("include/bootstrap_cdn.php");

if(isset($_SESSION['username'])) {

header("location:posts/posts.php");

?>

<div class="row">

<div class="bg"></div>

</div>

navbar.php

<nav class="navbar navbar-default">

<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->

<div class="navbar-header">

<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-


target="#bs-example-navbar-collapse-1" aria-expanded="false">

<span class="sr-only">Toggle navigation</span>

<span class="icon-bar"></span>

<span class="icon-bar"></span>

<span class="icon-bar"></span>

</button>

<a class="navbar-brand" href= <?php echo "$index_url" ?> >Expert Code</a>

</div>

<!-- Collect the nav links, forms, and other content for toggling -->

<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">

<ul class="nav navbar-nav">

<li><a href=<?php echo $posts_url; ?> > <!--All posts-->

All Posts

</a></li>

<li><a href=<?php echo $top_posts_url; ?> >Top posts</a></li>

<li><a href=<?php echo $contact_us_url; ?> >Contact Us</a></li>


</ul>

<!-- search box -->

<form class="navbar-form pull-left" role="search" action=<?php echo $search_url; ?>


method="post">

<div class="input-group">

<input type="text" class="form-control" placeholder="Search" name="q">

<div class="input-group-btn">

<button type="submit" class="btn btn-default" name="submit"> .

<span class="glyphicon glyphicon-search"></span>

</button>

</div>

</div>

</form>

<!--end of search box -->

<ul class="nav navbar-nav navbar-right">

<?php

if(!isset($_SESSION['username'])) {

include("loginform.php");
}

else {

include("userdetail.php");

?>

</ul>

</div><!-- /.navbar-collapse -->

</div><!-- /.container-fluid -->

</nav>

<!-- HEADER -->

Algos.php

<?php

/* increament post view by 1 */

function increament_views($id , $author) {

/* check if already exixts or not ? */

include("../db/dbconnect.php");

$query="SELECT *
FROM user_post

WHERE postID='$id'

";

$result=mysqli_query($conn , $query);

if($result==true) {

/* Record is already availebl*/

if(mysqli_num_rows($result) == 1) {

while($row = mysqli_fetch_assoc($result)) {

$views=$row['postViews'];

$views = $views + 1;

$query="UPDATE user_post

SET postViews='$views'

WHERE postID='$id'

";

$res=mysqli_query($conn , $query);

if($res) {

//echo "Successfully updated views";


} else {

echo "Problem updating views";

return $row['postViews'];

} else {

//printf("Post record is not availbel");

$query="INSERT INTO user_post (postAuthor , postID ,postLikes , postDisLikes


,postComments ,postViews)

VALUES ('$author' , '$id' , '0' , '0' , '0' , '1')";

$result=mysqli_query($conn , $query);

if($result) {

//echo "************* New record inserted successfully okay ***********";

return 1;

} else {

echo "Problem in inserting the post";

}
} else {

echo "Failed to load views";

return 0;

?>

/* Just finds total views */

<?php

function showViews($id , $author) {

include("../db/dbconnect.php");

$query="SELECT *

FROM user_post

WHERE postID='$id'

";

$result=mysqli_query($conn , $query);

if($result) {
if(mysqli_num_rows($result)==1) {

while($row=mysqli_fetch_assoc($result)) {

return $row['postViews'];

} else {

return 0;

}}

return 0;

?>

register.php

<?php

include("../include/url_users.php");

/* If already logged in then redirect to previous page */

if(isset($_SESSION['username'])) {

header('Location:../index.php');

if(isset($_POST['submit'])) {

$username=$_POST['username'];

$firstname=$_POST['firstname'];

$emailid=$_POST['emailid'];
$password=$_POST['password'];

include("../db/dbconnect.php");

/* CHECK if same user or email exists or not ? */

$query="SELECT * FROM users u, users_buffer uf WHERE u.username='$username'


OR u.emailid='$emailid' ";

$result=mysqli_query($conn , $query);

$rows=mysqli_num_rows($result);

if($rows > 0) {

header("location:register.php");

else {

$query="INSERT INTO users_buffer (username, firstname, password, emailid)

VALUES ('$username','$firstname','$password','$emailid')";

mysqli_query($conn , $query);

header("location:../index.php");

}}

/* * * * * Registeration Form * * * * */

else {

include("../include/frame_register.php");

}
?>

post.php

<?php

include("../include/url_posts.php");

include_once("../include/algos.php");

/* post.php?id=2 */

if(isset($_REQUEST['id'])) {

$id=$_REQUEST['id'];

$query="SELECT * FROM posts WHERE postID='$id'";

$result=mysqli_query($conn , $query);

if($post=mysqli_fetch_assoc($result)) {

$id=$post['postID'];

$title=$post['postTitle'];

$desc=$post['postDesc'];

$tags=$post['postTag'];

$author=$post['postAuthor'];

$time=$post['postTime'];

$shortpost=0;

/* increament view by 1 */

$views=increament_views($id, $author);

include("../include/frame_post.php");
}}

/* post.php?tags=dp */

if(isset($_REQUEST['tags'])) {

$tag=$_REQUEST['tags'];

$query="SELECT * FROM posts WHERE postTag='$tag'";

$result=mysqli_query($conn , $query);

if(mysqli_num_rows($result) > 0) {

while($post=mysqli_fetch_assoc($result)) {

$id=$post['postID'];

$title=$post['postTitle'];

$desc=$post['postDesc'];

$tags=$post['postTag'];

$author=$post['postAuthor'];

$time=$post['postTime'];

include("../include/frame_post.php");

}}}

/* post.php?user=qt */

if(isset($_REQUEST['user'])) {

$user=$_REQUEST['user'];

$query="SELECT * FROM posts WHERE postAuthor='$user'";

$result=mysqli_query($conn , $query);
if(mysqli_num_rows($result) > 0) {

while($post=mysqli_fetch_assoc($result)) {

$id=$post['postID'];

$title=$post['postTitle'];

$desc=$post['postDesc'];

$tags=$post['postTag'];

$author=$post['postAuthor'];

$time=$post['postTime'];

$shortpost=0; /* Full post with without read more */

include("../include/frame_post.php");

}}}

?>

topposts.php

<?php

/* SHOWS MOST VIEWED POSTS */

include("../include/url_posts.php");

include("../db/dbconnect.php");

include_once("../include/algos.php");

// Define styles for the post


$styles = [

"background-color: #f7f7f7",

"padding: 20px",

"border: 1px solid #ddd",

"border-radius: 5px",

"margin-bottom: 20px",

];

$query = "SELECT *

FROM user_post , posts

WHERE user_post.postID=posts.postID

ORDER BY postViews DESC

";

$result = mysqli_query($conn, $query);

if ($result == false) {

echo "problem fetching posts";

} else {

if (mysqli_num_rows($result)) {

echo '<div class="container">';

echo '<h2>Most Viewed Posts</h2>';

while ($post = mysqli_fetch_assoc($result)) {


/* set variables */

$id = $post['postID'];

$title = $post['postTitle'];

$desc = $post['postDesc'];

$tags = $post['postTag'];

$author = $post['postAuthor'];

$time = $post['postTime'];

$views = showViews($id, $author);

$shortpost = 1; /* short post with read more */

// Output the post using the defined styles

echo '<div style="' . implode(";", $styles) . '">';

include('../include/frame_post.php');

echo '</div>';

echo '</div>';

}}

?>

contact_us.php

<?php

include("../include/url_users.php");

?>
<div class="container">

<div class="row">

<div class="col-md-6 mx-auto">

<?php

if (isset($_POST["submit"])) {

$name = $_POST['name'];

$email = $_POST['email'];

$msg = $_POST['message'];

$query = "INSERT INTO messages (name , email , message )

VALUES ('$name' , '$email' , '$msg' )";

$result = mysqli_query($conn, $query);

if ($result) {

echo '<div class="alert alert-success" role="alert">Message sent successfully</div>';

} else {

echo '<div class="alert alert-danger" role="alert">Some error occurred... :-(</div>';

} else {

include("../include/frame_contact_us.php");

?>

</div>
</div>

</div>

search.php

<?php

/* search.php?q='dp' */

include("../include/url_posts.php");

if(isset($_POST['submit'])) {

$q=$_POST['q'];

} else {

printf("<div class='alert alert-info'>No search result found</div>");

$q='';

}+

$query="SELECT *

FROM posts

WHERE postTitle like '%$q%' OR

postTag like '%$q%' OR

postDesc like '%$q%' OR

postAuthor like '%$q%'

";

$result=mysqli_query($conn , $query);
?>

<div class="container">

<h1>Search Results for "<?php echo $q; ?>"</h1>

<hr>

<div class="row">

<?php

if(mysqli_num_rows($result)) {

while($post=mysqli_fetch_assoc($result)) {

$id=$post['postID'];

$title=$post['postTitle'];

$desc=$post['postDesc'];

$tags=$post['postTag'];

$author=$post['postAuthor'];

$time=$post['postTime'];

$shortpost=1; /* short post with read more */

include("../include/frame_post.php");

} else {

printf("<div class='alert alert-info'>No search result found</div>");

?>
</div>

</div>

admin.php

<?php

include("../include/url_users.php");

if(!isset($_SESSION['username'])){

header('Location:../index.php');

else if($_SESSION['usertype']!='admin') {

header('Location:../index.php');

else {

$user=$_SESSION['username'];

?>

<!DOCTYPE html>

<html lang="en">

<head>

<title>Admin</title>

<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">

<link rel="stylesheet"
href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>

</head>

<body>

<div class="container">

<h2>Admin Panel</h2>

<ul class="nav nav-tabs">

<li class="active"><a data-toggle="tab" href="#posts">Post Requests</a></li>

<li><a data-toggle="tab" href="#acc">Account Requests</a></li>

<li><a data-toggle="tab" href="#user">User Details</a></li>

<li><a data-toggle="tab" href="#messages">Messages</a></li>

</ul>

<div class="tab-content">

<div id="posts" class="tab-pane fade in active">

<p>

<?php

include("../include/post_request.php");

?>
</p>

</div>

<div id="acc" class="tab-pane fade">

<p>

<?php

include("../include/account_request.php");

?>

</p>

</div>

<div id="user" class="tab-pane fade">

<p>

<?php

include("userlist.php");

?>

</p>

</div>

<div id="messages" class="tab-pane fade">

<p>

<?php

include("../include/messages.php");

?>
</p>

</div>

</div>

</div>

</body>

</html>

message.php

<?php

if(!isset($_SESSION['username'])){

header('Location:../index.php');

else if($_SESSION['usertype']!='admin') {

header('Location:../index.php');

else {

$user=$_SESSION['username'];

/* fetch user detail */

$query="SELECT * FROM messages ORDER BY id DESC";


$result=mysqli_query($conn , $query );

echo "

<table class='table'>

<tr>

<th>Name </th>

<th>E mail</th>

<th>Message </th>

<th>Time</th>

</tr>

<tbody>

";

if($result) {

if(mysqli_num_rows($result)>0) {

while($row=mysqli_fetch_assoc($result)) {

//include("../include/frame_profile_detail.php");

echo "<tr>";

echo "<td>".$row['name']."</td>";

echo "<td>".$row['email']."</td>";

echo "<td>".$row['message']."</td>";

echo "<td>".$row['time']."</td>";

echo "</tr>";
}

echo "

</tbody>

</table>

";

} else {

echo "failed";

?>

Accountrequest.php

<?php

if(!isset($_SESSION['username'])){

header('Location:../index.php');

else if($_SESSION['usertype']!='admin') {

header('Location:../index.php');

else {

$user=$_SESSION['username'];
}

/* fetch user detail */

$query="SELECT * FROM users_buffer";

$result=mysqli_query($conn , $query );

if($result) {

if(mysqli_num_rows($result)==0) {

echo "No more requests to show";

else if(mysqli_num_rows($result)>0) {

echo "

<table class='table'>

<tr>

<th>ID</th>

<th>Username</th>

<th>Name</th>

<th>Email</th>

<th>Action</th>

<th>Accept</th>

<th>Delete</th>

</tr>

<tbody>
"; while($row=mysqli_fetch_assoc($result)) {

//include("../include/frame_profile_detail.php");

echo "<tr>";

echo "<td>".$row['id']."</td>";

echo "<td>".$row['username']."</td>";

echo "<td>".$row['firstname']."</td>";

echo "<td>".$row['emailid']."</td>";

echo "<td>".$row['password']."</td>";
$accept_requested_user_link='../include/accept_requested_user.php?username='.$row['username'
];

echo "<td><a href=$accept_requested_user_link ><button type=\"button\" class=\"btn btn-


success\">Accept</button></a></td>";

$delete_requested_user_link='../include/delete_requested_user.php?username='.$row['username'
];

echo "<td><a href=$delete_requested_user_link ><button type=\"button\" class=\"btn btn-


danger\">Delete</button></a></td>";

echo "</tr>";

echo "

</tbody>

</table>

"; }
} else {

echo "failed";

?>

userlist.php

<?php

if(!isset($_SESSION['username'])){

header('Location:../index.php');

else if($_SESSION['usertype']!='admin') {

header('Location:../index.php');

else {

$user=$_SESSION['username'];

/* fetch user detail */

$query="SELECT * FROM users ";

$result=mysqli_query($conn , $query );

echo "

<table class='table'>
<tr>

<th>ID</th>

<th>Username</th>

<th>Name</th>

<th>Email</th>

<th>Action</th>

<th>Delete</th>

</tr>

<tbody>

";

if($result) {

if(mysqli_num_rows($result)>0) {

while($row=mysqli_fetch_assoc($result)) {

//include("../include/frame_profile_detail.php");

echo "<tr>";

echo "<td>".$row['id']."</td>";

echo "<td>".$row['username']."</td>";

echo "<td>".$row['firstname']."</td>";

echo "<td>".$row['emailid']."</td>";

echo "<td>".$row['password']."</td>";

//echo "<td><button type=\"button\" class=\"btn btn-default\">Left</button></td>";


$delete_user_link='../include/delete_user.php?username='.$row['username'];

echo "<td><a href=$delete_user_link ><button type=\"button\" class=\"btn btn-


danger\">Delete</button></a></td>";

echo "</tr>";

echo "

</tbody>

</table>

";

} else {

echo "failed";

?>

deleteuser.php

<?php

/* Authenticate user */

include("../db/dbconnect.php");

/* Redirect if postid is not set */


if(!isset($_REQUEST['username'])) {

header('Location: ' . $_SERVER['HTTP_REFERER']);

} else {

$username=$_REQUEST['username'];

/* delete from table posts */

$query="DELETE FROM users

WHERE username='$username'

";

$result=mysqli_query($conn , $query);

if($result==TRUE) {

header('Location: ' . $_SERVER['HTTP_REFERER']);

} else {

echo "Something went Wrong ! please try again later";

?>

profile.php

<?php

include("../include/url_users.php");

if(!isset($_REQUEST['user'])) {
header('Location:../index.php');

} else {

$user=$_REQUEST['user'];

/* fetch user detail */

$query="SELECT *

FROM users

WHERE username='$user'

";

$result=mysqli_query($conn , $query );

if($result) {

if(mysqli_num_rows($result)==1) {

while($row=mysqli_fetch_assoc($result)) {

if($row['usertype']=='admin') {

header("location:admin.php");

include("../include/frame_profile_detail.php");

}}

} else {

echo "failed";

}/*
$query="SELECT *

FROM users as u , user_post as up

WHERE up.postAuthor='$user' AND u.username='$user'

";

$result=mysqli_query($conn , $query);

if($result) {

if(mysqli_num_rows($result) > 0 ) {

while($post=mysqli_fetch_assoc($result)) {

echo "<br>";

print_r($post);

}}

} else {

echo "No such Posts";

} */

?>

login.php

<?php

/* If form is submitted then authenticate it*/

include("../include/url_users.php");
if(isset($_POST['submit'])) {

$username=$_POST['username'];

$password=$_POST['password'];

/* Check login correctness*/

$query="SELECT * FROM users WHERE username='$username' AND


password='$password' ";

$result=mysqli_query($conn , $query);

//$rows=1;

/* query failed */

if($result==FALSE) {

printf("Query failed \n");

header("location:login.php");

if(mysqli_num_rows($result) == 1) {

$_SESSION['username']=$username;

$_SESSION['password']=$password;

/* user type */

$detail=mysqli_fetch_assoc($result);

$_SESSION['usertype']=$detail['usertype'];

/* Redirect to current / previous page*/

header('Location: ' . $_SERVER['HTTP_REFERER']);


//header("location:../index.php");

} else {

echo "

<div class=\"alert alert-danger container\" role=\"alert\">

<span class=\"glyphicon glyphicon-exclamation-sign\" aria-hidden=\"true\"></span>

<span class=\"sr-only\">Error:</span>

Invalid Username or Password

</div>

";

}} else {

if(!isset($_SESSION['username'])) {

echo "

<div class=\"alert alert-danger\" role=\"alert\">

<span class=\"glyphicon glyphicon-exclamation-sign\" aria-


hidden=\"true\"></span>

<span class=\"sr-only\">Error:</span>

Login Again

</div>

";

} else {

header("location:../index.php");
}}

?>

logout.php

<?php

include("../include/url_users.php");

session_start();

session_destroy();

printf("Successfully logged out");

/* Redirect to current page */

header('Location: ' . $_SERVER['HTTP_REFERER']);

//header("location:../index.php");

?>

posts.php

<?php

include("../include/url_posts.php");

include_once("../include/algos.php");

?>

<?php

/* CHECK if same user or email exists or not ? */


$query="SELECT * FROM posts ORDER BY postTime DESC";

$result=mysqli_query($conn , $query);

if(mysqli_num_rows($result) > 0) {

while($post=mysqli_fetch_assoc($result)) {

$id=$post['postID'];

$title=$post['postTitle'];

$desc=$post['postDesc'];

$tags=$post['postTag'];

$author=$post['postAuthor'];

$time=$post['postTime'];

$shortpost=1; /* short post with read more */

$views=showViews($id,$author);

include("../include/frame_post.php");

?>

update.php

<?php

include("../include/url_posts.php");

if(!isset($_REQUEST['id'])) {
header("posts.php");

/* Update post form */

if(!isset($_POST['submit'])) {

include("../db/dbconnect.php");

$id=$_REQUEST['id'];

$query="SELECT * FROM posts WHERE postID='$id' ";

$result=mysqli_query($conn , $query);

if(mysqli_num_rows($result) > 0) {

$post=mysqli_fetch_assoc($result);

/* Only Author can update the post */

if($_SESSION['username'] != $post['postAuthor'] &&


$_SESSION['usertype']!='admin') {

printf("You are not valid user to update this post");

header("location:post.php?id=".$post['postID']);

$id=$post['postID'];

$desc=$post['postDesc'];

$title=$post['postTitle'];

$tags=$post['postTag'];

$author=$post['postAuthor'];
include("../include/frame_update.php");

} else {

echo "No such post exists :-(";

}}

/* Update query */

else {

include("../db/dbconnect.php");

echo "hello";

$id=$_REQUEST['id'];

$desc=$_POST['postDesc'];

$title=$_POST['postTitle'];

$tags=$_POST['postTag'];

echo "ID : " .$id;

$query="UPDATE posts

SET postTitle='$title' , postDesc='$desc' , postTag='$tags'

WHERE postID='$id';

";

$result=mysqli_query($conn , $query);

if($result) {

echo "Updated Successfully";

header("location:post.php?id=".$id);
} else {

echo "updation failed";

header("location:update.php?id='$id' ");

}}

?>

newpost.php

<?php

include("../include/url_posts.php");

/* If not logged in then redirect to login page */

if(!isset($_SESSION['username']))

header("location:../users/login.php");

if(isset($_POST['submit'])) {

$postTitle=$_POST['postTitle'];

$postDesc=$_POST['postDesc'];

$postTag=$_POST['postTag'];

$postAuthor=$_SESSION['username'];

include("../db/dbconnect.php");

/* CHECK if same user or email exists or not ? */


$query="INSERT INTO posts_buffer (postTitle , postDesc , postTag , postAuthor)

VALUES ('$postTitle' , '$postDesc' , '$postTag' , '$postAuthor') ";

mysqli_query($conn , $query);

printf("Successfully posted your post\n");

header("location:posts.php");

/* * * * * POST Form * * * * */

else {

/*

echo "

<form action='newpost.php' method='POST' >

Title : <input type='text' name='title'></br>

Description : <input type='text' name='description'></br>

Tags : <input type='text' name='tag'></br>

<input type='submit' name='submit' value='Publish'></br>

</form>

";*/

include("../include/frame_newpost.php");

?>
newpost.php

<?php

include("../include/url_posts.php");

/* If not logged in then redirect to login page */

if(!isset($_SESSION['username']))

header("location:../users/login.php");

if(isset($_POST['submit'])) {

$postTitle=$_POST['postTitle'];

$postDesc=$_POST['postDesc'];

$postTag=$_POST['postTag'];

$postAuthor=$_SESSION['username'];

include("../db/dbconnect.php");

/* CHECK if same user or email exists or not ? */

$query="INSERT INTO posts_buffer (postTitle , postDesc , postTag , postAuthor)

VALUES ('$postTitle' , '$postDesc' , '$postTag' , '$postAuthor') ";

mysqli_query($conn , $query);

printf("Successfully posted your post\n");


header("location:posts.php");

/* * * * * POST Form * * * * */

else {

/*

echo "

<form action='newpost.php' method='POST' >

Title : <input type='text' name='title'></br>

Description : <input type='text' name='description'></br>

Tags : <input type='text' name='tag'></br>

<input type='submit' name='submit' value='Publish'></br>

</form>

";*/

include("../include/frame_newpost.php");

?>

deletepost.php

<?php

/* Authenticate user */

include("../db/dbconnect.php");
/* Redirect if postid is not set */

if(!isset($_REQUEST['postid'])) {

header("location:post.php?id=".$id);

} else {

$postid=$_REQUEST['postid'];

/* delete from table posts */

$query="DELETE FROM posts

WHERE postID='$postid'

";

$result=mysqli_query($conn , $query);

/* delete from post user_table */

$query="DELETE FROM user_post

WHERE postID='$postid'

";

$result=mysqli_query($conn , $query);

/* delete from comment user_table */

$query="DELETE FROM comments

WHERE postID='$postid'

";

$result=mysqli_query($conn , $query);
if($result==TRUE) {

header("location:posts.php");

} else {

echo "Problem in deleting the Post";

?>

comments.php

<?php

/* fetch comments from db */

$query="SELECT * FROM comments WHERE postID='$id' ";

$result=mysqli_query($conn , $query);

if($result) {

echo "

<div class='panel-footer'>

Comments

</div>

";

if(mysqli_num_rows($result) > 0) {

while($comment=mysqli_fetch_assoc($result)) {
include("../include/frame_comment.php");

} else {

echo "Query failed";

?>
5.3 Testing approaches

Software testing is an integral part of software engineering where the purpose of the introduction
of this concept was to validate the build of the proposed software and verify its working
according to the software requirement specification (SRS).

SRS describes the specifications of the software, it is expected to work, and its needs during
development. This concept of software testing also ensures the quality of the software being
developed. The main reason for which software testing was introduced, is because it gives the
quality assurance of the proposed software before the final result is published.

5.3.1 Unit Testing


Unit testing is a level of website testing where individual units/ components of a website are
tested. The purpose is to validate that each unit of the website performs as designed. A unit is the
smallest testable part of any website. It usually has one or a few inputs and usually a single
output. It is concerned with functional correctness of the standalone modules.

Unit Testing is important because software developers sometimes try saving time doing minimal
unit testing and this is myth because inappropriate unit testing leads to high cost defect fixing
during System Testing, Integration Testing and even Beta Testing after application is built. If
proper unit testing is done in early development, then it saves time and money in the end. Unit
testing is performed on each module of the website that is login page, register page, home page,
post page, services (contact us) page, contact page and about page.

5.3.2 Integration Testing

Integration testing is known as the second level of the software testing process, following unit
testing. Integration testing involves checking individual components or units of a software
project to expose defects and problems to verify that they work together as designed.

In integration testing all the modules are combined together and executed. This helps to
understand if the all the modules work accordingly and is error free and runs in the required
sequence i.e., as the user logs into the account the home page of the website opens which
consists of the links for the different webpages of the website. The user can select any of the
page, when a particular page is selected the website takes the user to that particular web page i.e.,
when the ‘+ (new post)’ page is selected by the user the website opens the add new post page of
the website where the user can create a new blog post and upload it on the website.

5.3.2 Beta Testing

Beta testing is one of the types of User acceptance testing. The main goal of user acceptance
testing is to check whether the developed software product fulfils the user requirements. Beta
testing is performed in order to access the product by exposing it to real end users. After that, the
feedback is taken from the users and the defects are fixed. It helps the software product to
provide better user experience. Beta Testing is one of the Acceptance Testing types, which adds
value to the product as the end-user (intended real user) validates the product for functionality,
usability, reliability, and compatibility. It is a test conducted to determine if the requirements of a
specification are met, It may involve chemical tests, physical tests, or performance tests. Beta
testing is basically done by the user or customer although other stakeholders may be involved as
well.

The goal of a Beta testing is to establish confidence in the system. Beta testing is most often
focused on a validation type testing. Beta testing may occur at more than just a single 113 level.
It is the last phase of the software testing process. Actual software users test the software to make
sure it can handle required tasks in real-world scenarios, according to specifications. It is also
known as Application testing or end user testing.
5.4 Modification and Improvements

The web application needed a bit of modification to reach the needs of the usual users and satisfy
their basic needs.

• The admin needs to accept and approve every post and every user request to join
the server and post the desired blogs.
• The admin can delete any post or user at any time it he/she posted the
inappropriate information or hate speech.
• The user can edit the uploaded post at any time and update it again.
• The views of every post can be seen by everyone.
• There are many modification while adding the new posts features like source,
save, print, search, find and replace, add image using URL, emoji, remove format,
Find and Replace etc.
Chapter 6

Results and Discussion

6.1 Test Reports

Test
Case ID Test Case Description Test Steps Expected Results Pass/Fail

1. Open the system login


page. 2. Enter the correct
admin username and The system should
Admin login password. 3. Click the redirect the admin user
TC001 functionality Login button. to the admin login page. Successful

1. Open the system login The system should


page. 2. Enter incorrect display an error
admin username and message indicating that
Admin login with password. 3. Click the the credentials are
TC002 incorrect credentials Login button. incorrect. Successful

1.New user click on the


sign-up button. 2. Enter The system should
valid user details such as register the user and
User name, email, and send the user
registration/Sign-up password. 3. Click the acceptance request to
TC003 functionality Register button. the admin. Successful
Test
Case ID Test Case Description Test Steps Expected Results Pass/Fail

The admin should be


getting the accept user
1. Open the system login option on account
page. 2. Enter the correct request. After accepting
admin username and the user the user info
Admin accepting the password. 3. Click the should be added in
TC004 existing user. Login button database. Successful

1. Open the system sign- The system should


up page. 2. Enter a display an error
User registration username address that is message indicating that
with existing already registered. 3. the username is already
TC005 username Click the Register button. registered. Successful

1. Open the system home


page. 2. Enter valid user
username and password. The system should
User login 3. Click the Sign-In redirect the user to the
TC006 functionality button. user dashboard page. Successful

The system should


1. Open the system login display an error
page. 2. Enter incorrect message indicating that
User login with username and password. the credentials are
TC007 incorrect credentials. 3. Click the Login button. incorrect. Successful
Test
Case ID Test Case Description Test Steps Expected Results Pass/Fail

1. Login as admin. 2.
Click the + button. 3.
Enter the blog details The system should
such as title, description, update the blog details
Create a new post as and tags. 4. Click the and display the blog on
TC008 admin. Save button. the top of the all blogs. Successful

1. Login as admin. 2.
Delete every blog u want
Delete an existing to be deleted from the The system should
TC009 post as admin posts section. delete the blog. Successful

1. Login as a user. 2.
Click the + button for an
available exam. 3. Enter The system should
the blog details such as update the blog details
title, description, and and display the blog on
Create a new post as tags. 4. Click the Save the post window of the
TC010 user. button. admin. Successful

1. Login as a user. 2. Go The system should


Accepting the post to the post request update the blog details
requests of users as window. 3. Accept or and display the blog on
TC011 admin. deny the post request. the top of the all blogs Successful
Test
Case ID Test Case Description Test Steps Expected Results Pass/Fail

if accepted or delete the


post if denied.

The system should


1.Login as a admin. 2. Go delete the user and
to user details. 3. Click on remove it from
TC012 Deleting the user. the delete button. database. Successful

1.Go to the home page. 2.


Sending a message Click on the contact us The message will be
as a external user to window, fill the details displayed to admin on
TC013 admin. and message and send it. message tab. Successful

1.Login as a user in the


website. 2.click on the Admin could edit all the
User must be able to profile and click on your posts and the user
edit the post after post. 3. Click on the edit should be able to edit
TC014 uploading. post options. their own post only. Successful
6.2 System Functioning/ User Documentation

Home page: -

Sign-in or Login page which allows the user and admin to login to access the website: -

Sign-up(register) page

Contact us page for user to send message to admin: -


Invalid Login: -
Searching the user: -

Invalid user name in search: -


Messages received by the admin-on-admin panel: -

Account requests for new user to the admin: -

Post request for the approval of posts by the user to admin: -


Edit and delete option of all posts to the admin: -

User profile: -
Creating a new post as a user: -

Posts uploaded by the user: -


Update post feature for user: -

User details by admin: -


Comment on the post: -
Chapter 7

Conclusion

7.1 Conclusion

The blog web application build with the XAMPP server is an easy to use and basic website that
serves as platform for users to make and publish blogs to the world and get their opinion on it
and administrators to manage and verify those blogs and users. The combination of technology
using XAMPP that includes APACHE, MySQL that has allowed the development of the high-
performance web application that is scalable, flexible, and simple to maintain.

User registration and logins, creating of new blog post and editing, blog-surfing, comments and
administration are all included in the project. Password hashing ensures that the user is safe and
protected from unauthorised access.

User will enter all the information they want to share as a post and post it. After the admin
accepts the post request the information in the post will be saved in the database according to the
autogenerated id. When the request is accepted by the admin the post will be show in all post tab
and the other users can view and comments on those posts.

To ensure the application's functionality, reliability, and performance, the project employs a
variety of testing methods, including unit testing, integration testing, and Beta testing. The use of
the XAMPP IDE improves the efficiency and productivity of the programming process even
further. The project's efficient code, extensive testing, and strong security measures ensure that it
is a trustworthy and useful tool for its users.
7.2 Limitation of the system

Although I have put my best efforts to make the software flexible, easy to operate but limitations
cannot be ruled out even by me. Though the software presents a broad range of options to its
users some intricate options could not covered into it; partly because of logistic and partly due to
lack of sophistication. Paucity of time was also major constraint; thus, it was not possible to
make the software fool proof and dynamic. Lack of time also compelled me to ignore so much
part such as storing result of the post.

Considerable efforts have made the software to operate even for the people not related to the
fields of computers but it is acknowledged that a layman may find it a bit problematic.

• More features are needed for the website such as achieving the post the user doesn’t want
to share for a while.
• The testing should be done in more effective manner.
• Website should be mobile-friendly.
• Website should be eye-catchy.
• User interface needs to be improved.
• Forgot password feature.
• Offline reports of blogs.
• A blog profile will be private or open as per user requirement.

7.3 Future Scope of the Project

• The system should provide the profile picture or the avatar feature for the users so that it
makes it more attractive.
• The system should provide the archive feature for the user.
• We can add printer in future.
• We will host the platform on online server to make it more accessible to the world.
• Implement the backup mechanism for taking the backup of code and database in regular
interface of time.
• Sitemap can be created.
References & Bibliography

❖ The Joy of PHP Programming: A Beginner's Guide - Alan Forbes.


❖ PHP & MySQL Novice to Ninja - by Kevin Yank.
❖ SQL for Data Analytics - Upom Malik, Matt Goldwasser, and Benjamin Johnston.

Website Used
• https://github.com
• https://www.geeksforgeeks.org/
• https://www.w3schools.com/
• https://www.google.com/
• https://www.javatpoint.com
• https://www.youtube.com
• https://www.wikipedia.com
• https://www.researchgate.com
• http://kamarajcollege.ac.in/Department/Computer%20Science/II%20Year/007%20Skill%
20Based%20I%20Core%20-
%20Programming%20with%20PHP%20&%20MYSQL%20-%20III%20Sem.pdf
• https://www.codewithharry.com/

YouTube channels:

@codewithHarry

@Jake wright

@The Net Ninja

You might also like