Final Year Project Report BIT
Final Year Project Report BIT
Final Year Project Report BIT
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
2 Background ......................................................................................................... 3
3 Design ................................................................................................................. 5
3.4 Flowchart..................................................................................................... 12
4 Pre-planning ...................................................................................................... 38
5 Implementation.................................................................................................. 43
6 Testing .............................................................................................................. 48
7 Analysis ............................................................................................................. 56
8 Conclusion ........................................................................................................ 57
9 References ........................................................................................................ 59
List of figures
Figure 32: Gantt Chart with estimated time for completion of the system ................ 42
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.
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'
A comparison between the proposed system and the already existing popular
systems is shown in the table below.
Advantages
Disadvantages
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
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).
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
Step 1: Start
11
12
Since, the use case model makes our work easy, a model is prepared
for my proposed system.
13
• 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.
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.
14
15
Relationships:
A user can post many questions but he can choose to not post at all.
A user can give only one vote to an answer or he can choose to not vote
at all.
16
17
18
19
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
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
22
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.
23
24
• 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).
25
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
The components used in the sequence diagram for “Ask Forum” are:
27
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
29
30
31
32
After completing the wireframes, it is easy to create full design of the web pages.
Here are the final designs for my website:
33
34
35
36
37
38
39
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.)
• A text editor
• Web browser
• Database
• Web server (Quora, n.d.)
40
The above list shows the different targets set to complete the project. The
listed milestones are explained below:
41
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
43
44
45
46
47
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.
Figure 48: code to display button Figure 49:obtained outcome Figure 50: Obtained outcome with
after login without sign-in sign-in
48
6.1.3 Test 3
Checking if the text fields will show error or not when left empty.
49
database to be
shown in dropdown
50
6.2.1 Test 1
51
52
53
54
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.
55
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.
56
57
• A brief document that includes all the requirements and specifications of the
project, including scope, audience and objective.
58
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.
GAO, Z., XIA, X., LO, D. & GRUNDY, J., 2019. Technical Q&A Site Answer
Recommendation via Question, s.l.: ACM.
HABIB, Q., 2021. Work Breakdown Structure (WBS), the Basic Building Block
for a Project Plan. [Online]
59
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.
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
Rathnayaka, I. & Kumara, B., 2020. A Review of Software Development, s.l.: s.n.
61