Final Year Project Report BIT

Download as pdf or txt
Download as pdf or txt
You are on page 1of 71

Informatics College Pokhara

FYP Final Report (CS6P05NP)

Project Name: Ask Forum

Submitted By: Submitted To:

Name: Netra Bahadur Rana First Supervisor: Sushil Paudel

London Met ID: 19031004 Second Supervisor: Sandip Adhikari

Submission Date: 27th April,2022


ACKNOWLEDGEMENT

It is amongst the greatest clichés when writing a supervised report to say a "big
thanks" to your supervisor. And as much as I despise starting my dissertation
with a stereotype, I really do have to express my collective gratitude towards Mr.
Sushil Paudel and Mr. Sandip Adhikari. I say a "big thanks" not only for their
guidance and patience during this project but also for their mentoring throughout
all my brief encounters with the research world and the tackles.

Many thanks to Mrs. Pratibha Gurung helping me understand many issues during
the first stages of the project and all her helpful suggestions about the report and
presentation towards the end.

Also, many thanks to my friends whose interest and involvement in this project
was very beneficial and helped design many vital parts of the final software.
Table of Contents

1 Introduction ......................................................................................................... 1

1.1 Aims and objective ........................................................................................ 2

2 Background ......................................................................................................... 3

2.1 Related Articles ............................................................................................. 3

2.2 Existing solutions .......................................................................................... 4

3 Design ................................................................................................................. 5

3.1 Types of Methodology ................................................................................... 5

3.2 Methodology chosen for the project ............................................................ 10

3.3 Algorithm ..................................................................................................... 11

3.4 Flowchart..................................................................................................... 12

3.5 Use case diagram ....................................................................................... 13

3.6 ERD diagram............................................................................................... 15

3.6.1 Relationship between the entities ......................................................... 16

3.6.2 Data Dictionary ..................................................................................... 17

3.7 Data flow diagram ....................................................................................... 20

3.7.1 Level 0 .................................................................................................. 20

3.7.2 Level 1 .................................................................................................. 21

3.7.3 Level 2 .................................................................................................. 23

3.8 Collaboration diagram ................................................................................. 25


3.9 Sequence diagram ...................................................................................... 27

3.10 Class Diagram ......................................................................................... 29

3.11 Wireframes .............................................................................................. 30

3.12 Layout Design .......................................................................................... 33

3.13 Final Gantt Chart...................................................................................... 37

4 Pre-planning ...................................................................................................... 38

4.1 Work Breakdown Structure ......................................................................... 38

4.2 Resource requirements ............................................................................... 40

4.3 Milestone ..................................................................................................... 41

4.4 Project Gantt chart ...................................................................................... 42

5 Implementation.................................................................................................. 43

5.1 Database implementation ........................................................................... 43

5.2 Front-end implementation ........................................................................... 45

6 Testing .............................................................................................................. 48

6.1 Unit testing .................................................................................................. 48

6.1.1 Test 1.................................................................................................... 48

6.1.2 Test 2.................................................................................................... 49

6.1.3 Test 3.................................................................................................... 49

6.1.5 Test 4.................................................................................................... 50

6.2 System testing............................................................................................. 51


6.2.1 Test 1.................................................................................................... 51

6.2.2 Test 2.................................................................................................... 52

6.2.3 Test 3.................................................................................................... 53

6.2.4 Test 4.................................................................................................... 54

6.2.5 Test 5.................................................................................................... 55

7 Analysis ............................................................................................................. 56

8 Conclusion ........................................................................................................ 57

8.1 Expected outcomes and deliverables .......................................................... 57

9 References ........................................................................................................ 59
List of figures

Figure 1: Flowchart showing the process of asking a question ................................ 12

Figure 2: Use case diagram for the system .............................................................. 13

Figure 3: ERD of the system .................................................................................... 15

Figure 4: ERD symbols used .................................................................................... 16

Figure 5: Level 0 DFD .............................................................................................. 20

Figure 6: Level 1 DFD .............................................................................................. 21

Figure 7: Level 2 DFD for user registration .............................................................. 23

Figure 8: Level 2 DFD for post ................................................................................. 23

Figure 9: Level 2 DFD for managing post................................................................. 24

Figure 10: Level 2 DFD for notifications ................................................................... 24

Figure 11: Collaboration diagram ............................................................................. 25

Figure 12: Sequence diagram for user login ............................................................ 28

Figure 13: Class diagram for the system .................................................................. 29

Figure 14: Home page wireframe ............................................................................. 30

Figure 15: Ask question wireframe ........................................................................... 30

Figure 16: Categories wireframe .............................................................................. 31

Figure 17: Users directory wireframe ....................................................................... 31

Figure 18: Users profile wireframe ........................................................................... 31

Figure 19: sign-in page wireframe ............................................................................ 32


Figure 20: Notification page wireframe ..................................................................... 32

Figure 21: Help page wireframe ............................................................................... 32

Figure 22: Home page design .................................................................................. 33

Figure 23: Ask question page design ....................................................................... 33

Figure 24: Categories page design .......................................................................... 34

Figure 25: User’s directory page design ................................................................... 34

Figure 26: Users profile design page........................................................................ 35

Figure 27: Sign-in page design ................................................................................ 35

Figure 28: sign-up page design ................................................................................ 35

Figure 29: Notification page design .......................................................................... 36

Figure 30: Help page design .................................................................................... 36

Figure 31: Gantt chart after project completion ........................................................ 37

Figure 32: Gantt Chart with estimated time for completion of the system ................ 42

Figure 33: Creating Users table in phpMyAdmin ...................................................... 43

Figure 34: Creating Category table in phpMyAdmin ................................................. 43

Figure 35: Creating Question table in phpMyAdmin ................................................. 43

Figure 36: Creating Answers table in phpMyAdmin ................................................. 43

Figure 37: Creating vote table in phpMyAdmin ........................................................ 44

Figure 38: Creating answers_vote table in phpMyAdmin ......................................... 44

Figure 39: Screenshot of home page ....................................................................... 45


Figure 40: Screenshot of Questions page ................................................................ 45

