You are on page 1of 35

BLOG IT!

Content Management System using PHP/mySQL

DEEPANSH DUGGAL

05614803114

Maharaja Agrasen Institute of Technology


Affiliated to Guru Gobind Singh Indraprastha University
Rohini, New Delhi
(2014-2018)
Major Project report submitted in partial fulfillment of the requirement
for the award of the degree

of

BACHELOR OF TECHNOLOGY
IN

INFORMATION TECHNOLOGY

BY

DEEPANSH DUGGAL

05614803114

Maharaja Agrasen Institute of Technology


Affiliated to Guru Gobind Singh Indraprastha University
Rohini, New Delhi
(2014-2018)
Maharaja Agrasen Institute of Technology

CERTIFICATE

This is to certify that the project report entitled BLOGIT! Content


Management System in PHP/mySQL being submitted by Mr
Deepansh Duggal in partial fulfillment for the award of the Degree
of Bachelor of Technology in IT to the Maharaja Agrasen Institute of
Technology is a record of bonafied work carried out by him under my
guidance and supervision. The results embodied in this project report
have not been submitted to any other University or Institute for the
award of any Degree or Diploma.

(Head of the Department) Guide Name: Ms. Neha Agrawal


Designation:
ACKNOWLEDGEMENT

First and foremost, I wish to express my profound gratitude to Ms. Neha Agrawal,
Assistant Professor, Information Technology for giving me the opportunity to
work on this prestigious project. I find great pleasure to express my unfeigned
thanks to our group head for invaluable guidance, support and useful suggestions
at every stage of this project work.

No words can express my deep sense of gratitude to Mr. ML Sharma, Head of


Department, Information Technology without whom this project would not have
turned out the way it did. My heartfelt thanks to him for his immense help and
support, useful discussions and valuable recommendations throughout the course
of my project work.

I wish to thank my respected faculty and my lab mates for their support.

Last but not the least I thank the almighty for enlightening me with his blessings
ABSTRACT
The aim of the project is to come up with a blogging platform that caters to specific
needs of digital content developers and allows them to customize the content on the website
by giving them control of functionalities and plenty of options to choose from in terms of
themes, layouts, color schemes, search engine optimization, etc.

When it comes to Content Management Systems, there are hardly a few digital content
developers who would go for a CMS that isn’t based on Wordpress, Joomla or Drupal. Since
they are open source content management systems, most of the digital platforms edit the
source code, customise it as per their needs and use it verbatim. However, the speed at which
the digital content is changing every day, we would soon need a new CMS backend that
doesn’t necessarily restrict the users to specific website layouts and themes or gives them
limited control over functionality of the website and how the users interact with the frontend.
This project aims to develop a CMS which isn’t necessarily a competitor of Wordpress but
one that overcomes all the shortcomings of Wordpress and other commonly used content
management systems.

In the digital age where Facebook and Twitter timelines are flooded with digital content in the
form of articles, gifs and images, it won’t be wrong to say that managing digital content can
be a herculean task for most digital content creators. This calls for a versatile content
management system which allows the content creators to efficiently manage the digital
content that is published online daily. While Wordpress continues to be the most commonly
used CMS, there are several users whose needs are not necessarily fulfilled by Wordpress. It
is only natural to come up with a Content Management System that takes into account the
need of all the users. Considering the rate at which the digital market is expanding, we’ll need
better content management systems in future which makes the it an apt choice.

TABLE OF CONTENTS
S.No. Chapter Page Number
List of Code Snippets 06

List of Photographs and Diagrams 07

1 (1.1-1.4) Introduction 08

1.1 Introduction to Content Management System 08

1.2 Salient features of CMS 09

1.3 Choosing a CMS 10

1.4 CMS Vendor 11

2 Hardware and Software Requirements 12

3 Review of Literature

4 (4.1-4.3) Software Requirement Analysis

4.1 Problem Statement

4.2 Methodology

4.3 Modules and their Functionalities

5 (5.1-5.2) Software Design

5.1 0-Level, 1-Level DFD

5.2 ER-Diagram

6 Configuring Stamplay

7 (7.1-7.9) Testing

7.1 Add Post Button

7.8 Add Media

7.9 Delete Posts

8 Outputs

9 Bibliography
LIST OF CODE SNIPPETS
S.No. Figure No. CODE Description Page Number

The code gives an example illustrating the


01 CODE 1
Index.php module

This code snippet illustrates the Login.php


02 CODE 2
module of CMS

03 CODE 3 This code illustrates the use of Add-Post.php


module of CMS

LIST OF PHOTOGRAPHS
S.No. Figure No. Photograph Description Page Number

01 Fig 1 Snapshots of Test Case 1,2,3

02 Fig.2 Snapshots of Test Case 4,5,6

03 Fig. 3 Snapshots of Outputs 1,2,3,4,5,6

