You are on page 1of 36

THE GEORGE TELEGRAPH TRANING INSTITUTE

Final Semester Project Documentation


By

SUBHADEEP GHOSH

CONTENTS

About George Telegraph Training Institute


About GTTI Bongaon Branch
About my Experience In The Institute
Introduction of Project
Objective of the project
Project Category
Responsibility
Requirement Specification
Feasibility Study
Test and Problem Reporting
Tools, Platform, Hardwires Specification
i. Programming & Software Specification
ii. Hardware Specification
iii. Platform Specification
Modules
Structure of the Program
i. High-level layout diagram of the system
ii. Analysis
o ER Diagram
o Data Flow Diagram
iii. Data Structure
o Database Name
o Database Table
Screenshot
i. Admin Portal
ii. Client Portal
Coding
Bibliography

THE GEORGE TELEGRAPH TRANING INSTITUTE


Shaping Careers Changing Lives Since 1920
George Telegraph was established on 16th
May, 1920 in response to the potential
gravity of the unemployment problem in
India. A registered trust dedicated to
human resource development to the
requirement of Indian industry, is one of
the pioneers of industrial training in
India.
Within a brief period of establishment,
George Telegraph was recognized as s
center of excellence by diverse bodies
such as the British Army, The British
Railway Board, Ministry of Communications, Government of India, Department of
labor, Government of India, Railway Board, New Delhi, Maritime authorities and
various Chambers of Commerce.
Today, it offers a most comprehensive range of training programs in the fields of
electronics engineering, electrical engineering, mechanical engineering, civil
engineering, commercial practice, communicative studies and computer software
through a network of centers in Eastern India.
The Institute is a training partner of national
skill development corporation (NSDC) Govt.
of India all the courses here are NSDC
affiliated.

THE GEORGE TELEGRAPH TRANING INSTITUTE


BONGAON BRANCH
Address:- Opposite Khelaghor Math, Bongaon, North 24 Parganas

Course Name: Computer Application and Programming (CAP)


Project Title: Online Music Gallery System (OMGS)
Administrative In Charge (AIC):Niladri Paul
Trade Teacher Name: Amitava Das
Session Name: January/February -2016
PROJECT MEMBERS:
NAME
1. Dip Saha Chowdhury
2. Subhadeep Ghosh
3. Pijush Ghosh
4. Jayati Samadder

REGISTRATION NO
2016/12/040/PW
2016/12/030/GN
2016/12/045/PW
2016/12/043/PW

MY EXPERIENCE ABOUT COURSE, CENTER, AIC Sir & TRADE TEACHER


In 2016 when I decided to join George Telegraph Training Institute, I entered
into the George Telegraphs Bongaon center. This was situated near Bongaon
Municipality.
In George Telegraph Training Institute, the administrator or the AIC sir welcomed
me and he asked me for the course I want to learn.
I told him that I want to learn about Computer Programming, and thats why I
entered into the CAP.
AIC sir named Mr. Niladri Paul who takes care of each of us.
It is my honor to write something about my trade teacher Mr. Amitava Das. Under
his teaching, I came to know so much about computer. In this project, without his
contribution and help I simply wont complete this project.
Another man in the institute who guide me every time. He is Mr. Tapas Biswas.
Also thanks to all other Stuffs of George Telegraph Institute. They helped me
to get a better experience.

Project Report
of
Online Music Gallery System
(songs_india.in)

Introduction of the Project:


This is a project work undertaken in context of partial fulfillment of CAP. We have tried our best to
make the complicated process of Online Music Gallery as simple as possible using Object Oriented Design
techniques. We have designed this website in such a way that user may not have any difficulty using this
website & further expansion is possible without much effort.
This project issued by two types of users:
1. Online Users.
2. Back Office Administrative Users.