Figure 41: Screenshot of category page .................................................................. 45

Figure 42: Screenshot of Users directory page ........................................................ 46

Figure 43: Screenshot of profile page ...................................................................... 46

Figure 44: Screenshot of sign-in page...................................................................... 47

Figure 45: Screenshot of sign-up page .................................................................... 47

Figure 46: Screenshot of help page ......................................................................... 47

Figure 47: Screenshot of Admin page ...................................................................... 47

Figure 48: code to display button after login............................................................. 48

Figure 49:obtained outcome without sign-in ............................................................. 48

Figure 50: Obtained outcome with sign-in ................................................................ 48

Figure 51: Code to display count of new users ........................................................ 49

Figure 52: expected result without registering new user .......................................... 49

Figure 53: obtained result without any new registration ........................................... 49

Figure 54: Validating text field .................................................................................. 49

Figure 55: Code to show category from database in dropdown ............................... 50

Figure 56: Data in database to be shown in dropdown ............................................ 50

Figure 57: Data in dropdown .................................................................................... 50

Figure 58: Checking if the form pops up or not ........................................................ 51

Figure 59: Checking if the post appears or not in the list.......................................... 52


Figure 60: Post appeared on the list......................................................................... 52

Figure 61: Logging as admin into admin panel ......................................................... 53

Figure 62: Checking the Admin log-out works or not ................................................ 54

Figure 63: Selecting a category card ........................................................................ 55

Figure 64: Questions with same category ................................................................ 55


List of tables

Table 1: Comparison with other websites................................................................... 4

Table 2: User table ................................................................................................... 17

Table 3: Category table ............................................................................................ 17

Table 4: Vote table ................................................................................................... 18

Table 5: Questions table .......................................................................................... 18

Table 6: Answers table ............................................................................................. 18

Table 7: answers vote table ..................................................................................... 19

Table 8: Milestone listing .......................................................................................... 41

Table 9: Unit test case 1........................................................................................... 48

Table 10: Unit test case 2......................................................................................... 49

Table 11: Unit test case 3......................................................................................... 50

Table 12: System test case 1 ................................................................................... 51

Table 13: System test case 2 ................................................................................... 52

Table 14: System test case 3 ................................................................................... 53

Table 15: System test case 4 ................................................................................... 54

Table 16: System test case 5 ................................................................................... 55


1 Introduction

Question and Answer (Q&A) systems like Yahoo! Answers, Quora, and
Stack Exchange have seen considerable social and technical value over the last
decade. For example, over 17 million questions have been asked on the Stack
Exchange forums, and over 11 million pages of these forums are visited daily by
users. Technical Q&A platforms have become a popular approach for software
engineers to seek information and support over the internet in order to stay up with
the fast-paced software development process (GAO, et al., 2019). We all learned
things from other people who were willing to share their knowledge with us in the
same way we share our knowledge with others. In this sense human society can
be viewed as a network of "knowledge sharing peers" the power of which can be
appreciated by the fact that most of the things we know actually come from our
participation in this network. In the same way that humans possess knowledge
about the world so do organisations (like universities, companies etc) which they
store as database information. So, imagine the possibilities that would arise if this
knowledge could be shared in the same way as humans. “Ask Forum” is a project
built around this concept.

It is a community-based digital space to find and contribute answers to


technical challenges; a web-based platform to increase productivity. Its main
purpose is to both give you answers and allow you to answer questions for others
in subjects you're knowledgeable about. This project is a new approach as the
“Ask Forum” is intended only for institutional level meaning it is designed for a
small institution like college. Instead of people all over from the globe, there will
only be the students/members of the college/institution.

19031004 Netra Bahadur Rana


1.1 Aims and objective

The aims of this project are:

• To create a database backed forum for students.


• To allow students at different levels to interact with each other easily.
• To create a resource where students can find solutions for minor problems
easily.
• To make sharing of knowledge more efficient.
• To help verbally uncomfortable students.

The objectives of the proposed project are as follows:

• To provide a platform for the students of a specific institution.


• To help reduce the pressure from our teachers’ shoulders.
• To enable students to help each other virtually in their curriculum during
pandemic.
• To bring all the students of different levels close and connected with each
other.

19031004 Netra Bahadur Rana


2 Background
2.1 Related Articles

Developing any system is not an easy task. It requires a lot of research.


To develop a knowledge sharing platforms, I have reviewed a number of articles
and learned various things in return.

Q&A systems are very important and their demand is constantly


increasing which requires an effort to be made to better understand and improve
these systems. The studies are under the impact of different features (e.g., user
profiles, question prediction, interactions and community strength) in the social
networks on Q&A performance. These study results lay the groundwork of such
a platform to clout social network properties in the design (Nagendran, et al.,
2018).

In this paper, a brief study is being conducted to understand Yahoo’s


knowledge sharing activity. The forum categories have been analysed and
grouped together based on content qualities and patterns of user engagement.
Because there are so many different categories in which to participate, the
research claims that some users focus on specific issues while others
participate in multiple categories. This allows us to characterize the entropy of
the users' interests as well as map related categories. We discovered that
decreased entropy is linked to higher answer ratings (Adamic, et al., 2008).

As per the article issued in Selected Papers from the Eurasian Conference
on Educational Innovation 2020, Various knowledge sharing platforms have
evolved in recent years as a result of the ongoing development of the sharing
economy and the continuous upgrade of Internet technologies. Information
sharing platforms have made considerable progress as a new form of sharing
economy, providing new channels of knowledge acquisition, knowledge
sharing, and personalized knowledge storage for users. Despite this, there are
still issues with knowledge sharing platforms, such as inconsistent product
quality (Content quality) and bad user experience. As a result, on the
development path of knowledge sharing platforms, how to sustain consumers'

19031004 Netra Bahadur Rana


continuing use intention without compromising consumer happiness has
definitely become a major worry (Bao, et al., 2020).

2.2 Existing solutions

A comparison between the proposed system and the already existing popular
systems is shown in the table below.

Table 1: Comparison with other websites

Stack Overflow Quora Ask Forum


