Uploaded by Benjamin Nguyen

Design And Implementation Of A Social Me

advertisement
National school For Computer Science
Internet of Things and Mobile Service Masters
Design And Implementation Of A Social
Media Based Web Appliation
Author:
Heiballa Abdellahi
Supervisor:
Prof. Abdellatif Kobbane
Unifying project for
MSc IOSM
January 7, 2020
Abstract
The internet has been a platform for individuals, groups of people and companies to interact with
one another through the social media. The social media has truly aided interaction and even other
business services through social networks, forums, blogs, etc.
Forums are now been used as tools/platforms to create discussions, connect to people (mostly of
similar interests) and as sources of relevant information with applications like Facebook, LinkedIn
and MySpace dominating the social media landscape.
The aim of this work is to design and implement a full scale social networking website like Facebook
or Twitter, including features such as news feeds, profiles, friend system, chat system, trending
posts and more.
Using proficiently PHP, Bootstrap toolkit and MySQL databases to registering it’s own domain
name and putting it online.
Finally Powering it with Artificial Intelligence to analyze posts at scale, understand what’s being
said in them, then extracting insights based on that information.
The application test results are presented at the end of this project.
Acknowledgements
Firstly, I’ll like to acknowledge My father,mother the family and everyone close I love you and
thank you.
I gratefully acknowledge the close supervision and thorough guidance of Prof. Abdellatif Kobbane,
who was a great teacher all through the time of this course and for his assistance throughout this
project.
I would like to acknowledge the motivation and creative ideas from other students in my class.
Finally, I would like to thank all the friends who shared me the good wishes and feelings, none of
this would have been possible without their support.
Contents
1 Introduction
1.1 BACKGROUND INFORMATION . . . . . . .
1.2 STATEMENT OF THE PROBLEM . . . . . .
1.3 AIM AND OBJECTIVES OF THE PROJECT
1.4 PROJECT ORGANIZATION . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
6
6
7
7
2 Concepts And Technologies
2.1 INTRODUCTION . . . . . . . . . . . . . . . . .
2.1.1 Social Media Concept . . . . . . . . . . .
2.1.2 History of Social Media . . . . . . . . . .
2.1.3 What is a Social Networking Service? . .
2.1.4 Features of a Social Network Website . .
2.1.5 Applications of Social Media . . . . . . .
2.2 REVIEW OF EXISTING WEB APPLICATION
2.2.1 Facebook . . . . . . . . . . . . . . . . . .
2.2.2 Twitter . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
8
8
8
9
10
10
10
10
11
3 Requirements Analysis And Design
3.1 INTRODUCTION . . . . . . . . . . . . . . . .
3.1.1 Proposed System . . . . . . . . . . . . .
3.2 SYSTEM REQUIREMENTS AND ANALYSIS
3.2.1 Application Architecture . . . . . . . . .
3.2.2 Application Analysis . . . . . . . . . . .
3.2.3 Application Requirements . . . . . . . .
3.3 APPLICATION DESIGN . . . . . . . . . . . .
3.3.1 Object Oriented Analysis and Design .
3.3.2 Unified Modeling Language (UML) . . .
3.3.3 Use Case Diagram . . . . . . . . . . . .
3.3.4 Sequence Diagram . . . . . . . . . . . .
3.3.5 Activity Diagram . . . . . . . . . . . . .
3.4 THE USER INTERFACE DESIGNS . . . . . .
3.4.1 FaceRIM Home Page . . . . . . . . . . .
3.4.2 The User Registration Interface . . . . .
3.4.3 The Login Page Interface . . . . . . . .
3.5 DATABASE DESIGN . . . . . . . . . . . . . .
3.5.1 Description of Tables . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
13
13
13
13
13
14
14
15
15
15
16
16
17
17
19
19
19
20
20
4 System Implementation
4.1 INTRODUCTION . . . . . . . . . . .
4.1.1 Tools Used for Implementation
4.2 THE DIFFERENT INTERFACES . .
4.2.1 the home page . . . . . . . . .
4.2.2 the profile page . . . . . . . . .
4.2.3 notification . . . . . . . . . . .
4.2.4 Messages . . . . . . . . . . . .
4.2.5 Dashboard . . . . . . . . . . .
4.3 Web hosting . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
22
22
22
23
23
23
24
24
24
25
.
.
.
.
.
.
.
.
.
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5 Conclusion
5.1 SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 RECOMMENDATIONS AND FURTHER WORKS . . . . . . . . . . . . . . . . .
5.3 CONCLUSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
27
27
27
Bibliography
28
3
List of Figures
2.1
2.2
Facebook desktop layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Twitter desktop layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
12
3.1
3.2
3.3
3.4
3.5
3.6
3.7
Web Application Architecture . . . . . . . . . . .
The Use-Case diagram for the Web Application.
The Sequence Diagram for the Web Application.
The Activity Diagram for the Web Application. .
FaceRIM Home Page. . . . . . . . . . . . . . . .
The User Registration Interface. . . . . . . . . .
The Login Page Interface. . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
14
16
17
18
19
19
20
4.1
4.2
4.3
4.4
4.5
4.6
The home page. .
The profile page.
Notification. . . .
Messages. . . . .
Dashboard. . . .
000webhost. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
23
24
24
25
25
26
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
List of Tables
3.1
Database Schema for FaceRIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
21
Chapter 1
Introduction
1.1
BACKGROUND INFORMATION
Communication is a basic human need and for that reason, man has always found a means of
meeting this need. The media, which is an umbrella term for various means of communication,
has become an integral part of human life around the world. The earliest forms of personal media,
speech and gestures, had the benefit of being easy to use and did not necessarily need complex
technology.
Through the social media, the internet community has drastically increased over the years. The
social media has become a significant part of today’s modern civilization. It is a defining trait of
how integrated social interactions have become. The impact of the social media have been seen in
basically five different contexts; news, interactions, political landscapes, learning and marketing.
With over 80 percent of teen Internet users frequenting social media sites, it’s no wonder the real
world social lives are seeing some changes. Social media is definitely changing the way people
communicate, but in many ways it’s for the better as we expand our social circles and explore new
horizons through our online connections.
Every age it has passed through has been based on beliefs and new technologies, responding to the
needs of individuals anxious to adjust to new forms of socialization. A time of great change is a
period in which society looks for meaning. Information is already a tool, the principal tool,which
people use to perceive and understand their environment.
Social media sites, have various unique features like threads; where posts are made, discussion,
etc. Social networks, provide a unique type of social environment that enables people to share and
access information freely. Users can either share their posts or leave comments in other existing
posts.
1.2
STATEMENT OF THE PROBLEM
Social networking is significantly impacting to individual’s life by ensuring efficient way to stay
in touch with people and those who live far away. The large percentage of people interacts and
carries out the transaction utilizing networking.
Improved technology has made the world a domestic world where individuals connect freely from
diverse places using increased social networks.Family members living abroad can be kept abreast
of the latest happenings in your world as quickly as those living next door. Friends you haven’t
seen since school, and who have since moved away, are able to keep in touch. Social networking
sites mean someone’s physical location has become a lot less important.
YouTube, Facebook,Twitter and much more have facilitated this.Our time is being stretched thinner and thinner by work and family commitments. But social networking sites offer provide easier
and more accessible opportunities to interact with others in real time It lets people share fun,
interesting and informative content. It gives individuals a way to engage with one another.
6
1.3
AIM AND OBJECTIVES OF THE PROJECT
To develop a fast, secure online social network that connect people. Fully featured with the ability
to like,comment, share, save post, report, verify system , messages, notifications and a real time
full messaging system showing user typing status, seen message, including Send,comment and post
with emoji’s. As allowing the admin to let’s people know that an account of public interest is
authentic with a verify user system.[1] Supporting The script with multi languages with (English
- Arabic) as Main languages, with the possibility to add any other language desired. Powering
it with a Powerful dashboard,Where admin can edit, remove user account, verify users, or view
and replay to users reports from Support box and also admin can see statistics about whole script
database from general tab.
1.4
PROJECT ORGANIZATION
Chapter Two introduces the web application’s concepts including more precise definitions, evolution, types, and categorizations. This chapter also describes in details the general architecture,
global features, services, technologies employed. Chapter three explains the Design of a layered
architecture. detailed application design will be presented in this chapter. Chapter Four will be
discussing and showing the system development, deployment and evaluation. Chapter Five will
summarize, introduces the conclusions obtained from this work and give recommendation for future
work.
7
Chapter 2
Concepts And Technologies
2.1
INTRODUCTION
The previous chapter has described a basic understanding about social media and their use in
connections. The main objective of this chapter is to provide a full understanding about social
media concepts in more details including good definitions from different viewpoints, social media
generations and evolution, types and categorizations, the global features of a social media, the
technologies used for the implementation of social media and the general architecture of an social
media application.
2.1.1
Social Media Concept
Social media is a form of electronic communication which facilitates interaction based on certain
interests and characteristics. Social media are media for social interaction, using highly accessible
and scalable publishing techniques. Social media use web-based technologies to transform and
broadcast media monologues into social dialogues (Idakwo, 2011). A social media network platform is one that provides a medium for interaction by groups of people making it easy to share
information (such as lecture materials, pictures and ideas) across a circle of people or groups.
Statistics has shown that the use of social network such as Facebook, Twitter and LinkedIn is on
the increase most especially among young individuals, the crop of which are students of tertiary
institutions
2.1.2
History of Social Media
According to Idakwo (2011), The Social media started as a concept many years ago but has evolved
into sophisticated technology. The concept of social media can be dated back to the use of the
analog telephone for social interaction. The most recognizable use of social media was through
innovative application, an online dialogue framework, created by Ward Christensen, a former IBM
employee and Randy Suess. Initially, they envisioned a place where they could immediately contact their co-employees for announcements, i.e. meetings, reports, and other affairs, rather than
making multiple phone calls, distributing memos, and the like. They were looking into creating a
computerized bulletin board, which is why they named the program CBBS (Computerized Bulletin
Board System). Soon enough, more and more employees contributed their ideas and comments in
the said online community. That event was a momentous episode in the history of computer and
internet. It was the birth of online social networking.
The CBBS platform was made known to other companies and has been used for specific purposes.
The Bulletin Board System expanded largely and began breaking into the mainstream much sooner
than it was planned to. It was during the rise of the Internet Service Providers in the early 1990s
when social networking sites began to flourish. Along with the availability of internet service to
people, many people rummaged to have themselves acquainted with this new technology. With
the fast response of people to the budding internet community, the bulletin boards which were
usually used by companies have started to expand their roles by offering their service to more
people around the globe. More and more people joined the online community with the innate
goal of creating an identity in this space and at the same time exploring the vast place that is
8
the internet. Because of this, many internet-savvy companies gave what people wanted- getting
to know more people and sharing common interests and points of view; that is through websites
where they can socialize, websites which are now referred to as social networking sites.
Social media attained a great measure of success with the launch of the then very popular friendster.com. Creator of Friendster, Jonathan Abrams concocted a perfect mix of popular features
from earlier social networking predecessors. Friendster became an instant success and gathered
about three million members who signed up in its early months of launch.
As years passed, Friendster reached an overwhelming hundred million users from all over the globe.
With much demand from its users, Friendster unfortunately got out of hand and suffered from too
many glitches in the server. Today, Friendster has been announced as a newly owned entity of
a Malaysian Company, and outshone by present social networking sites but still remains to be
patronized most especially in Asia.
The conception of myspace.com opened the internet users to vast opportunities of selfexpression
which include wide control over a user’s profile content. Practically different people from all walks
of life have dedicated pages in MySpace. In MySpace, users experienced the best of creating unique
identities to show to the online world.
MySpace remained as the uncontested favorite among all the social networking sites until 2005
when it met its future competitor in the market. Soon enough, MySpace created additional features like mobile applications in order to keep up with the latest trends in the online community;
and at the same time be at par with the growing popularity of contemporary social networking
sites, more specifically the next thing in line.
Facebook started as a local social network made for the students of Harvard. It was developed
by a sophomore, Mark Zuckerberg. Facebook was actually made by hacking Harvard’s database
containing identification images of students. The initial idea was actually to compare the faces
of students with images of animals, for entertainment purposes. However, due to the potentially
damaging contents of the site, the creators decided to put it down before it caught the attention
of school authorities.
The application was shut down, but the idea of creating an online community of students came to
existence. The platform was then improved and sooner than they expected, Facebook was released
in campuses other than Harvard. Thereafter, high schools were already starting to get attracted
to the idea of having online communities, thus opening the website to the younger population.
In 2006, facebook.com ultimately offered the opportunity to the rest of the world. As 2007 approached, the registrants reached an overwhelming digit-roughly a million dozen. Facebook has
grown to become the biggest and most popular social networking site today with a population of
above 500 million active users.
Other social networking sites continued to appear in the scene. Blogging sites like Bebo, Multiply
and many others came into view. Microblogging partnered with social networking became popular
with the launch of Twitter. On Twitter, online users can post their Tweets, basically a 140 character phrase or line about what they have in mind.
With the help of API (Application Programming Interface), microblogging sites like Twitter and
Tumblr and other dedicated sites like Flickr, Photobucket and many others were able to connect
with popular social networking sites, making an unending link of information in the World Wide
Web.
2.1.3
What is a Social Networking Service?
A social networking service (also social networking site or social media) is an online platform
which people use to build social networks or social relationship with other people who share similar
personal or career interests, activities, backgrounds or real-life connections.
Social networking sites allow users to share ideas, digital photos and videos, posts, and to inform
others about online or real-world activities and events with people in their network. While inperson social networking – such as gathering in a village market to talk about events – has existed
since the earliest development of towns, the web enables people to connect with others who live in
different locations, ranging from across a city to across the world. Depending on the social media
platform, members may be able to contact any other member. In other cases, members can contact
anyone they have a connection to, and subsequently anyone that contact has a connection to, and
so on. The success of social networking services can be seen in their dominance in society today,
with Facebook having a massive 2.13 billion active monthly users and an average of 1.4 billion
9
daily active users in 2017.
LinkedIn, a career-oriented social-networking service, generally requires that a member personally
know another member in real life before they contact them online. Some services require members
to have a preexisting connection to contact other members[2].
2.1.4
Features of a Social Network Website
The following is a list of software and technology features that can be found on the website and
will be available to users of the social media site.
News Feed: The news feed is the primary system through which users are exposed to content
posted on the network. Posts to keep them connected to their friends and family.
Friends: "Following" someone on the platform is the act of sending another user a "follow
request". The two people are connected once the receiving party accepts the follow request.
In addition to accepting the request, the user has the option of declining it. Deleting a follow
request removes the request, but does allow the sender to resend it in the future.
Likes: The like button enables users to easily interact with status updates, photos, links shared
by friends,Once clicked by a user, the designated content appears in the notifications of that
content’s user, and the button also displays the number of other users who have liked the
content,
Comments: Enabling users to say their thoughts about the shared content.
Messages and inbox: Messages lets users send messages to each other. Complementing regular
conversations.
Notifications: Notifications tell the user about a like or a comment on a picture of the user and
follow requests.
Notes: Offering users the ability to write notes.
Photos: allows users to upload photos as profile photo, wall or attach them to posts.
Verified accounts: include a blue check mark badge to highlight the account’s Verified status
assigned to celebrities, public figures, sports teams and media organizations.
2.1.5
Applications of Social Media
From a business perspective, the niche of social media is one of the most promising markets. Of
course, this segment is densely occupied with dominant players, but the rapid development of
technology is continually opening up new opportunities for the realization of new ideas.
When creating social media application, we should keep in mind that most of the time and efford
are related to the backend (what happens in the shadows and makes the app/web project work).
Any social media makes sense for the user only if there are his friends or interesting people.
Therefore, social media app developers should work through the perfect algorithm of friends graph
and the system that lets to invite friends with one click.
2.2
REVIEW OF EXISTING WEB APPLICATION
Several platforms/applications have already been established as online social networks. This section
will carefully review each of these existing applications in line with this project.
2.2.1
Facebook
Facebook is a popular free social networking website that allows registered users to create profiles,
upload photos and video, send messages and keep in touch with friends, family and colleagues.
The site, which is available in 37 different languages, includes public features such as:
• Marketplace - allows members to post, read and respond to classified ads.
10
• Groups - allows members who have common interests to find each other and interact.
• Events - allows members to publicize an event, invite guests and track who plans to attend.
• Pages - allows members to create and promote a public page built around a specific topic.
• Presence technology - allows members to see which contacts are online and chat.
In May 2007, Facebook opened up its developers’ platform to allow third-party developers to
build applications and widgets that, once approved, could be distributed through the Facebook
community. In May 2008, Facebook engineers announced Facebook Connect, a cross-site initiative
that allows users to publish interactions on third-party partner sites in their Facebook news feed.
Figure 2.1: Facebook desktop layouts
2.2.2
Twitter
Twitter is a free social networking micro blogging service that allows registered members to broadcast short posts called tweets. Twitter members can broadcast tweets and follow other users’ tweets
by using multiple platforms and devices. Tweets and replies to tweets can be sent by cell phone
text message, desktop client or by posting at the Twitter.com website.
The default settings for Twitter are public. Unlike Facebook or LinkedIn, where members need to
approve social connections, anyone can follow anyone on public Twitter. To weave tweets into a
conversation thread or connect them to a general topic, members can add hashtags to a keyword
in their post. The hashtag, which acts like a meta tag, is expressed as keyword. Twitter’s web
interface is simple and intuitive with many features that make it much better.
• Image captions - improve accessibility for visually impaired people.
• Trending topics - A word, phrase, or topic that is mentioned at a greater rate than others is
said to be a "trending topic".
• Moments - A feature that allows users to curate tweets from other users into a larger collection.
• Adding and following content - There are numerous tools for adding content, monitoring
content and conversations including Twitter’s own TweetDeck, Salesforce.com, HootSuite,
and Twitterfeed.com.
11
Twitter uses an open-source Web framework called Ruby on Rails. The API is open and
available to application developers.
Figure 2.2: Twitter desktop layouts
12
Chapter 3
Requirements Analysis And Design
3.1
INTRODUCTION
In this chapter, the requirements for the web application were gathered by observing the existing
systems and their operations. This chapter also provides details on the analysis and design of the
proposed web application. It describes the methodology and design that will be used in modeling
the application with the necessary Unified Modeling Language (UML) diagrams that will be used
to analyze the architecture of this system like use case diagrams, activity diagrams and sequence
diagrams.
3.1.1
Proposed System
Lets take for example facebook,it was developed from the ground up using open source software.
The site is written primarily in the PHP programming language and uses a MySQL database infrastructure. To accelerate the site, the Facebook Engineering team developed a program called
HipHop to transform PHP source code into C++ and gain performance benefits.
Facebook has one of the largest MySQL database clusters anywhere, and is the world’s largest
users of memcached, an open source caching system. Memcached was an important enough part
of Facebook’s infrastructure that CEO Mark Zuckerberg gave a tech talk on its usage in 2009.
Facebook has built a framework that uses RPC (remote procedure calls) to tie together infrastructure services written in any language, running on any platform. Services used in Facebook’s
infrastructure include Apache Hadoop, Apache Cassandra, Apache Hive, FlashCache, Scribe, Tornado, Cfengine and Varnish.
The company’s engineers continue building new infrastructure software components, contributing
many of them as open source projects. ....
3.2
3.2.1
SYSTEM REQUIREMENTS AND ANALYSIS
Application Architecture
Every Web application consists of both a front-end and a back-end.
The front-end, also known as the client-side, is everything that the user sees and interacts within
inside their browser. The main purpose of the client-side is to collect data from users. It is written
in variants of HTML, CSS, and JavaScript. Next, we have the back-end, also known as the serverside of the app. It is the part, which is not accessible by users; it stores and manipulates data.
The backend processes HTTP requests which essentially “fetch” the data (text, images, files, etc.)
called for by the user. Unlike the frontend, many languages like PHP, Java, Python, JavaScript,
and others can be used to write the backend of a Web Application.
13
Figure 3.1: Web Application Architecture
3.2.2
Application Analysis
Application Analysis is problem solving technique that entails the decomposition of the studied
Application into its component parts with the view of studying the various functionalities and
how those component parts interact to accomplish the application’s purpose. It also involves the
breakdown of an application and the study of how the various components work together. The
basic process of application analysis involves three steps:
1. Understanding the Existing Applications.
2. Identifying Improvements.
3. Defining Requirements for the new Application .
3.2.3
Application Requirements
Application Requirements are processes that specify what the application must do or what property
or quality the application must have. The requirements that specify what the application must
do are frequently referred to as functional requirements and the requirements that specify what
attribute the application must have are called non-functional requirements.
A. Functional Requirements FaceRIM is conceived in two interfaces for the different users;
user and admin. Each interface has been designed to meet different requirements.
For the users, these are the requirements that have to be met:
(a) Manage their account.
(b) Post/share statue and photos.
(c) send/receive messages.
(d) react/comment on posts.
(e) add notes.
(f) follow users.
(g) give star to users.
For the admins, these are the requirements that have to be met:
(a) all the user requirements.
(b) manage other users.
14
(c) give badges to users.
(d) consult dashboard.
The above functional requirements will be carefully met in the development of this web
application.
B. Non Functional Requirements
(a) Look and Feel Requirements. FaceRIM should be presentable on height and low
resolution devices (mobiles & desktop). FaceRIM should be compatible across browsers.
(b) Usability Requirements. Ergonomic and clear usage.Users will have no problem
learning how to use this web application. Convenience of usage.
(c) Performance Requirements. Reliable storage of information.users will be able to
respond to their notifications as a means of follow-up. Posts will be placed in the home
for quick response by Users. Quick response to user activities by either other users or
administrators.
(d) Operational Requirements. FaceRIM should be able to work with relevant hardware
devices. Not prone to crashing. FaceRIM should be able to handle multiple users.
(e) Security Requirements. Only a users has access to their settings. Sensitive information is hidden from users. Password sensitive. Only registered users can use the system
except same as for the administrator. If anyone responds to any post, the user can
verify their accounts.
(f) Portability Requirements FaceRIM should operate on demand. FaceRIM should
work on the browser of any operating system.
(g) Legal Requirements. Personal information of users should be protected. FaceRIM
should comply with quality assurance standards. The Administrator is fully responsible
for most operations in the system.
3.3
APPLICATION DESIGN
The application design illustrates how the application will fulfill the objectives or requirements
identified during the analysis of the application. In application design, the question ‘How?’ is
always raised. It also illustrates the overall architecture of the application and the setting of
standards, for example, for the design of an artificially intelligent system . This project utilizes the
Objectoriented analysis and design methods which are becoming the most widely used methods
for computer applications design.
3.3.1
Object Oriented Analysis and Design
Object-oriented analysis and design (OOAD) refers to the use of object-oriented modeling (an
approach where an application is modeled in terms of objects which have attributes and perform
operations) in the analysis of applications or in modeling the application requirements and in the
design of object-oriented application fulfilling these requirements.
OOAD is a software engineering approach that models the application as a group of interacting
objects. Each object represents some entity of interest in the application being modeled, and is
characterized by its class, its state (data elements), and its behavior. Various models can be created
to show the static structure, dynamic behavior, and run-time deployment of these collaborating
objects.
3.3.2
Unified Modeling Language (UML)
Unified Modeling Language is a diagrammatic object-oriented modeling language. It uses diagrams
to document an object-based decomposition of applications showing the interaction between these
objects and the dynamics of these objects. UML aims to provide a common vocabulary of objectbased terms and diagramming techniques that is rich enough to model any application development
project from analysis to design. This application is modelled with:
15
3.3.3
Use Case Diagram
Use case diagrams were used to perform requirements analysis in order to understand the core
functionalities and usage scenarios associated with the identified requirements. A Use case diagram
simply shows a look at the system from an outsider (e.g. user) point of view. The system is treated
as a black box and one solely identifies what the system is used for. The components of a use case
diagram include, Actors, Use cases, Associations and the system boundary.
1. Actors: represents the external entities of the system i.e. people or things that interact with
the system that is being modeled.
2. Use Cases: are functional parts of the system. It is what an actor does e.g. a customer
"browses the catalog", "chooses items to buy", and "pays for the items".
3. Associations: are shown between actors and use cases, by drawing a solid line between
them. It links an actor with the use case it interacts with.
4. System Boundary: represents the scope of the system the actor is interacting with.
The use case has two (2) actors and sixteen (16) use cases. The Administrator is the manager
of the system, User are the main users of the system. The following use case diagram illustrate
the system. The Use-case diagram is shown in the next Figure.
Figure 3.2: The Use-Case diagram for the Web Application.
3.3.4
Sequence Diagram
A Sequence diagram provides a graphical representation of interactions between objects over time.
It shows the messages that pass between classes over time for a use case. The objects involved
in the operation are listed from left to right according to when they take part in the message
sequence. A sequence diagram typically shows a user or an actor, and the objects and components
they interact with in the execution of a use case. There are four primary elements of a sequence
diagram:
16
1. Objects: are arranged on the horizontal axis. Time increases downwards. Below each object
there is a vertical dashed line. That is the life-line of the object spanning the period (the
vertical axis represents time) over which the object lives.
2. Lifelines: The life-line of the object spanning the period (the vertical axis represents time)
over which the object lives
3. Messages: Between the life lines (or activity bars) we show arrows representing the messages
which are exchanged between objects. The message itself is shown as a label on the message
arrow.
4. Focus of control:These are vertical rectangular boxes used to connect and send messages
between two objects in a sequence diagram. It is also used to bridge the communication of
different lifelines.
The Sequence Diagram below shows the interaction between the user and the user interface of
the application on the database. The next figure carefully describes this interaction that is the
most functional on the web application.
Figure 3.3: The Sequence Diagram for the Web Application.
3.3.5
Activity Diagram
The activity diagram depicts the workflow of activities within the system. It graphically represents
the flow of performance of various actions by the system entities. The activity diagram for posting
the questions by the guest students is represented in Figure IX below.
3.4
THE USER INTERFACE DESIGNS
A Graphical User Interface (GUI) is a medium through which the system users interact with the
system. It is a medium through which the system users send in their request into the system,
displays the outputs to the users alongside various options available to the user.
17
Figure 3.4: The Activity Diagram for the Web Application.
18
3.4.1
FaceRIM Home Page
FaceRIM home page is the first user interface displays at logon to users. It presents the general
overview of the online forum, showing the various tabs, links, and login section; register, etc.
Figure 3.5: FaceRIM Home Page.
3.4.2
The User Registration Interface
Every user will have to click on the register link on the Home Page to access this page. The user
registration page is shown in the next figure.
Figure 3.6: The User Registration Interface.
3.4.3
The Login Page Interface
On this page, registered users can log-in. It is represented in the Figure below.
19
Figure 3.7: The Login Page Interface.
3.5
DATABASE DESIGN
A database is a mechanism that is used to store and manipulate information, or data. With a
database, users are able to store data in an organized way and once it is stored, it is easy to
retrieve any form of information. This can be implemented using a database management system
(DBMS). A DBMS is a software that allows the storage and access of data to a user. The database
design is geared towards stating the purpose of the database of this system. The Database Design
was conducted to show a modelled view of the system. The database program for FaceRIM is the
MySQL; a relational database design was implemented and tested using a local MySQL (opensource relational database management system).
3.5.1
Description of Tables
A description of tables and their different columns are stated below: Note: PK means the primary
key in the tables on database “FaceRIM”
20
Table Name
sign up
Column
main_id(PK), id, Full_name, Username, Email,
Password, followers, User_photo, user_cover photo,
school, work, country, birthday, verify, website, bio,
admin, gender, login_attempts, language, a_Setup,
online
comments
c_id(PK), c_author id, c_post id, c_content,
c_edited, c_time_edited, c_time
likes
id(PK), liker, post_id
follow
id(PK), uf_one, uf_two
messages
id(PK), m_id, message, m_from, m_to, m_time,
m_seen
mynotepad
main_id(PK),
id,
author_id,
note_content note_time
notifications
id(PK), n_id, from_id, for_id, notifyType_id, notifyType, seen, time
r_star
id(PK), u_id, p_id
supportbox
id(PK), r_id, from_id, for_id, r_type, subject, report, r_time, r_replay, r_replay_time, status
saved
main_id(PK),
saved_time
typing_m
id(PK), t_from, t_to
wpost
post_id(PK), author_id, post_img, post_time,
post_content, p_title, p_likes, p_privacy, shared
id,
post_id,
note_title,
user_saved_id,
Table 3.1: Database Schema for FaceRIM
21
Description
Stores
the
users login
and profile
details
Stores and
maintains
user’s comments
Stores and
maintains
user’s likes
Stores and
maintains
user’s follow
Stores and
maintains
user’s messages
Stores and
maintains
user’s notes
Stores and
maintains
user’s notifications
Stores and
maintains
user’s stars
Stores and
maintains
user’s comments
Stores and
maintains
user’s saved
post
Stores and
maintains
user’s typing
Stores and
maintains
user’s posts
Chapter 4
System Implementation
4.1
INTRODUCTION
In this chapter, I discuss the implementation of FaceRIM. Implementation is the realization of
an application by following through several execution phases of planning, modelling, design and
analysis. After a thorough process of system analysis, system design and an exhaustive requirement
specification, the system was now implemented using appropriate tools. This chapter provides
an overview on the choice of tools and programming languages, and the different modules and
interfaces that were implemented[3].
4.1.1
Tools Used for Implementation
PHP:It is a server-side scripting language, and is a powerful
tool for making dynamic and interactive Web pages quickly.
It was the best choice of scripting languages to use for a very
flexible project as this. PHP was used to code the functionality of the system by leveraging the webstorm a powerful IDE.
PHP version 7.4.1 was the version of use[4].
Bootstrap:Hypertext Markup Language and Cascading
Style Sheet are tools used in development and creation of web
pages that run mostly on web browsers. They were used with
Bootstrap a free and open-source CSS framework to develop
responsive frontend design and user interface of the system.
MySQL:The MySQL database management system
served as the database for building and testing the system.
It also served as the platform where all data used in the application could be manipulated[4].
phpMyAdmin:This tool was used to manage the MySQL
databases over the web and locally on your computer. It provided an easy interface to carry out
SQL operations on the database. I worked with phpMyadmin version 3.4.5[5].
22
WAMP:WampServer is an Open-source web server solution comprises of basic components such as Apache
HTTP, MYSQL, PHP or Perl languages. It was used
in this project as the local server in developing the system.
4.2
THE DIFFERENT INTERFACES
These interfaces are to show the different interactions users actively perform on FaceRIM. The
figures below will give a pictorial view of the functionality of the web application.
4.2.1
the home page
once logged in the users are directed to this page, where the users can posts their posts, pictures
that might pick. And react and comment on others posts.
Figure 4.1: The home page.
4.2.2
the profile page
On this page, users have the opportunity to view ONLY their posts. In the figure Heiballa Abdellahi
who is logged in can see and modify all his in formations add or modify profile picture and cover.
23
Figure 4.2: The profile page.
4.2.3
notification
Notifications are updates about FaceRIM activity like new follows, likes and comments.
Figure 4.3: Notification.
4.2.4
Messages
Allows users to send a message to their contacts or they can search for the person you they to
reach.
4.2.5
Dashboard
Only an administrator can access the dashboard were he can view and manage all the users.
24
Figure 4.4: Messages.
Figure 4.5: Dashboard.
4.3
Web hosting
Web hosting is a service that allows organizations and individuals to post a website or web page
onto the Internet. Websites are hosted, or stored, on special computers called servers. When
Internet users want to view the website, all they need to do is type the website address or domain
into their browser.
000webhost: is one of the very few web hosts which gives the ability
to host a website while paying nothing. 000webhost has been in the paid
hosting business for around 4 years and they are providing free hosting
since 2 years. With easy use tools such as File manager to store all the
application’s files and Database manager to store the MySQL database
we created in wamp.
25
Figure 4.6: 000webhost.
26
Chapter 5
Conclusion
This chapter gives a summary of this work. A number of recommendations for future works in this
area were made and consequently the conclusion.
5.1
SUMMARY
The research work investigated and identified the relevant additional requirements that can be
catered for in the design and development of an online forum. Through this study, we have been
able to:
1. Explore relevant literature’s and existing systems to discover the right requirements to be
considered in the development of this application.
2. Model some of the operations of FaceRIM employing object oriented analysis and design
using UML diagrams.
3. Develop an effective social network for prospective users, where they can share different posts
or views on other posts of other users they follow and can contact with.
5.2
RECOMMENDATIONS AND FURTHER WORKS
Although Social networks are significant platforms for interaction and connections., the integration
of this social network and making it accessible to everyone is a big plus to this work. Also, most
users are able to relate with the interfaces, so they can use it easily. The participation of people
will also be an advantage because they will be able to test it and report issues and problems that
will be raised by the admin to improve the system. On recommendations, the social media is a very
flexible scene, where improvements are inevitable. More improvements will be done on FaceRIM by
integrating machine learning to serve the content to automatically extract meaning from posts by
identifying recurrent themes or topics, to recognize faces in photos and identify visuals etc. Further
work should also be carried out on properly evaluating and testing out the web application.
5.3
CONCLUSION
As the social media grows, web applications like FaceRIM will be relevant to users and youths
around the world. Even as other versions will be later developed, the activities and features on the
site will increase because they will be built to meet the end-users requirements. Social medias have
presented users with systems designed for the connections of people , with each post separated into
its own network. A network is begun by a user’s followers.
27
Bibliography
[1] Joshua Porter. Designing for the social web, volume 1. New Riders Berkeley, CA, 2008.
[2] Jan H Kietzmann, Kristopher Hermkens, Ian P McCarthy, and Bruno S Silvestre. Social media?
get serious! understanding the functional building blocks of social media. Business horizons,
54(3):241–251, 2011.
[3] Steve Suehring and Janet Valade. PHP, MySQL, Javascript & HTML5 all-in-one for Dummies.
John Wiley & Sons, 2013.
[4] Luke Welling and Laura Thomson. PHP and MySQL Web development. Sams Publishing,
2003.
[5] Jay Greenspan and Brad Bulger. MySQL/PHP database applications. John Wiley & Sons,
Inc., 2001.
28
Download