1. Online Users: Online users can browse music gallery based on their interest. OMGS provides users
detailed information about a music album, for example singers name, artist, lyrics etc. User can play or
download music online.
2. Administrative Users: Administrator of this website can maintain online music gallery website using
a control panel. Control Panel provides ability to add, update music albums. Only valid users can access
control panel of website. Administrative user has ability to add more users and provide them appropriate
roles to access this website.

Objective of the project:


The main objective to develop the project is to make the OMG system simple, easy and increase the
productivity of the Managers in taking decisions because all the information is available in the organized form.
1. This website provides a user-friendly interface for the user and it reduces the data redundancy.
Centralized information is available which can be accessed by number of users.
2. The searching of record has been made quite simple as all the details of the music album can be
obtained by simply keying in few keywords.
3. All information is stored electronically in database and only accessible to authorized users of the
system.
4. Administrators of website can create reports to see performance of their business and take corrective
actions based on results
5. Faster Retrieval of information Locating and retrieving information from storage. The ability in
conducting complex searches.
6. Greater accuracy and consistency: Carrying out computing steps, including arithmetic, correctly and
consistently.
7. Better Security: Safeguarding sensitive and important information in form that is accessible only to
authorized person.
8. Reduce Cost using computing capability to process at a lower cost than possible with other methods,
while maintaining accuracy and performance level.

Project Category:
The project would be built with Object Oriented Programming System (OOPS) using Relational
Database Management System (RDBMS). Care would be taken to fully utilise the OOPS capabilities of the
programming language to make the website decent looking matching with HD themes. The RDBMS back-end
engine would be optimally burdened for necessary searching, sorting and filtering via standard SQL queries.

Responsibility:
Guide:
The major professor will be responsible for supervisory committee duties as well as supervise and
evaluate the work & progress done by the developer on a weekly basis.

Developer:
The developer will be responsible for all the documentation and software development tasks of the
project. The project plan will describe all the tasks to be completed by the developer under the major
professor supervising. Also, the developer will meet the major professor on a weekly basis to report
progress.

Requirement Specification:
1.
2.
3.
4.
5.
6.

The Login box should appear when the system is invoked.


User can contact with admin.
User can search music.
Administrator can create the user of the system.
Administrator can upload data to system
Administrators can see all activities requested by the User.

Feasibility Study:
Feasibility study is conducted to select the best system that meets performance requirement. The system
required a statement of constraints; the identification of specific system objective and a description of output
define performance etc. The key considerations in feasibility analysis are:
a. Technical Feasibility: This project is feasible on technical remarks also, as the proposed system is
more beneficiary in terms of having a sound proof system with new technical components installed on the
system. The proposed system can run on any machines supporting Windows and Internet services and works on
the best software and hardware that had been used while designing the system so it would be feasible in all
technical terms of feasibility.
b. Economic Feasibility: We classified the costs of OMGS according to the phase in which they occur. As
we know that the system development costs are usually one-time costs that will not recur after the project has
been completed. For calculating the Development costs we evaluated certain cost categories wiz.

Test and Problem Reporting:


A Website Test Plan will be written to satisfy the requirements. The plan will provide management and
the testing function with an overview of the test activities, schedules and resources required to perform testing.
The plan will describe how the testing specifications will be implemented. Unresolved problems will be
reported directly to the supervisory committee.
o Quick reports on the current status will be very time consuming and the chances of error will be
high.
o Calculation mistake are another problem for the system and have drawback of accuracy of result
obtained.

Tools /Platform, Hardwires Specification:


i.

Programming & Software specification:


Front End:
Back End:
Database:
Web Server:
Operating System:
Execution:
Documentation:
Coding Platform:

ii.

Hardware specification:

iii.

HTML, CSS
PHP
My SQL
Xampp (Apache)
Windows 7
Mozilla Firefox
MS Word 2007
Notepad++

Intel(R) Core(TM) DUAL CPU M 520 @ 2.00GHz 2.00 GHz processor


4.00 GB of RAM
500 GB HDD
Monitor
Keyboard
Optical Mouse16X DVD/CD Writer
Laser Printer 6P