1 Has user friendly UI Has user friendly UI Has user friendly UI
2 User can navigate without User can navigate without User can navigate
login. login. without login.
3 User cannot post without User cannot post without User cannot post
login. login. without login.
4 Only technical questions Allows any type of Allows any type of
allowed. questions. questions.
5 Hard to use for beginners Has restriction through No restrictions through
because of point system. credit system. point system.
6 Has upvote/downvote Has upvote/downvote Has upvote/downvote
function. function. function.
7 Offers worldwide services. Offers worldwide services. Only Institutional level.
8 Embed syntax-highlighted - -
code
9 Embed runnable code - -

19031004 Netra Bahadur Rana


3 Design
3.1 Types of Methodology

In a report by Ron Burback, he has mentioned that the body of methods,


rules, postulates, procedures, and processes that are used to manage a software
engineering project are collectively referred to as a methodology (Burback, 1998).
People working on a software engineering project are guided by similar goals and
tactics and use a variety of tools to develop documents and code. Compilers,
debuggers, environments, change management, source control, project
management, document processors, and domain modelling tools are just a few of
the tools available. Customer manuals, requirements that explain the problem,
and other papers, Test plans, scenarios, a design that defines the architecture,
and implementation plans are all things that need to be considered. Objects, data
structures, algorithms, methods, modules, protocols, and interface definitions may
all be dealt with in the code. The tactics take shape as a result of the data gathered
from architectural design, methodologies, paradigms, risk assessments,
traditions, and a mission statement. The software's cradle-to-grave life cycle is
defined by these steps.

Software engineering is a large and complex process of many


interdependent processes of which the methodology is only one part. No one
methodology is best for all situations. Even the much-maligned waterfall method
is appropriate for some organizations. In practice, every organization implements
their software development project management in a different way, which is often
slightly different from one project to the next (young, 2013). We are going to be
looking at some of the popular software methodologies:

19031004 Netra Bahadur Rana


I. Waterfall Methodology

This method can be introduced as a traditional methodology in Software


development. This traditional waterfall model for software development
consists of four stages --analysis, design, implementation, and ongoing system
monitoring and testing. During this process, each and every initial stage begins
after completion of the former stage and it is a linear sequential flow of activities.
Due to this reason, the Waterfall model is recursive during each phase to get
the perfect outcome and until it delivers a perfect outcome. This is a software
development procedure which is possible to predict the forthcomings using the
software development plan.

Advantages

• Simplicity and easiness in using and understanding is one advantage of


using this methodology.
• This methodology is more productive when using for small projects which
consist of clear and sufficient requirements.
• Each phase is completed within a given specific period before moving to the
next phase which depicts a clear progression of the development project.
• Convenient implementation due to the linear flow of this methodology is
another strength of this methodology.
• Implementation could proceed with the minimum number of resources.

Disadvantages

• One phase of the development process starts after completion of the


former phase and couldn't implement any changes after completion of a
phase.
• In the fast-moving markets, the waterfall model on its own is not flexible
enough to react to new information and knowledge.
• It is very hard to adjust to the feature set in the middle of development
(Kumiega & Vliet , 2001).

19031004 Netra Bahadur Rana


II. Spiral Methodology

Spiral Methodology is a software development process for creation of


new technology where failure is a big risk. In the spiral methodology, a smaller
amount of time is initially devoted to the four stages-- Planning, Risk analysis,
Development and Evaluation. Spiral projects start small, first investigating the
highest risk issues then slowly expand the project once those key components
are functioning. Two or more phases of prototyping are done before the final
implementation. The spiral model is considered to be better than waterfall for
large, expensive, complicated projects. Spiral development is generally
considered inappropriate for small projects.

Advantages

• Better suited to apply for wide-scale projects which consist of risky missions.
• The requirements could adjust with the stakeholder or client feedbacks.
• More flexibility and allows to work with other development models.

Disadvantages

• High expenditure to use the methodology.


• Distinctive experts are needed to analyse the risks of the project.
• Not suitable to apply for slight scale projects.
• Need an experienced project manager to handle, requirement changes of
the project and who got proper understanding about amend of deadlines as
well as adding milestones.

19031004 Netra Bahadur Rana


III. Agile Methodology

Agility in simply depicts to strip away the heaviness, usually associated


with traditional software development methodologies, in order to accelerate the
quick response for altering environments, modifications in user requirements,
work before project deadlines. Agile methodologies give more attention to the
development of the software than documentation. This methodologies trends
to supply more work during its iterations and to use the feedback of the clients
or customers to upgrade the software (Rathnayaka & Kumara, 2020).
Followings are the different methods in agile methodologies

• Extreme Programming - is a frequent release development methodology in


which developers work in pairs for continuous code revie. This gives very
robust, high-quality software, at the expense of twice the development cost.
There is a strong emphasis on test driven development.
• SCRUM - is currently the most popular implementation of the agile ideals.
Features are added in short sprints (usually 7-30 days), and short frequent
meetings keep people focused. Feature-Driven Development
• Dynamic Systems Development Method is an agile method that timequality,
and cost at the beginning of the project. This is accomplished by prioritizing
features into musts, shoulds, coulds, and won't haves.
• Adaptive Software Development - Adaptive process model is a modified
approach of XP model, which is the most widely used agile model. IT targets
on the issues of the complex software development process mostly in the
large systems.
• Feature-Driven Development (FDD) - is an iterative development process
with more emphasis on planning out the overall architecture, followed by
implementing features in a logical order.

19031004 Netra Bahadur Rana


Advantages

• Highly satisfied customers can be gained due to quick, nonstop


development.
• Fast delivery of software during a short time is one advantage of these
methodologies.
• Much easier to systematic adaptation for changes of conditions,
requirements as well as features of the project.
• Allow to make
• Changes in requirements of the project even it is late and while the
development process is in action.

Disadvantages

• During large scale projects, it is tough to estimate the effort essential for the
entire software development procedure, at the beginning.
• Project development procedure could get away from the right path if the
customer is not holding clear requirements.
• Agile method subsists more on user involvement which can describe as
poor user cooperation and communication could make project failure
(Rathnayaka & Kumara, 2020).

