(CS2102) Group 4 Project Report

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 22

CS2102 Project

Report
Social Network - yourspace
yourspace is a social networking site that enables users to create, find and join
groups of their own interest.

CS2102 Project Report

Contents
1. Introduction ..........................................................................................................................................................2
1.1 Design..............................................................................................................................................................2
1.1.1 Design Specifications .............................................................................................................................2
2. Database Design ..................................................................................................................................................3
2.1 Entity-Relationship Diagram .......................................................................................................................3
2.2 Entities .............................................................................................................................................................4
2.3 Relationships ..................................................................................................................................................4
2.4 Database Schema (DDL code) ......................................................................................................................5
2.5 Schema Functions ..........................................................................................................................................6
3. Web page design ..................................................................................................................................................7
3.1 Main page .......................................................................................................................................................7
3.1.1 Login .........................................................................................................................................................7
3.1.2 Side bar (Interest group category index) .............................................................................................8
3.2 Sign-up page...................................................................................................................................................8
3.3 Profile page .....................................................................................................................................................8
3.3.1 Editing personal Profile .......................................................................................................................10
3.3.2 Joining an Interest Group ....................................................................................................................10
3.3.3 Leaving an Interest Group ..................................................................................................................12
3.3.5 Deleting an Interest Group(We nvr implement this part) ............ Error! Bookmark not defined.
3.4 Interest Group page.....................................................................................................................................13
3.4.1 Posting on the interest group wall .....................................................................................................13
3.4.2 Deleting posts ........................................................................................................................................16
3.4.3 Search posts ...........................................................................................................................................16
3.5 Page pagination for yourspace ..................................................................................................................17

CS2102 Project Report

1. Introduction
yourspace is a social networking site that enables users
to create, find and join groups of their own interest.
Within the interest groups, members can discuss and
network with one another through posts. The built-in
catalogue enables searching of groups and users.

1.1.1 Design
Specifications

Database Server:
MySQL 5.5.16 (RDBMS)

1.1 Design
Web Server:

The main concept behind the design of yourspace is to


keep the web interface simple to navigate, fulfil user
requirements of a social networking site (create and edit
profile/groups, search for users/group, and post text on
the group page) and secure to prevent information
leaks.
The design of the system would require three main
components namely the database design, database
server and webpage. The database design includes the
database schema and ER-diagram which will dictate
the structure of the database. The database server
implemented is MySql which is a relation database
management system (RDBMS) and the webpage is
hosted on Apache locally. The webpage is designed
using HTML, CSS, JavaScript and PHP.

Apache 2.2.21

Web Server language:


HTML
CSS
JavaScript
PHP
Web Server Package
Installer:
XAMPP 1.7.7

CS2102 Project Report

2. Database Design
2.1 Entity-Relationship Diagram

CS2102 Project Report

2.2 Entities
users
Attribute
name
email (Primary Key)
password

Domain
Varchar(128)
Varchar(128)
Varchar(64)

interest_group
Attribute
groupname
description
groupID (Primary Key)
category

Domain
varchar(128)
varchar(255)
Int(5)
varchar(10)

post
Attribute
member_email_address (Primary Key)
post_content
groupID (Primary Key)
postDateTime
postdate
postID(Primary Key)

Domain
varchar(128)
varchar(255)
Int(5)
timestamp
time
Int(6)

2.3 Relationships
manages
Attribute
managerID
groupID

Domain
varchar(128)
Int(5)

members_list
Attribute
Member_email_address
groupID

Domain
varchar(128)
Int(5)

Note: As post is a weak entity, the one-to-one relation it has with wall is represented by the
post schema.

CS2102 Project Report

2.4 Database Schema (DDL code)


DROP TABLE IF EXISTS post;
DROP TABLE IF EXISTS members_List;
DROP TABLE IF EXISTS manages;
DROP TABLE IF EXISTS interest_group;
DROP TABLE IF EXISTS users;

CREATE TABLE users(


password VARCHAR(128) NOT NULL,
email VARCHAR(64) PRIMARY KEY,
name VARCHAR(128) NOT NULL,
photoURL VARCHAR(255)
);

CREATE TABLE interest_group(


groupname VARCHAR(128) NOT NULL UNIQUE,
description VARCHAR(255) NOT NULL,
groupID INT(5) PRIMARY KEY NOT NULL AUTO_INCREMENT,
category VARCHAR(10) CHECK (category = 'Places' OR category = 'Business' OR category =
'Product' OR category = 'People' or category = 'Community')
);