LIST OF DIAGRAMS

S.No. Diagram Description Page Number

01 Data Flow Diagram (0-Level DFD) on Blog It!-CMS in


PHP/mySql

Data Flow Diagram (1-Level DFD) and ER- Diagram on


02
Blog It!- CMS in PHP/mySQL

CHAPTER 1
INTRODUCTION
1.1 INTRODUCTION

A content management system (CMS) is a software application or set of related


programs that are used to create and manage digital content. CMSes are typically
used for enterprise content management (ECM) and web content management
(WCM). An ECM facilitates collaboration in the workplace by integrating document
management, digital asset management and records retention functionalities, and
providing end users with role-based access to the organization's digital assets. A
WCM facilitates collaborative authoring for websites. ECM software often includes a
WCM publishing functionality, but ECM webpages typically remain behind the
organization's firewall.

Both enterprise content management and web content management systems have
two components: a content management application (CMA) and a content delivery
application (CDA). The CMA is a graphical user interface (GUI) that allows the user
to control the creation, modification and removal of content from a website without
needing to know anything about HTML. The CDA component provides the back-end
services that support management and delivery of the content once it has been
created in the CMA.

1.2 FEATURES OF CMSes

Features can vary amongst the various CMS offerings, but the core functions are
often considered to be indexing, search and retrieval, format management, revision
control and publishing.

 Intuitive indexing, search and retrieval features index all data for easy access
through search functions and allow users to search by attributes such as
publication dates, keywords or author.
 Format management facilitates turn scanned paper documents and legacy
electronic documents into HTML or PDF documents.

 Revision features allow content to be updated and edited after initial


publication. Revision control also tracks any changes made to files by individuals.

 Publishing functionality allows individuals to use a template or a set of


templates approved by the organization, as well as wizards and other tools to
create or modify content.

Other popular features of CMSes include:

 SEO-friendly URLs

 Integrated and online help, including discussion boards

 Group-based permission systems

 Full template support and customizable templates

 Easy wizard-based install and versioning procedures

 Admin panel with multiple language support

 Content hierarchy with unlimited depth and size

 Minimal server requirements

 Integrated file managers

 Integrated audit logs

1.3 CHOOSING A CMS


There is almost no limit to the factors that must be considered before an
organization decides to invest in a CMS. There are a few basic functionalities to
always look for, such as an easy-to-use editor interface and intelligent search
capabilities. However, for some organizations, the software they use depends on
certain requirements.

For example, consider the organization's size and geographic dispersion. The
CMS administrator must know how many people will be utilizing the application,
whether the CMS will require multilanguage support and what size support team
will be needed to maintain operations. It's also important to consider the level of
control both administrators and end users will have when using the CMS. The
diversity of the electronic data forms used within an organization must also be
considered. All types of digital content should be indexed easily.

1.3 CMS Vendors


There is a huge number of both free and subscription-based CMS
offerings available for personal and enterprise use. The following
are just a few examples of CMS platform providers:

SharePoint -- A collection of cloud- and web-based technologies that makes it


easy to store, share and manage digital information within an organization.

Documentum -- Provides tools for storing and retrieving content rapidly, and is
known for its fine-grained access control.

M-Files -- Uses a meta-tag-based approach to managing electronic documents.

Joomla -- A free and open source WCMS built on an MVC framework. Joomla is
written in PHP and offers features such as caching, RSS feeds, blogs, search and
support for language internationalization.

WordPress -- Another free and open source WCMS based on PHP and MySQL.
WordPress can be utilized as part of an internet hosting service
(WordPress.com), or it can be deployed on a local computer to act as its own
web server (WordPress.org). It is immensely popular amongst the blogging
community.
DNN - Provides marketers with the content management tools they need to
easily access all of their digital assets regardless of where they are stored,
publish content to any online channel, personalize it to each visitor and measure
its effectiveness.

Oracle WebCenter -- Oracle's portfolio of user engagement applications built on


their own development framework and offered at a per-CPU licensing cost.
Three main products make up the suite: Oracle WebCenter Content, Oracle
WebCenter Sites and Oracle WebCenter Portal. One of Oracle's major features is
that content can be centrally managed in one location and shared across
multiple applications.

Pulse CMS -- A proprietary software option designed for small websites that
enables a web developer to add content to an existing site and manage it easily
and quickly. It does not require a database. It uses Apache with PHP 5 and
offers user support for paying customers.

TERMINALFOUR -- This company's flagship product, Site Manager, is a


proprietary software-based CMS that offers extensive multi-platform support.
While the on-premises license can be costly, past updates have been reviewed
favorably and it supports a broad user community platform for the exchange of
ideas and peer-to-peer help.

OpenText -- OpenText's ECM Suite and Web Experience Management are aimed
at the enterprise and are available both on premises and through the cloud.
OpenText specializes in the management of large volumes of content,
compliance with regulatory requirements, and mobile and online content
management for enterprise use.