19031004 Netra Bahadur Rana


3.2 Methodology chosen for the project

The proposed project is not a mega project. It is a small project that can be
completed within few months with just a single man’s effort. It doesn’t require a
team. So, the project follows agile methodology.

In agile methodology, all the works are identified first and then divided into
small pieces. There are no exact stages and it has the ability to adapt and change
at any step. The project will follow the following steps:

1. Goal identification: Identify the main purpose of the project, its aims and
objectives.
2. Resource management: A thorough research on the resources required
for starting the project.
3. Planning: After collecting resource information, a plan will be made on
how to move forward to achieve the objectives of the project. It includes
cost, time & risk management.
4. Prototype: A simple hollow prototype of the supposed project will be made
to see if the planning works or not. It will be used to analyse the problems
that may arise with the product.
5. Design: After the prototype is complete, we can start creating wireframes
and mock-ups. Wireframe is the blueprint of the layouts and mock ups are
images that visualize the final design.
6. Back-end development: After the design part is complete, coding will be
done to make the website lively and fully functional to achieve the target
goals.
7. Testing: The testing is already carried out as soon as the prototype is
developed. The testing will continue until the final product is released.
8. Beta-testing: Before the general release, it is given to a number of targeted
users to evaluate product performance in the real world.
9. Launch: After everything is carried out successfully, the site launch can
be executed.

10

19031004 Netra Bahadur Rana


3.3 Algorithm

Algorithm is a set of steps to complete a task. An algorithm to ask a


question in the “Ask Forum” system is as follows:

Step 1: Start

Step 2: Go to sign in page.

Step 3: If user have account, Log in to account.

Step 4: Else go to sign up page and create account. Go back to Step 2.

Step 5: Go to Questions page.

Step 6: Click Ask question button

Step 7: A form opens.

Step 8: Fill the form correctly.

Step 9: Click post.

Step 10: Checks if the user is logged in or not.

Step 11: If user is not logged in. Go back to Step 2.

Step 12: Else publish question.

11

19031004 Netra Bahadur Rana


3.4 Flowchart

A flowchart can be defined as a diagrammatic representation of an


algorithm, a step-by-step approach to solving a task.

In chapter 3.2, we created an algorithm to ask question. Here is how it


looks like in its diagram form.

Figure 1: Flowchart showing the process of asking a question

12

19031004 Netra Bahadur Rana


3.5 Use case diagram

The use-case modelling is a simple basic idea of expressing a system’s


requirements to who (or what) will use it or be used by it. Use cases allows any
users to understand the behaviour of the system. The context provided by the
use case has many benefits when capturing, manipulating, verifying and
managing requirements. Due to this reason, use case are very preferred
mechanism for capturing and documentation of software requirements
(Firesmith, 1999).

Since, the use case model makes our work easy, a model is prepared
for my proposed system.

Figure 2: Use case diagram for the system

13

19031004 Netra Bahadur Rana


Use case explanation:

The use case model includes following components:

• Actors: It represents the users that interact with the system and are placed outside
of the system. They are represented by a stickman figure.
• Use cases: It represents the things of value that the system performs for its users.
They are not functions or features. They are represented by ellipses. They are
generally named as a verb followed by a noun.

Following information can be found in fig 2.

1. There are two stickman figures indicating there are two types of users that interact
with the system: Normal user and admin.
2. All the ellipses represent a process meaning that they are carried out the user.
For example: a user uses a feature to add post.
3. The processes with dotted arrows that have include on them mean that the
process automatically triggers another process. For example: If somebody replies
in my post, the notification is triggered without me doing anything.
4. The processes with dotted arrows that have extend on them mean that it may or
may not give access to another process. For example: I may or may not delete
my post.

Explaining the processes:

• Register user: User can sign-up in to the system.


• Add-post: User can create and add post.
• Search: User can search.
• De-register user: User can log out of the system.

The other processes also work same as explained above. It is easy to


understand because the name of the processes itself explain so much.

14

19031004 Netra Bahadur Rana


3.6 ERD diagram

An entity relationship diagram (ERD) is a graphical representation of


the relationships of entities stored in a database. This diagram is a conceptual
design of database which can be used to determine the requirements of an
organization. This whole diagram is based on the relationship between various
entities and their attributes.

Figure 3: ERD of the system

15

19031004 Netra Bahadur Rana


3.6.1 Relationship between the entities

In fig 4, there are different relationship between the entities and


different symbols are used to show different relationships. They are
explained below:

Figure 4: ERD symbols used

Relationships:

A user can post many questions but he can choose to not post at all.

A question can be of one or many categories at the same time.

Many questions can receive zero or many answers.

Many users can give many answers.

A user can give only one vote to an answer or he can choose to not vote
at all.

An answer can get many votes.

An answer can receive zero or many comments.

Many answers and comments trigger many notifications.

A user gets many notifications.

16

19031004 Netra Bahadur Rana


3.6.2 Data Dictionary

A data dictionary contains meta data and is a collection of


descriptions of the stored data in database so that it will be easy for other
peoples as well to understand their motives. Step by step process of
analysing and defining the attributes is called data dictionary. First step
is to identify the object, secondly find out the relationship with other
objects and their datatype can be described with limits. It plays a crucial
part in making of database (USGS, 2016).

Table 2: User table

Column Data Type Field Size Constraint Description


User_ID int 11 Primary key, User ID is the primary key.
NOT NULL It uniquely defines a user.
User_name varchar 20 NOT NULL Account name of the user.
User_password varchar 20 NOT NULL Account password.
Email varchar 100 NOT NULL Account associated Email.
Created_at timestamp NOT NULL Date created.

Table 3: Category table

Column Data Type Field Size Constraint Description


Category_ID Int 11 Primary key, It is the primary key. It
NOT NULL uniquely defines a
category.
Category_name varchar 50 NOT NULL It stores category name.

17

19031004 Netra Bahadur Rana


Table 4: Vote table

Column Data Type Field Size Constraint Description