CREATE TABLE manages(


managerID VARCHAR(64),
g_ID INT(5),
FOREIGN KEY (managerID) REFERENCES users (email),

CS2102 Project Report

FOREIGN KEY (g_ID) REFERENCES interest_group (groupID)


);

CREATE TABLE members_List(


member_email_address VARCHAR(64),
groupID INT(5),
FOREIGN KEY (member_email_address) REFERENCES users (email),
FOREIGN KEY (groupID) REFERENCES interest_group (groupID)
);

CREATE TABLE post(


member_email_address VARCHAR(64) REFERENCES users (email),
groupID INT(5) REFERENCES interest_group (groupID),
post_content VARCHAR(1024),
postID INT(6) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (postID, groupID,member_email_address),
postDateTime timestamp NULL DEFAULT NULL,
postdate time
);

2.5 Schema Functions


The Users entity primarily deals with user information such as name, password and email. The
interest_group entity stores information regarding the interest group when it is created e.g.
name, id and description. The post entity stores information about each individuals written
post on the wall of the interest group. It tracks the date and time and is identified by a
combination of email, group id and post id. The manages relationship models the relation
between the creator (manager) of the interest group and the members_list links members and
their related interest groups.

CS2102 Project Report

3. Web page design


3.1 Main page
3.1.1 Login

The main page of the website is also the login page which is shown in the screenshot below. Users who
have not signed up for an account can click on the sign up button at the left column which will direct
him to the sign up page.

The SQL query below is to retrieve all the users particulars so as to check if the password he has
entered for login is similar to the one he has registered with.

If the Email is not a registered one or the password has been entered incorrectly, the user will be
directed back to the login page.

CS2102 Project Report

3.1.2 Side bar (Interest group category index)

This is the side panel that our members can use to navigate around the site.

3.2 Sign-up page


The screenshot below shows the sign up page.

We require that all the text fields are being filled and also, the password and retype password are being
checked if they are equal.
The SQL query below inserts the newly registered user into the database. Since the email address is the
primary key of the users table, we ensured that 2 of the same email address cannot be registered.

CS2102 Project Report

3.3 Profile page

CS2102 Project Report

3.3.1 Editing personal Profile

Members can update name and password of the account they registered in the signup page.

This is the SQL for updating the records.

10

CS2102 Project Report

We used JavaScript as a means to ensure that they have entered the same password twice correctly.

3.3.2 Joining an Interest Group

Members can start joining groups. They select the groups available to them, submit the group id and
click on Join. Members cannot rejoin groups that they are already in. The listings of groups available
are done using Nested Query.

11

CS2102 Project Report

This is the Nested Query we used to display the groups available.

3.3.3 Leaving an Interest Group


Members are able to leave the group that they have joined. They can do this by clicking on the Leave
button next to the group name they are currently in.

This is the SQL code for retrieving the groups that the members have joined.

12

CS2102 Project Report

This is the SQL code for deleting members who have joined.

3.3.4 Creating an Interest Group

3.4 Interest Group page


3.4.1 Posting on the interest group wall

Members can able to participate in the groups they have joined. They can key in their opinions in the
text box and click on the Add button to submit their post.

13

CS2102 Project Report

This is the SQL code for adding posts into the discussion forum.

14

CS2102 Project Report

15

CS2102 Project Report

3.4.2 Deleting posts


Upon clicking on the delete link from the Group Discussion Posts page, the member can delete the
posts that they have submitted previously.

3.4.3 Search posts

Upon clicking on the Search link from the Group Discussion Posts page, the member enter the
search conditions they want and click the submit button. Any posts resembling their search terms will
be displayed.

This is the SQL for locating their search results.

16

CS2102 Project Report

The Search Results page will display posts similar to what they have searched for.

3.5 Page Pagination for yourspace


Our website has page pagination. We decided to display records of 6 a single page and the user can
click on the navigation links provided to scroll to the First, Previous, Next or Last page.

17

CS2102 Project Report

This is the code for our page pagination.

18

CS2102 Project Report

Code for generating url links so the users can navigate.

19

CS2102 Project Report

What it looks like for the users who are navigating pages.

20

CS2102 Project Report

21

You might also like