Platform Support:

Windows OS
Linux
Google Chrome Browser
Mozilla Firefox
Internet Explorer
Microsoft Edge

Modules:
Online Music Gallery System has been designed to computerise the following Modules that are performed by
the system:

1. Authorization Module
a.
b.
c.
d.

Password Checking
Change password
Creating new user
User login detail

2. Employee Detail Module


a. Viewing employee detail
b. Adding details of new employees.
c. Deleting an employee detail
3. Recruitment Information Module
a. Generating requests
b. Updating detail against requests
4. Appraisal Module
a. Adding appraisal detail of employee
b. Viewing appraisal detail
5. Play & Download Module
a. Playing song
b. Downloading song
6. Searching Module
a. Searching songs as per user requirements
7. Upload Module
a. Songs with details
b. Upcoming movies photos

A Complete Structure of the Program:


1. High-level layout diagram of the system:

2. Analysis:
Entity Relationship Diagram:

Data Flow Diagram:


o 0th Level DFD:

o 1st Level DFD:

o 2nd Level DFD:

3. Data Structure:
Database Name: songs_india
Database Tables:
1. admin:
Field Name
e_id
e_name
pass
email

Data Type
Varchar
Varchar
Varchar
varchar

Field Size
50
50
50
50

Field Name
email
name
details

Data Type
varchar
varchar
varchar

Field Size
50
50
100

Field Name
songs_name
movie_name
artist_name
lang
year_of_movie
lyrics_dtls
composer_name
size_dtls
Photo
song

Data Type
varchar
varchar
varchar
varchar
varchar
varchar
varchar
varchar
longblob
longblob

Field Size
50
50
50
50
50
50
50
50
128mb(max)
128mb(max)

Field Name
movie
photo

Data Type
varchar
longblob

Field Size
50
128mb(max)

Field Name
uID
pass
name
address
email
phone

Data Type
varchar
varchar
varchar
varchar
varchar
varchar

Field Size
50
50
50
50
50
11

2. request:

3. songs:

4. upcoming:

5. user:

Screenshot:
Admin Portal:
Index page:

Home page:

Songs details upload page:

Upcoming song details upload:

Request view:

User portal:
Login Page:

Registration page:

Home page:

Songs Category Page:

Play & Download page:

Request page:

Coding:
a. User:
index.php:
<html>
<head>
<title> SongsIndia >> Login Panel </title>
<link rel="shortcut icon" href="ico.png">
<link rel="stylesheet" type="text/css" href="style/login.css">
</head>
<body bgcolor=" #f7f1ef ">
<?php
include "design/header.php";
?>
<div style="padding:40px;margin-top:100px;height:100%;">
<br><center><img src="images/login.png"></center>
<br>
<form name="frmLogin" action="user_login.php" method="post">
<div class="div">
<div class="login">
<input type="text" placeholder="Username" id="txtUsername"
name="txtUsername" required>
<input type="password" placeholder="Password" id="txtPassw"
name="txtPassw" required>
<a href="" class="forgot">forgot password?</a>
<input type="submit" value="Sign In"><br>
<a href="registration.php" class="forgot">Not registered yet? Click here!</a>
</div>
<div class="shadow"></div>
</div>
</form>
<br><br><br><br><br><br><br><br><br>
<?php include "design/footer.php";?>
</div>
</body>
</html>

user_login.php:
<?php
$usrname=$_POST["txtUsername"];
$passw=$_POST["txtPassw"];
$servername="localhost";
$username="root";
$password="";
$dbname="songs_india";
// Create Connection
$conn = new mysqli($servername, $username, $password, $dbname);
if($usrname!='' && $passw!='')
{
$sql=("SELECT * FROM user WHERE uID='$usrname' and pass='$passw'");
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
header("location:home.php");
}
else
{
echo"Username and Password Wrong";
}
}
else
{
echo"Enter Username and Password";
}
?>