Vote_ID Int 11 Primary key, It is the primary key. It
NOT NULL defines the vote type.
Vote_type varchar 10 NOT NULL It stores vote type.

Table 5: Questions table

Column Data Type Field Size Constraint Description


Question_ID Int 11 Primary key, It defines every
NOT NULL question uniquely.
Question_title Longtext NOT NULL It is the title of the
question.
Question_text Longtext NOT NULL It contains the main
part of the question.
User_ID Int 11 Foreign key, It defines which user
NOT NULL made the post.
Category_ID Int 11 Foreign key, It defines what
NOT NULL category is the post.
Date_asked Datetime NOT NULL It contains the date
and time of the post.

Table 6: Answers table

Column Data Type Field Size Constraint Description


Answer_ID Int 11 Primary key, It defines every
NOT NULL answer uniquely.
Answer_text Longtext NOT NULL It is the answer of
the question.

18

19031004 Netra Bahadur Rana


User_ID Int 11 Foreign key, It defines which
NOT NULL user answered in
the post.
Question_ID Int 11 Foreign key, It defines which
NOT NULL question received
the answer.
Date_answered date NOT NULL Date of the
answer.

Table 7: answers vote table

Column Data Type Field Size Constraint Description


Question_ID Int 11 Foreign key It defines which
question
Answer_ID Int 11 Foreign key It defines which
answer
User_ID Int 11 Foreign key It defines which user
Vote_ID int 11 Foreign key It defines what vote

19

19031004 Netra Bahadur Rana


3.7 Data flow diagram
3.7.1 Level 0

The context diagram contains only 1 process and that process


must have the system name. In this case, Ask Forum is the system name
so it is placed in the oval shape. It is the highest level of DFD. It defines
the upcoming diagrams. Any involved process must be included in this
level because we cannot add directly in the lower DFD’s.

Figure 5: Level 0 DFD

In fig 4, we can see the level 0 DFD. The arrows represent the
flow of data or simply processes. It is showing the two types of users:
normal user and user with admin privilege interacting with the same
system differently. The normal user is storing their data in the system
while the admin is doing the same thing along with managing the normal
users data.

20

19031004 Netra Bahadur Rana


3.7.2 Level 1

Figure 6: Level 1 DFD

Fig 5 represents the level 1 DFD of the Ask Forum. It shows the
overview of the system design with illustration of the major processes,
data stores and data processes. It holds all together of 11 processes that
are represented by the circles which are connected by the flow of data
and the data resides in their respective data store.

Here we can see that the level 1 DFD is much more detailed than
the level 0. It has taken all the processes and shown the micro
transactions between the processes and the users. One new thing in
level 1 DFD is the datastore. Datastore are basically where the data
resides. Each processes have their own datastore as seen in fig 5.

21

19031004 Netra Bahadur Rana


The processes, data flow, data stores are all connected together
which makes it harder to understand the system. Here are the processes
put together consecutively:

1. Admin logs in to the system.


2. User signs up and logs in to the system.
3. User searches questions.
4. User creates a post.
5. Users who didn’t like the post report (complain as mentioned in fig 3) it.
6. Users answer on the post.
7. Users vote the answer.
8. Answer and comments trigger notifications of the asker.
9. Admin manage the reported post.
10. If the user is not following guidelines, admin has the facility to ban the
user.
11. All of this data is collected in the system and a report is generated in the
admin dashboard.

22

19031004 Netra Bahadur Rana


3.7.3 Level 2

The level 2 DFD is the lowest level of DFD in this system. In this
level, all the major processes are broken down and shown in more detail
how or why that process occurred. All the process appearing in the Level
1 DFD may not have a level 2 DFD because they are already detailed.
So, only the processes that can be further broken down can be found
here. Since, level 2 DFD are very detailed, it is difficult to present them
in a single figure here, it is represented by partition of the processes.

Level 2 DFD for register user:

Figure 7: Level 2 DFD for user registration

Level 2 DFD for post

Figure 8: Level 2 DFD for post

23

19031004 Netra Bahadur Rana


Level 2 DFD for manage post:

Figure 9: Level 2 DFD for managing post

Level 2 DFD for notifications

Figure 10: Level 2 DFD for notifications

24

19031004 Netra Bahadur Rana


3.8 Collaboration diagram

A collaboration diagram, also known as a communication diagram, is an


illustration of the relationships and interactions among software objects in the
Unified Modelling Language (UML). The four major components of a
collaboration diagram are:

• Objects- Objects are shown as rectangles with naming labels inside. The
naming label follows the convention of object name :classname.
• Actors- Actors are instances that invoke the interaction in the diagram. Each
actor has a name and a role, with one actor initiating the entire use case.
• Links- Links connect objects with actors and are depicted using a solid line
between two elements. Each link is an instance where messages can be sent.
• Messages- Messages between objects are shown by arrowheads near a link.
They are communications between objects and include the sequence number
(Lewis, 2019).

Figure 11: Collaboration diagram

25

19031004 Netra Bahadur Rana


Explanation of collaboration diagram

In fig 11, there are 4 sequences of messages. Here is a brief description:

1. askButtonClick(): This is when the user clicks the ask question button.
2. registerClick(): The system reads the click.
3. getQuestionForm(): After the system reads the click, it retrieves the question
form.
4. displayQuestionFOrm(): System displays the form to user.
5. enterQuestionDetails(): User inputs the details in the form.
6. validateQuestionDetails(): The system checks validation of the data filled by
the user in the form.
7. questionDetails(): After validation is true, the question is stored.
8. displaySuccessfulPost(): A message is shown to the user about the
successful post.

26

19031004 Netra Bahadur Rana


3.9 Sequence diagram

A sequence diagram is same as the collaboration diagram but it focuses


on time sequencing or time ordering of messages or the order in which messages
are sent. The emphasis in these diagrams is what happens first, second, and so
on. They represent the passage of time graphically. These diagrams have two
axes: the horizontal axis displays the objects and the vertical axis shows time.
Unlike in collaboration diagram, the sequence diagram does not explicitly show
the relationships or links between objects (Song, 2001).