Backdrop CMS -- A free and open source CMS that is part of the Drupal project
and focused on providing affordable CMS for small and medium-sized
organizations. On its own, Backdrop offers just the most basic web content
management features, but it can be extended with the help of the various
modules available.
CHAPTER 2
Hardware and Software Requirements

PROCESSOR Pentium IV processor


RAM 128 Mega Byte (MB)
HARDDISK 1.2 Giga Byte (GB)
MONITOR COLORED
Sublime Text Editor 3/ Notepad C++
Web Hosting Account on 000webhosting.com
Browser: Chrome/ Firefox/ Internet Explorer
Filezilla FTP Transfer Software (Latest
Version)
phpMyAdmin Localhost Server
Windows Command Line
mySQL

CHAPTER 3: REVIEW OF LITERATURE


Back in the mid-1990s, we were trying hard just to get HTML pages to display
properly. About the only dynamic pages were e-commerce sites. Everybody was
trying to get e-commerce sites going with Perl, Cold Fusion or whatever else
they could find. By the late 1990s, other languages better suited to the web
were coming out, like PHP and people started figuring out that it was a good
thing for site owners to be able to edit content on their own sites. People
started writing content-management systems (CMSs).

This allowed people to upload photos, write stories, and made web pages much
more interesting. In those days, everyone wrote their own. This was the dawn
of the custom CMS. Then some people started commercializing their CMSs and
building businesses that sold and supported CMSs. Several of the web-based
CMSs were outgrowths of another category of software:

Document Management Systems. These kept up with word-processing


documents, spreadsheets, presentations: typical desktop-software documents.
These were coming to the fore around the year 2000. They were used by large
magazines and newspapers, and generally ran to a six-figure implementation
budget. In the early 2000s work began on open-source CMSs: Mambo, Drupal,
and others. For the first few years, they were only marginally useful, but by
about 2004, they were starting to be ready for prime-time. That's the history of
CMSs: Custom (c 1997), Proprietary (c. 2000) and open-source (c. 2004).

I'll make the case that there is absolutely no reason to start a project on a
from-scratch custom CMS these days. The last site I knew of that went down
that path were left high and dry after nine months when the company decided
they didn't want to support that software any more. Are proprietary CMSs worth
while? It depends on the feature set needed. I'd say for over 90% of the sites
out there, an open-source CMS will do the job nicely. Unfortunately, this leaves
only a niche market for proprietary CMSs.

-by Ivery Blent Laminack


Source: http://www.laminack.com/index.php/technology/11-a-brief-history-of-
content-management-systems
CHAPTER 4- SOFTWARE REQUIREMENT
ANALYSIS

PROBLEM STATEMENT:

1) To develop a simple web-based blogging platform BlogIt that


allows users to Sign Up and create personalised blogs.

2) To seamlessly integrate a Content Management System (CMS)


in the blog that allows users to edit, update, delete and publish their
blog posts in real time.

3) To develop a comments system with upvote and downvote


options that allows the users to submit their feedback on blog posts.

METHODOLOGY:

The front end of the web application BlogIt is based on Bootstrap


and AngularJs. While Bootstrap has been used to create the basic
UI, AngularJs has been used to create a dynamic, Single Page
Application (SPA).

The CMS backend has been developed in PHP and the entire web
application has been linked to a mySql database which will be used
to store the blog posts and will be updated as and when the users
create/ edit/ update the blog posts in real time.
A free domain name service has also been used. It is on this domain
that the blogging website has been deployed.

MODULES AND THEIR FUNCTIONALITY:


1. Index.php: This file loads the front end of the blogging platform.
This file displays the user interface (which is based on Bootstrap). It
displays the navigation bar and menu icons along with icons to
various social media platforms. The user can navigate through the
published posts and take a birdseye view of the website through this
file.

It also uses various Bootstrap classes such as Navbar and Navbar


default to make the UI rich and appealing.

2. Contactus.php: This file too is a part of the front end. This allows the
user to submit their personal information such as name, contact
number, email address through the front end. The admin can collect
these details from the back end and then approach the user. It also
has a text field where the user can type their message and a map
with address bar.

3. Post.php: This file allows the user to view a particular blog post. The
user can select a particular post from the index.php file and then
navigate to that custom post.

4. Login.php: This page opens when the admin tries to log into the
admin panel where the admin can add/ remove/ modify posts. It has
2 text fields, username and password.
5. Add-post.php: This page allows the admin to add a new post. It is
the main part of the content management system. It had a word-
type text editor which allows the user to add a post in different font
formats and text types. It also has the option to select the category
of the post and add tags which allows the page to be displayed on
Google’s search results. It has a space for heading and adding
media (images) to the blog post. Finally, it has a publish button
which allows the admin to publish the post.