home.php:
<html>
<head>
<title> SongsIndia >> Download Indian Songs </title>
<link rel="shortcut icon" href="/images/favicon.ico" type="image/ico">
</head>
<body bgcolor=" #f7f1ef ">
<?php
include "design/header.php";
include "design/menu.php";
?>
<div style="padding:40px;margin-top:100px;height:100%;">
<?php
include "body.php";
include "design/footer.php";
?> </div>
</body>
</html>

body.php:
<html>
<head>
</head>
<body bgcolor=" #f7f1ef ">
<center> <?php include "design/container.php";
echo"</center>"; include "design/upcoming.php"; ?>
</body>
</html>

echo"<br>";

include

"design/search.php";

hindi.php (categories):
<html>
<head>
<title> SongsIndia >> Hindi Songs </title>
<link rel="stylesheet" type="text/css" href="style/table.css">
</head>
<body bgcolor=" #f7f1ef ">
<?php
include "design/header.php";
include "design/menu.php";
?>
<div style="padding:40px;margin-top:100px;height:100%;">
<form name="frmBttnSrc" action="" method="post">
<?php include "design/index_button.php"; ?>
</form>
<br><br><br>
<div class="container">
<div class="floatLeft">
<?php
echo '<table class="table-fill">';
echo '<thead><tr> <th class="text-center">Songs List</th> </tr></thead>';
$servername="localhost";
$username="root";
$password="";
$dbname="songs_india";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error)
{
die("Connection failed: " . $conn->connect_error);
}
$sql=("SELECT songs_name FROM songs WHERE lang='Hindi'");
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
// output data of each row
while($row = $result->fetch_assoc())
{
echo '<tbody class="table-hover"> <tr> <td class="text-left"> <img
src="images/ico.png"/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'; ?> <a style="color:black; text-decoration:none;"
href="play.php?id=<?php echo $row["songs_name"]; ?>"> <?php echo $row["songs_name"]; echo"</td> </tr>";
}
}
echo "</tbody></table>";
?>
</div> </div><br><br>
<?php include "design/footer.php"; ?> </div>
</body>
</html>

play.php:
<html>
<head>
<title> Play </title>
</head>
<body bgColor=" #34495e ">
<center><br><br><br><br><br><br><br><br>
<?php
$name = $_GET["id"];
mysql_connect("localhost", "root", "") OR DIE (mysql_error());
mysql_select_db ("songs_india") OR DIE ("Unable to select db".mysql_error());
$msg="";
$sql="SELECT songs FROM songs WHERE songs_name='$name'";
if(mysql_query($sql))
{
$res=mysql_query($sql);
while($row=mysql_fetch_array($res))
{
$sng = $row["songs"];
echo "<h2><center>" .$name ."</center></h2><br><br>";
echo '<audio controls autoplay="autoplay">';
echo '<source src="data:audio/mp3;base64,' .base64_encode($row['songs']).'">';
echo '</audio>';
}
}
else
{
$msg.="Query failed";
}
echo $msg;
?>
<br><br><br><br>
<a href="download.php?id=<?php echo $name;?>"><img src="images/download.png" height="15%"
width="25%"/></a>
</center>
</body>
</html>