The components used in the sequence diagram for “Ask Forum” are:

• Object: Defined by rectangular box.


• Actor: Defined by stick figure.
• Activation box: Defined by vertical rectangular box. It represents time.
Longer the time, longer will be the box.
• Lifeline: Defined by vertical dotted lines.
• Synchronous message: Defined by a sloid line with dark arrowhead. This
symbol is used when a sender must wait for a response to a message
before it continues.
• Asynchronous message: Defined by a sloid line with a lined arrowhead. It
don't require a response before the sender continues.
• Return message: Represented by a dashed line with a lined arrowhead,
these messages are replies to calls.

27

19031004 Netra Bahadur Rana


Figure 12: Sequence diagram for user login

In fig 29, a user/admin tries to sign up for the system. When the user clicks
signup button, a process is started. The blue vertical box below the rectangle
represents the time. When the user fills the form, it goes under validation
process. If the validation is passed, it continues and stores the information in
database The database then confirms of the successful account creation as
shown in figure 29. However, if the validation fails, the sign-up process halts and
displays error to the user.

28

19031004 Netra Bahadur Rana


3.10 Class Diagram

A class diagram reflects an application's static view. A class diagram is


used not only for visualizing, defining, and recording various facets of a
framework, but also for creating executable code for a software program. A
class diagram depicts a class's properties and operations, as well as the
system's constraints. Since class diagrams are the only UML diagrams that can
be specifically mapped for object-oriented languages, they are commonly used
in the modelling of object-oriented structures. A set of groups, interfaces,
partnerships, collaborations, and constraints are seen in a class diagram
(Tutorialspoint, 2018).

Figure 13: Class diagram for the system

Fig 30 is a class diagram generated by using PhpMyAdmin.

29

19031004 Netra Bahadur Rana


3.11 Wireframes

Wireframing are useful as a communication medium between clients


and developers in early stages of designing the user interface (UI) of
applications. Wireframes are the rough design of a project. It is usually created
to get a gist of what the user wants the website to look like. It saves a lot of
time and resources (Molina, et al., 2013).

In my case, even though, I am the user myself, I created these


wireframes multiple times to get a final rough design so that I can move
forward with my project without any doubts. Here are the wireframes:

Figure 14: Home page wireframe

Figure 15: Ask question wireframe

30

19031004 Netra Bahadur Rana


Figure 16: Categories wireframe

Figure 17: Users directory wireframe

Figure 18: Users profile wireframe

31

19031004 Netra Bahadur Rana


Figure 19: sign-in page wireframe

Figure 20: Notification page wireframe

Figure 21: Help page wireframe

32

19031004 Netra Bahadur Rana


3.12 Layout Design

After completing the wireframes, it is easy to create full design of the web pages.
Here are the final designs for my website:

Figure 22: Home page design

Figure 23: Ask question page design

33

19031004 Netra Bahadur Rana


Figure 24: Categories page design

Figure 25: User’s directory page design

34

19031004 Netra Bahadur Rana


Figure 26: Users profile design page

Figure 27: Sign-in page design

Figure 28: sign-up page design

35

19031004 Netra Bahadur Rana


Figure 29: Notification page design

Figure 30: Help page design

36

19031004 Netra Bahadur Rana


3.13 Final Gantt Chart

Figure 31: Gantt chart after project completion

37

19031004 Netra Bahadur Rana


4 Pre-planning

In this chapter, we will be looking at how I prepared for the development of


the system before starting anything. Planning is very important for the successful
completion of any project. Here, I have 3 sub-chapters that explain my planning.

4.1 Work Breakdown Structure

Work Breakdown Structure is a deliverable-oriented hierarchical


decomposition of the work executed by the project team to accomplish the
objectives and create the required deliverables. Breaking down a large, complex
project using a WBS is an organized way of planning, executing, monitoring, and
delivering the project successfully. With a breakdown of the project into
deliverables and work packages, project managers are able to perform the
following tasks more accurately:

• Estimate the project cost


• Establish task dependencies
• Develop a project schedule
• Determine the project timeline
• Write a statement of work
• Plan project resources
• Assign responsibilities and roles
• Track the progress
• Identify project risks (HABIB, 2021).

The WBS, when created as thoroughly as possible, is the roadmap to guide


you to completion of what would seem to be a very complicated project scope.
However, when broken down with a WBS, project planning, scheduling and
resource planning suddenly become much more manageable (Alutbi, 2020).

38

19031004 Netra Bahadur Rana


The work structure of the project is divided in four stages. They are shown
below:

1. Inception: Starting point of the project


1.1. Identifying resources
1.2. Planning
1.3. Cost and time estimation
1.4. Risk management
2. Elaboration: Solidifying the base of the project
1.1. Analysis of problems
1.2. Database development
1.3. Prototype development
3. Construction: Building the actual product
1.1. Wireframe and mock-up development
1.2. System development
1.3. System Operational Manual and user manual
1.4. Testing
4. Transition: preparation for the launch
1.1. Beta-testing
1.2. Launch

39

19031004 Netra Bahadur Rana


4.2 Resource requirements

The resources required for the development are divided in two parts:
hardware and software. The hardware required for this project are:

• A Laptop/Computer
• Good Internet router
• Processor (Intel Pentium 4 or later)
• Screen resolution (1920 * 1080)
• RAM (2 GB minimum, 4 GB recommended) (google support, n.d.)

The software required for this project are as follows:

• A text editor
• Web browser
• Database
• Web server (Quora, n.d.)

40

19031004 Netra Bahadur Rana


4.3 Milestone

Table 8: Milestone listing

Milestone Projected Actual Status


completion date completion date
Resource requirements 2021/09/13 - Not started
Planning 2021/09/21 - Not started
Design 2021/10/3 - Not started
Database 2021/10/20 - Not started
Prototype 2021/12/02 - Not started
Full System 2021/12/09 - Not started
Development
Testing 2021/12/12 - Not started
Launch 2021/12/25 - Not started

The above list shows the different targets set to complete the project. The
listed milestones are explained below:

1. The first step is to gather all the necessary requirements.


2. After all the resources are identified, a plan will be developed on how to
approach the project. After this, phase 1 will be completed.
3. By the end of the second phase, a prototype should be developed.
4. The whole of phase 3 must focus on the development and improvement of the
prototype system.
5. The fully developed system will be passed through multiple tests to check the
functionality of the project.
6. The final target is to complete all the process and finally launch the project.

41

19031004 Netra Bahadur Rana


4.4 Project Gantt chart

Gantt chart is a graphic depiction of scheduled tasks. These are basic


diagrams however they can look complicated because of various things mixed
altogether. In a Gantt chart, all of our scheduled activities are listed with their
time of execution and on the right side, a graphical representation of the schedule
is present. In short, Gantt chart helps in schedule management, finding task
overlapping and dependencies, project’s duration and more (Project Central,
2020).

The Gantt chart for “Ask Forum” system is shown in figure below:

Figure 32: Gantt Chart with estimated time for completion of the system

42

19031004 Netra Bahadur Rana


5 Implementation
5.1 Database implementation

Figure 33: Creating Users table in phpMyAdmin

Figure 34: Creating Category table in phpMyAdmin

Figure 35: Creating Question table in phpMyAdmin

Figure 36: Creating Answers table in phpMyAdmin

43

19031004 Netra Bahadur Rana


Figure 37: Creating vote table in phpMyAdmin

Figure 38: Creating answers_vote table in phpMyAdmin

44

19031004 Netra Bahadur Rana


5.2 Front-end implementation

Figure 39: Screenshot of home page

Figure 40: Screenshot of Questions page

Figure 41: Screenshot of category page

45

19031004 Netra Bahadur Rana


Figure 42: Screenshot of Users directory page

Figure 43: Screenshot of profile page

46

19031004 Netra Bahadur Rana


Figure 44: Screenshot of sign-in page
Figure 45: Screenshot of sign-up page

Figure 46: Screenshot of help page

Figure 47: Screenshot of Admin page

47

19031004 Netra Bahadur Rana


6 Testing
6.1 Unit testing

Unit testing is the process of ensuring individual components of a piece


of software at the code level are functional and work as they were designed to.
It is often performed by the developers themselves (Aebersold, 2019).

Some examples of unit testing in my system are:

6.1.1 Test 1

Here, the written code should show Sign-in if the user isn’t
signed-in but if the user is signed-in, it should show Log-out.

Table 9: Unit test case 1

Code Outcome without sign-in Outcome with sign-in

Figure 48: code to display button Figure 49:obtained outcome Figure 50: Obtained outcome with
after login without sign-in sign-in

48

19031004 Netra Bahadur Rana


6.1.2 Test 2

Table 10: Unit test case 2

Code Expected outcome Actual Outcome

Figure 52: expected result Figure 53: obtained result


Figure 51: Code to display count
without registering new user without any new registration
of new users

6.1.3 Test 3

Checking if the text fields will show error or not when left empty.

Figure 54: Validating text field

49

19031004 Netra Bahadur Rana


6.1.5 Test 4

Trying to show the data from database in a dropdown menu.

Table 11: Unit test case 3

Code Expected result Actual result

Figure 55: Code to show category from database


in dropdown Figure 56: Data in Figure 57: Data in dropdown

database to be
shown in dropdown

50

19031004 Netra Bahadur Rana


6.2 System testing

System testing is a black box testing method used to evaluate the


completed and integrated system, as a whole, to ensure it meets specified
requirements (Aebersold, 2019). Here are some of the system testings carried
out in my system.

6.2.1 Test 1

Table 12: System test case 1

Objective To check if a form appears or not.


Action Click the ask question button,.
Expected result Form appears on top.
Actual result Form appears on top.
Test result Success.

Figure 58: Checking if the form pops up or not

51

19031004 Netra Bahadur Rana


6.2.2 Test 2

Table 13: System test case 2

Objective To check if the new post appears or not.


Action Fill the form and click post button.
Expected result Post appears on the list.
Actual result Post appeared on the list.
Test result Success.

Figure 59: Checking if the post appears or not in the list

Figure 60: Post appeared on the list

52

19031004 Netra Bahadur Rana


6.2.3 Test 3

Table 14: System test case 3

Objective To check if the admin panel shows up or not when logged


in with admin email.
Action Fill the email with [email protected] and password as
admin.
Expected result Admin panel appears and other page disappears.
Actual result Admin panel appears and other page disappears.
Test result Success.

Figure 61: Logging as admin into admin panel

53

19031004 Netra Bahadur Rana


6.2.4 Test 4

Table 15: System test case 4

Objective To check if the admin log-out button redirects to home


page or not.
Action Click the log-out button.
Expected result Admin panel disappears and home page appears.
Actual result Admin panel disappears and home page appears.
Test result Success.

Figure 62: Checking the Admin log-out works or not

54

19031004 Netra Bahadur Rana


6.2.5 Test 5

Table 16: System test case 5

Objective To check if the category card shows only the questions with
the same category.
Action Click on the name of the card.
Expected result Only questions with same category name must appear.
Actual result Only questions with same category name appeared.
Test result Success.

Figure 63: Selecting a category card

Figure 64: Questions with same category

55

19031004 Netra Bahadur Rana


7 Analysis

This proposed system has many flaws. It cannot cope with the modern
development in the technology world. From this documentation alone, one can
clearly observe that this system does serve the purpose of letting users find
answers to all their queries and also have a look at the similar questions and their
answers. But in all the papers it was clear that the security aspect hasn’t been great
and the search efficiency is also quite low as the data that comes up is very
redundant and inconsistent. The reason for this is because of a lack of proper
search algorithm. Not only this but there is an equal and high chance of the
answers being fake because people look for someone with good experience to
provide them with answers. One can even find random answers.

Community Question Answering (CQA) service provides a platform for