6. Media.php: As a part of Enterprise Content Management, all users


(irrespective of their access) share a common database. Media.php
page allows the user to upload media files and save them for later
use.

7. Comments.php: This module allows the admin to approve/reject the


various comments that are posted by the readers on the blog posts.
There is a table on this page with different columns. Status column
shows the status of the comment (approved/ unapproved).
Approve/Unapprove columns allow the admin to change the status.

8. Categories.php: This module allows the admin to create various


categories for posts. In real world, these categories are various
groups into which published articles can be categorized. For
example: Sports, Entertainment, Lifestyle, Trends, etc.

9. Users.php: This module allows the admin to view the list of users
that have an access to the content management system. These
users have only 2 types of roles:- Admin or Author. While the
authors can add posts, admin has the access to delete them, make
changes to them, etc.

10. Profile.php: This module allows the user to view the profile of
the logged in person.
11. Logout.php: This module allows the user to logout of the
content management system.

CHAPTER 5
SOFTWARE DESIGN
Following Data Flow Diagram (DFD) diagram
can be used to represent the software:
Following is Level 1- Data Flow Diagram

ER-Diagram
CHAPTER 6
CODE TEMPLATES
Index.php: This file loads the front end of the blogging platform. This file
displays the user interface (which is based on Bootstrap). It displays the
navigation bar and menu icons along with icons to various social media
platforms. The user can navigate through the published posts and take a
birdseye view of the website through this file.
Login.php
AddPost.php

This page allows the admin to add a new post. It is the main part of the content
management system. It had a word-type text editor which allows the user to
add a post in different font formats and text types.
CHAPTER 7
TESTING
BLOGIT! Content Management System can be tested easily by clicking the Add
Post button and testing the functionality of the comments. Here, we go for black
box testing where in the input values (the blog post with text and other media)
and the output values (the published post) are known.

Case 1: Testing the functionality of the ‘Add Post’ button

Here, we are going to test the functionality of the ‘Add Post’ button which is the
most important part of the project since it allows the authors to create a new
blog post using the CMS backend. We first click the ‘Add Post’ button and then
fill in the Categories, Tags, Body of the Text and the headline.

In the end, we click ‘publish’ button to see the final post.


Case 2: Testing the functionality of the comments feature

In this case, we will go to a particular post and click on the comments section.
Once we click on the comments section, we type on the name, email address
and the comment. The comment will then go to the admin panel for approval on
clicking ‘submit’ and the admin can approve/ reject it.

Case 3: Testing the functionality of ‘Add User’ button

Now, we can also add new users to our Database using the ‘Add User’ button. A
form opens up and we fill in the details of the new user along with the role
specification. Once approved by admin, we can login using the ID and password
of the new user.

Case 4: Adding new categories

We can also add new categories to our CMS backend. These categories will help
us to organize our articles into categories so the readers can access them easily.

Case 5: Adding new media

Since the database is shared by all the users, each user has the access to add
new media files which can be accessed by all users alike.
Case 6: Deleting posts

The admin can delete posts easily by clicking on the cross button next to each
post on the ‘All Posts’ section.
CHAPTER 8
OUTPUTS
In this chapter, we’ll the outputs of the test cases which we analyzed in the
previous chapter.

Case 1: Testing the functionality of the ‘Add Post’ button

After clicking Publish, we will go to the main page to see if the post has been
published. The output (published post) is shown.
Case 2: Testing the functionality of the comments feature

On the CMS backend, we can see a pending comment requesting for approval.
Once approved, the comment is published.
Case 3: Testing the functionality of ‘Add User’ button

We will now go the ‘users’ section of the CMS backend and we see that the new
user (ROLE: Author) has been added to the list.

Case 4: Adding new categories

Once we click the ‘Add’ button, the new category, that is Sports is added.
Case 5: Adding new media

After clicking the choose file button, we see that the new file has been added to
the database.

Case 6: Deleting posts

On clicking the cross (x) button, the post is deleted and no longer visible on the
homepage.
9 BIBIOGRAPHY
References:
http://www.laminack.com/index.php/technology/11-a-brief-history-of-content-
management-systems

http://searchcontentmanagement.techtarget.com/definition/content-
management-system-CMS

YouTube Tutorials:
Muhammad Babbar

https://www.youtube.com/watch?v=AlpV2TztTrc&list=PLXFM4wDu-
CQa2DjmfU2aOqBKWHI0Q_wpk

PHP Tutorials (New Boston)

https://www.youtube.com/watch?
v=iCUV3iv9xOs&list=PL442FA2C127377F07

BOOKS:
PHP COOKBOOK by Adam Trachtenberg and David Sklar

Head First PHP & MySQL: A Brain-Friendly Guide -Book by Lynn Beighley and
Michael Morrison

Programming PHP- Book by Rasmus Lerdorf