upcoming.php:
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/upcoming.css">
<link rel="stylesheet" type="text/css" href="style/up_table.css">
</head>
<body>
<div class="container">
<div class="floatLeft">
<table class="table-fill">
<thead><tr>
<th
class="text-center"><img
src="images/comingsoon.png"
height="60px" width="250px"/></th> </tr></thead>
<tbody class="table-hover"> <tr> <td class="text-left">
<div class="upcoming-pic">
<div id="upcoming"><marquee>
<?php
mysql_connect("localhost", "root", "") OR DIE (mysql_error());
mysql_select_db ("songs_india") OR DIE ("Unable to select
db".mysql_error());
$msg="";
$sql="select photo from upcoming";
if(mysql_query($sql))
{
$res=mysql_query($sql);
while($row=mysql_fetch_array($res))
{
$msg.= '<img src= data:image/jpg;
base64,'.base64_encode($row['photo']). 'style="width:160px;height:130px;" /> &nbsp;&nbsp;';

}
}
else
{
$msg.="Query failed";
}
echo $msg;
?></marquee>
</div>
</div>
</td></tr></table>
</div>
<div class="floatLeft">
<table class="table-fill">
<thead><tr> <th class="text-center"><font ><font face="Monotype Corsiva"
size="3" color=" #00FFFF">"If music be the food of love, play on, Give me excess of it; that surfeiting,The
appetite may sicken, and so die."<p> &nbsp;&nbsp;&nbsp; -Shakespeare</font></th> </tr></thead>
</table>
</div></div>
</body>
</html>

request.php:
<html>
<head>
<title> SongsIndia >> Request </title>
<link rel="shortcut icon" href="ico.png">
<link rel="stylesheet" type="text/css" href="style/form.css">
</head>
<body bgcolor=" #f7f1ef ">
<?php
include "design/header.php";
include "design/menu.php";
?>
<div style="padding:40px;margin-top:100px;height:100%;">
<br><center><img src="images/request.png"></center>
<form name="userReq" action="request2.php" method="post">
<div class="login">
<input type="text" placeholder="Email" id="txtEmail" name="txtEmail" required>
<input
type="text"
placeholder="Name"
id="txtName"
name="txtName"
required><br><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;<textarea
placeholder="Describe
here..."
name="txtDetails"></textarea>
<center><input type="submit" value="Request"></center>
</div>
</form>
<?php
include "design/footer.php";
?>
</div>
</body>
</html>

request2.php:
<?php
$email=$_POST["txtEmail"];
$name=$_POST["txtName"];
$details=$_POST["txtDetails"];
//include "db/db_conn.php";
$servername="localhost";
$username="root";
$password="";
$dbname="songs_india";
// Create Connection
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error)
{
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO request (email, name, details)
VALUES ('$email', '$name', '$details')";
if ($conn->query($sql) === TRUE)
{
echo "<br><br><br><br><br><br><center> <B>Request Submitted<B> <br><br> <a
style='color:black; text-decoration:none; float:center' href='request.php'>OK</a></center>";
}
else
{
echo "Error: " . $sql . "<br>" . $conn->error;
}
?>

b. Admin:
index.php:
<html>
<head>
<title> Songs India >> Admin Portal </title>
</head>
<body bgColor="#e8f8f5">
<center>
<strong><I><h2> SongsIndia Company </strong>
<BR><BR><BR><BR><BR><BR><BR><BR>
<a style="color:black; text-decoration:none; float:center" href="adminLogin.php">LogIn</a>
&nbsp;&nbsp;&nbsp;or&nbsp;&nbsp;&nbsp;&nbsp;
<a
style="color:black;
text-decoration:none;
float:center"
href="adminReg.php">Registration</a></h2><I>
</center>
</body>
</html>

adminControl.php:
<html>
<head>
<title> Songs India >> Admin Portal </title>
</head>
<body bgColor="#e8f8f5">
<center>
<strong><I><h2> SongsIndia Company <br><br></h2></I></strong>
<BR><BR><h4>
<a style="color:black; text-decoration:none; float:center" href="s_upload.php">Songs Details
Upload</a> &nbsp;&nbsp;&nbsp; & &nbsp;&nbsp;&nbsp;&nbsp;
<a style="color:black; text-decoration:none; float:center" href="upcoming.php">Upcoming Songs
Details</a>&nbsp;&nbsp;&nbsp; & &nbsp;&nbsp;&nbsp;&nbsp;
<a
style="color:black;
text-decoration:none;
float:center"
href="request.php">Request
View</a></h4>
</center>
</body>
</html>

s_upload.php (songs details upload):


<html>
<head>
<title> Songs India >> Admin Portal </title>
</head>
<body bgColor="#e8f8f5">
<center>
<strong><I><h2> SongsIndia Company <br><br> Songs & Songs Details Upload
</h2></I></strong>
<BR><BR>
<form name="frmAdmin" action="upload.php" method="POST" enctype="multipart/form-data">
<B>Name::</B> <input type="text" name="txtName" required> &nbsp;&nbsp;
<B>Movie::</B> <input type="text" name="txtMovie" required> &nbsp;&nbsp;
<B>Artist::</B> <input type="text" name="txtArtist" required>
<B>Language::</B> <input type="text" name="txtLanguage" required> <br><br>
<B>Year::</B> <input type="text" name="txtYear" required> &nbsp;&nbsp;
<B>Lyrics::</B> <input type="text" name="txtLyrics" required> &nbsp;&nbsp;
<B>Composer::</B>
<input
type="text"
name="txtComposer"
required>
&nbsp;&nbsp;<br><br>
<B>Select Image File::</B> <input type="file" name="image" accept="image/JPG"
required><br><br>
<B>Select Songs File::</B> <input type="file" name="song" accept="song/mp3"
required><br><br><br><br>
<input type="submit" name="btn" value="UPLOAD"/><br><br>
<a
style="color:black;
text-decoration:none;
float:center"
href="adminControl.php">Back</a></h2>
</form>
</center>
</body>
</html>

upload.php:
<?php
mysql_connect("localhost", "root", "") OR DIE (mysql_error());
mysql_select_db ("songs_india") OR DIE ("Unable to select db".mysql_error());

//to upload
if(isset($_POST['btn']))
{
if(isset($_FILES['image']) && ($_FILES['song']))
{
$name=$_POST['txtName'];
$movie=$_POST['txtMovie'];
$artist=$_POST['txtArtist'];
$language=$_POST['txtLanguage'];
$year=$_POST['txtYear'];
$lyrics=$_POST['txtLyrics'];
$composer=$_POST['txtComposer'];
$fp=addslashes(file_get_contents($_FILES['image']['tmp_name'])); //store the image to
fp
$fp1=addslashes(file_get_contents($_FILES['song']['tmp_name'])); //store the song to
fp1
$file_size = $_FILES['song']['size']/1024;
}
$sql = "INSERT INTO songs(songs_name, movie_name, artist_name, lang, year_of_movie,
lyrics_dtls, composer_name, size_dtls, photo, songs)
VALUES('{$name}','{$movie}','{$artist}','{$language}',{$year},'{$lyrics}','{$composer}','{$file_size}','{$fp}','{$
fp1}');";
mysql_query($sql) or die("Error in Query insert: " . mysql_error());
header("location:s_upload.php");
}
else
{
echo "ERROR";
}
?>

request.php (to view request):


<html>
<head>
<title> Request View </title>
</head>
<body bgColor="#e8f8f5"> <center>
<?php
$servername="localhost";
$username="root";
$password="";
$dbname="songs_india";
// Create Connection
$conn = new mysqli($servername, $username, $password, $dbname);
echo "<br><br> <b><i><h2> Request View </h2></b> </i> <br><br>";
echo "<table > <tr><th>Email</th> <th>Name</th> <th>Request</th></tr>";
$sql=("SELECT * FROM request");
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
echo "<tr><td>"; echo $row["email"]; echo "</td>"; echo "<td>"; echo
$row["name"]; echo "</td>"; echo "<td>"; echo $row["details"]; echo "</td></tr>";
}
}
else
{
echo"..";
}
echo "<br><br> <a style='color:black;
href='adminControl.php'>Back</a><br><br>";
?>
</center> </body>
</html>

text-decoration:none;

float:center'

Bibliography:
Tutorial point
W3School
PHP.NET
Stack overflow
HTML Black Book

PHP Complete Reference

www.tutorialpoint.com
www.w3schools.com
www.php.net
www.stackoverflow.com
Steven Holzner
Steven Holzner

You might also like