increasing number of users to ask and answer for their own needs but unanswered
questions still exist within a fixed period. Question Routing (QR) which consists of
four phases: (1) performance profiling, (2) expertise estimation, (3) availability
estimation, and (4) answerer ranking; is a framework that helps to rank the top
answerers based on their 4 information. It makes it easy for the users to choose
who to ask the questions to. The results demonstrated that on average each of
1,713 testing questions obtains at least one answer if it is routed to the top 20
ranked answerers (Li & King, 2010).

In an article about the Comparison of Information Seeking Using Search


Engines and Social Networks, their findings suggest that search engines and social
networks each provide value at different stages in the search process. Users’
information-seeking experience could be improved by integrating these resources
(Morris, et al., 2010).

56

19031004 Netra Bahadur Rana


8 Conclusion

A number of people use question and answer systems to get answers to


their questions, solve their problems, get assistance with their studies, or have
basic chats. The quality of the responses that are received needed to be enhanced
because it is such a hard task to make the other person understand what you are
trying to convey. You can only do so much with just a screen, and the time it took
to get them needed to be shortened, so this system was created. The heart of this
system was to use the chattels of a broad online network to convey a query to
someone who could answer it while also guaranteeing that the quality of the
answer was good enough in a short amount of time. By directly posing questions
to the users who provide the answers, the strain on those who provide the answers
is reduced.

There are a number of things which need to be cooperated in the future


work, techniques like topic modelling and word embedding into our system helping
in finding answers for questions which are redundant meaning being asked by a
number of people. This is a dynamic system and can cooperate techniques like
machine learning which would help in dealing with large number of users and
increased usage. Test cases can be tested with a very large user database in real
world

8.1 Expected outcomes and deliverables

The expected outcomes of this project are:

• It will help release pressure off teacher’s shoulders by allowing students at


different levels to interact with each other.
• Resources are created and students can find solutions for minor problems
easily.
• Will be a huge help for verbally uncomfortable students.
• Efficient sharing of knowledge.
• Creating a database backed forum for students will be a good response to the
technological trend.

57

19031004 Netra Bahadur Rana


The deliverables of this project are:

• A brief document that includes all the requirements and specifications of the
project, including scope, audience and objective.

58

19031004 Netra Bahadur Rana


9 References

Adamic, L. A., Zhang, J., Ackerman, M. S. & Bakshy, E., 2008. Knowledge
sharing and Yahoo Answers: Everyone knows something. Proceedings of the
17th International Conference on World Wide Web, pp. 665-674.

Aebersold, K., 2019. Software Testing Methodologies. [Online]


Available at: https://smartbear.com/learn/automated-testing/software-testing-
methodologies/
[Accessed 20 04 2022].

Alutbi, M., 2020. WORK BREAKDOWN STRUCTURE (WBS). [Online]


Available at:
https://www.researchgate.net/publication/342163727_WORK_BREAKDOWN_
STRUCTURE_WBS
[Accessed 24 10 2021].

Bao, P. et al., 2020. Knowledge Sharing Platforms: An Empirical Study of the


Factors Affecting Continued Use Intention. s.l., Selected Papers from the
Eurasian Conference on Educational Innovation 2020.

Burback, R., 1998. SOFTWARE ENGINEERING METHODOLOGY:, s.l.: s.n.

Firesmith, D., 1999. Use case modeling guidelines. In: Proceedings of


Technology of Object-Oriented Languages and Systems - TOOLS 30 (Cat.
No.PR00278. s.l.:s.n., pp. 184-193.

GAO, Z., XIA, X., LO, D. & GRUNDY, J., 2019. Technical Q&A Site Answer
Recommendation via Question, s.l.: ACM.

google support, n.d. system requirements. [Online]


Available at: https://support.google.com/webdesigner/answer/3232604?hl=en
[Accessed 4 9 2021].

HABIB, Q., 2021. Work Breakdown Structure (WBS), the Basic Building Block
for a Project Plan. [Online]

59

19031004 Netra Bahadur Rana


Available at:
file:///C:/Users/User/Downloads/Work%20Breakdown%20Structure%20(WBS)
%20_%20Best%20Project%20Lifecycle%202021.mhtml
[Accessed 04 10 2021].

Kumiega, A. & Vliet , B. V., 2001. A Software Development Methodology, s.l.:


s.n.

Lewis, S., 2019. collaboration diagram. [Online]


Available at:
https://www.techtarget.com/searchsoftwarequality/definition/collaboration-
diagram
[Accessed 12 11 2021].

Li, B. & King, I., 2010. Routing Questions to Appropriate Answerers in, Toronto:
ACM.

Molina, J. G., Ramón, Ó. S., Cuadrado, J. S. & Vanderdonckt, J., 2013. GUI
Generation from Wireframes. s.l., s.n.

Morris, M. R., Teevan, J. & Panovich, K., 2010. A Comparison of Information


Seeking Using Search Engines and Social Networks, s.l.: Association for the
Advancement of Artificial Intelligence.

Nagendran, N., Asrani, K. & P, D., 2018. An Online Question & Answer Platform.
International Journal of Recent Technology and Engineering (IJRTE), 7(4s), pp.
2277-3878.

Project Central, 2020. How Can Gantt Charts Improve Your Project
Management?. [Online]
Available at: https://www.projectcentral.com/blog/gantt-charts/
[Accessed 2 10 2021].

Quora, n.d. What are the softwares required for web development?. [Online]
Available at: https://www.quora.com/What-are-the-softwares-required-for-web-

60

19031004 Netra Bahadur Rana


development
[Accessed 4 9 2021].

Rathnayaka, I. & Kumara, B., 2020. A Review of Software Development, s.l.: s.n.

Song, I.-Y., 2001. Developing Sequence Diagrams in UML. s.l., s.n.

Tutorialspoint, 2018. UML - Class Diagram. [Online]


Available at: https://www.tutorialspoint.com/uml/uml_class_diagram.htm
[Accessed 25 10 2021].

USGS, 2016. Data Dictionaries. [Online]


Available at: https://www.usgs.gov/data-management/data-dictionaries
[Accessed 25 10 2021].

young, D., 2013. Software Development Methodologies, s.l.: s.n.

61

19031004 Netra Bahadur Rana

You might also like