Update Ha Lie Book
Update Ha Lie Book
This is to certify that the project titled “an effective technique to ask someone error code to get
correct answer” of semester eight:
Under the guidance and supervision of Mr. ABDULLAHI AHMED BASHIR for the award of
the Batch 20(Class 2021-2022)Degree of Bachelor of Computer Science at East Africa
University, Bosaso.
To the best of our knowledge and belief, this work which embodies the work of candidates
themselves, has been appropriately completed, fulfills the requirement relating to the Degree of
the University and is up to standard in respect of content, presentation and language for being
referred to the examiner.
_________________________ ___________________________
i
Declaration
This thesis is our original work and has not been presented for a degree or any other academic
award in any university or institution of learning.
Signature:_______________________________
Signature:_______________________________
Signature:_______________________________
Signature:_______________________________
Date:_________________________________
ii
Approval Letter
We Confirm that the work reported in this thesis was came out by the candidates under our
Supervisor and submitted to the faculty of computer science with our approval as the supervisor.
_________________________ ___________________________
Date:_____________________________
iii
Message from the project supervisor
The Information Science and Technology (IST) a programmed prepares the students to
take up positions as Programmers, Systems Analysts, Systems Designers in the field
related to computer science and information technology, and ITES or students may go for
higher studies in this area. We had therefore imparted the comprehensive knowledge
covering the skills and core areas of computer science courses with equal emphasis on
the theory and practice in BCS programmer. The BCS students are encouraged to involve
themselves completely on the project work in their final semester. It is advised to students
to develop their project for solving problems of software industry or any research
organization. Doing this will give more exposure to handle real life problems of project
development.
The courses studied by you during your BCS programmer provide you the basic
background to work on diverse application domains. The hands on experience gained
from the practical courses provide you the knowledge to work with various operating
systems, programming languages, and software tools.
This project work is kept in BCS program to give you opportunity to develop quality
software solution. During the development of the project you should involve in all the
stages of the software development life cycle (SDLC) like requirements analysis, systems
design, software development/coding, testing and documentation, with an overall
emphasis on the development of reliable software systems. Your project should be taken
as an opportunity to develop software, which gives exposure to SDLC. If found copied,
the project report will be forwarded to the Exam Discipline Committee of the University
as an Unfair means case for necessary action. Students should strictly follow and adhere
to the project guidelines.
I wish you all the success.
iv
Dedication
We would like to dedicate our fathers and mothers and all our parents who contributed
and share their ideas as well as our supervisor who had a huge impact to complete this
project and all our friends who encouraged ending this project successfully.
v
Acknowledgement
First, In the name of Allah, the most Beneficent, the merciful we thankful to Allah for
granting us the strength to complete our project, with ease and successfully
We are thanking to almighty Allah who made us Muslims and made easily and possible
for us to make or prepare such this Thesis book,
Second, we are here by like to thank to our supervisor Mr. Abdullahi Hoolif for his
guidance throughout the course of this project. He has been a source of inspiration and a
shoulder to lean on in the obstacles and challenges we faced in completing this project.
Thirdly, we also acknowledge our parents for their unlimited contribution to get this
project successfully, it wouldn’t be possible for us to complete our project without the
support for our parents. We are highly and lovely giving more thanks to our dear parents
that they are paid the Fees of Education.
Let’s conclude acknowledgement to the university and the faculty that we graduated. We
are thanking to The Rector of the university: Prof: Abdirazak Takar and the different parts
of administration of the university generally. We are saying here to all parts of the
university continue your efforts and the time you are contributing the students so as to be
good and professional ones who can take part country development as good and excellent.
To our faculty of computer science and its administration and teachers as well together,
We are thanking and thanking more to our university especially faculty of computer
science Dean Said Mohammed Koshin and all BCS Professors and students.
We would like to thank our university East Africa University and my Faculty of
Information Science and Technology Department for giving us the opportunity as well
as lending me the resources to fulfill our work. It would not been possible for us to
complete program and this project without support from our universities and Also we
would like to thanks to our colleagues students and friends who helped us for completing
this project successfully We would then full heartedly like to thank generally for anyone
who have contributed to the successful completion of this project also we would like to
thanks everybody who has collaborated on the development on this project.
vi
ABSTRACT
We use unsupervised learning to categorize the mined questions and define a ranking
algorithm to rank all the Halie program questions based on their importance. Modern
web applications consist of a significant amount of client-side code, written in flutter.
vii
Table of Content
DECLARATION ……………………………………………………………………… ii
APPROVAL LETTER ……………………………………………………….……..…iii
MESSAGE FROM THE PROJECT SUPERVISOR ……………………………….... iv
DEDICATION ………………………………………………………………………v
ACKNOWLODGEMENT.……………………………………………………………. vi
ABSTRACT …………………………………………………………………………...vii
CHAPTER ONE .......................................................................................................................... 1
1.1 Introduction ................................................................................................................... 1
1.2 Background of the project ............................................................................................. 2
1.3 Problem Statement ........................................................................................................ 3
1.4 Purpose of the Project ................................................................................................... 3
1.5 Objective of Project....................................................................................................... 3
1.6 Scope ............................................................................................................................. 3
1.7 Significance of the project ............................................................................................ 4
1.8 Project Organization...................................................................................................... 4
CHAPTER TWO ......................................................................................................................... 5
2.1 Introduction ................................................................................................................... 5
2.2 Overview of mobile applications .................................................................................. 5
2.2.1 Types of mobile applications................................................................................. 6
2.2.2 Somalia mobile systems ........................................................................................ 6
2.3 Halie program firebase .................................................................................................. 7
2.4 Advantages of the Halie program ................................................................................. 8
2.5 Tools used for Halie application ................................................................................... 8
2.5.1 Flutter .................................................................................................................... 9
2.5.2 Dart...................................................................................................................... 10
2.5.3 MySQL ................................................................................................................. 11
2.5.4 Firebase authentication ...................................................................................... 12
2.6 Existing Online questioning Systems .......................................................................... 12
2.6.1 Stack Overflow .................................................................................................... 13
2.6.2 Quora .................................................................................................................. 14
2.6.3 ResearchGate ...................................................................................................... 15
2.6.4 Comparison among existing systems .................................................................. 16
2.7 Chapter summary ........................................................................................................ 17
CHAPTER THREE.................................................................................................................... 18
viii
3.1 Introduction ................................................................................................................. 18
3.2 User requirement analysis ........................................................................................... 18
3.2.1 UML ..................................................................................................................... 18
3.2.2 Use case diagram ................................................................................................ 19
Figure 3.1: Use case diagram for Halie program System ................................................ 19
3.2.2.1 Use case specification ..................................................................................... 19
3.3 User interface .............................................................................................................. 31
3.4 Chapter summary ........................................................................................................ 31
CHAPTER FOUR ...................................................................................................................... 32
4.1 Introduction ................................................................................................................. 32
4.2 Design goals ................................................................................................................ 32
4.3 Database design........................................................................................................... 33
4.4 Form design................................................................................................................. 34
4.4.1 Login form ........................................................................................................... 34
4.4.2 Registration form ................................................................................................ 36
4.4.3 Question and answers form ................................................................................ 38
4.4.4 User profile form ................................................................................................. 39
4.5 Chapter summary ........................................................................................................ 40
CHAPTER FIVE........................................................................................................................ 41
5.1 Introduction ................................................................................................................. 41
5.2 Coding phase ............................................................................................................... 41
5.3 Testing......................................................................................................................... 41
5.3.1 Login testing ........................................................................................................ 41
5.3.2 Asking question test ............................................................................................ 44
5.4 Types of testing ........................................................................................................... 45
5.4.1 Unit testing .......................................................................................................... 45
5.4.2 Integration testing............................................................................................... 45
5.4.3 System testing ..................................................................................................... 45
5.5 User Documentation.................................................................................................... 45
5.5.1 Program Documentation..................................................................................... 45
5.5.2 System Documentation ....................................................................................... 45
5.6 How the system works ................................................................................................ 46
5.7 Implementation ........................................................................................................... 46
5.7.1 Login form ........................................................................................................... 47
............................................................................................................................................. 47
5.7.2 User registration form ......................................................................................... 48
ix
5.7.3 Asking question from .......................................................................................... 49
5.7.4 Answer form ........................................................................................................ 49
5.8 Chapter Summary ....................................................................................................... 50
CHAPTER SIX .......................................................................................................................... 51
6.1 Introduction ................................................................................................................. 51
6.2 Achievement of the Project Objective ........................................................................ 51
6.3 Constraints and Challenges ......................................................................................... 52
6.4 Future Enhancements of the System ........................................................................... 52
6.5 Experience Gained ...................................................................................................... 52
APPENDIX A BBREVIATIONS …………………………………………………53
APPENDIX B TIME FRAME WORK OF THE PROJECT ………………………54
APPENDIX C BUDGET OF THE PROJECT ……………………………………..55
APPENDIX D TABLES AND FIGURE OF THE PROJECT ……………………..57
REFERENCE ……………………………………………………………………………………………………….…………58
x
CHAPTER ONE
INTRODUCTION
1.1 Introduction
In our project, we study an effective technique or way to ask someone error code to
get a correct answer. The ability to ask and answer questions is central to learning.
For more than two thousand years (since Socrates) the question has been an integral
part of teaching. Only within the last decade and a half, however, has extensive
research been directed to questions and questioning strategies (Karron G. Lewis)
Asking and answering questions is a key ingredient in the learning process and
effective teaching. Using a variety of questions in the classroom can serve many
different purposes (Michal Kasprzak)
Halie is a question and answers website for professional and enthusiast programmers.
It is the flagship site of the stack exchange network progressed scholarly people web
applications require the integration of numerous land.
1
1.2 Background of the project
people at an early where share questions with them in different ways, some are used to
make questioning by just asking their partner because they are together and can share
information directly, some are used to sending someone and told what they need to know
to go away with the question and ask then return with the answer this is because there
was no such these technologies for communication.
Today the world made developed and millions of ideas were applied to get this magical
technology that is part of our life. Asking and answering become together any time you
ask it's possible to get the right answer without waiting a long time.
In this program, Halie anyone can ask a question and get the right answer from trusted
and qualified people, especially the code problem when the developer or programmer gets
an error and can't get the solution, by sharing the problem on this program of Halie to
post and get the solutions from different sides and different ways in the comment section,
and then he can make a copy and correct the error by the ideas he found form, Halie.
Dart is designed for a technical envelope that is particularly suited to client development,
prioritizing both development (sub-second tasteful hot reload) and high-quality
production experiences across a wide variety of compilation targets (web, mobile, and
desktop).
Dart also forms the foundation of Flutter. Dart provides the language and runtimes that
power Flutter applications, but Dart also supports many core developer tasks like
formatting, analyzing, and testing code.
We are so excited to see this project out in the world and so relieved to finally be finished
with it! Text data is being generated all the time around us, in healthcare, finance, tech,
and beyond; text mining allows us to transform that unstructured text data into real insight
that can increase understanding and inform decision-making.
In our book, we demonstrate how using tidy data principles can make text mining easier
and more effective. let’s mark this happy occasion whit an exploration of the Halie
program text date, and show natural language processing techniques we cover in our book
can be applied to real –word date to gain insight.
For this analysis, we will use the Halie questions from Stacks ample, a dataset of text
from 10 % of Halie questions, and answers on programming topics that are freely
available on Kaggle.
The code that we are using in this post on Halie is a Kernel on Kaggle, so you can fork it
for your exploration.
2
The students of East Africa University ask questions every time using social media like
WhatsApp and Facebook where there are so many transactions and busyness because
most people in those areas are not familiar with these errors.
Using students in this program will reduce the errors in our projects while writing code.
The rapid speed of sharing these errors and the speed of communication with the people
who are familiar with these problems also reduce the errors of our codes.
1.6 Scope
In this project, we will implement the Halie program based on codding errors as we
already mentioned and it is designed for students of programming in East Africa
3
University- Puntland-Somalia to transmit and exchange their errors and solutions from
their teachers or students form without going google.
This project is designed to share problems and errors faced by web developer beginners
to help young developers to get more understanding of the codding and make them
producers by using this effective program of Halie then the one who gets errors will post
the problem to the program, when someone who knows the solution sees then he will
share the solution to the program by tagging the one who posted the problem, thus errors
will be corrected.
4
CHAPTER TWO
LITERATURE REVIEW
2.1 Introduction
The literature review deals with the topics and the research that would help to
understand an effective technique to ask someone error code to get the correct answer and
the existing systems that are similar to it. The objective of this literature review is to
analyze the related work to this project and mechanisms used in previous studies and to
evaluate their functionality to ask and answer.
The mobile application has wide uses for its vast functioning area like calling, messaging,
browsing, chatting, social network communication, audio, video, game, etc (Et al., 2021).
5
A mobile application is a type of application software designed to run on a mobile device,
such as a smartphone or tablet computer.
Mobile applications frequently serve to provide users with similar services to those
accessed on personal computers
In a large number of mobile applications, some are pre-installed on phones and others
users can download from the internet and install on the mobile phone.
This large number of mobile application markets is served by an increasing no of mobile
application developers, publishers, and providers.
From the technical point of view, the different mobile applications are run able in different
managed platforms like iPhone, BlackBerry, Android, Symbian, and windows; also some
virtual machines such as Java/J2ME, BREW, Flash Light, and Silverlight.
According to the application area, there are different categories of a mobile applications.
1. Communications: Internet browsing, email IM client, Social Networking
2. Games: Puzzle/ Strategy, Cards /Casino, Action/ Adventure
3. Multimedia: Graphics /Image viewer, Presentations viewers, Video Players,
Audio players
4. Productivity: Calendars, Calculators, Diary, Notepad /Memo/Word Processors,
Spreadsheets
5. Travel: City guide, Currency converter, Translators, GPS/Maps, Itineraries
/Schedules, Weather
6. Utilities: Profile manager, Idle screen/Screen saver, Address book, Task manager,
Call manager, File manager
6
These major telecom firms ... have succeeded in large part due to a deregulated market
with the absence of state control, regulatory laws, the collapse of foreign exchange
controls, and the inexistence of license providers. (Somali Economic Forum 25 Apr.
2014) .
Mobile phone companies in Somalia provide the cheapest rates for telecommunications
services in Africa (Sheikh Ali and Yusuf Dhaha 2-3 Dec. 2013, 2; US 23 June 2014). W
wireless telecommunications services are available across Somalia (CDAC Jan. 2012;
Somali Economic Forum 31 Jan. 2014). In a 2012 guide on media and telecom services
in Somalia, the Infoasaid Project [1] reports that mobile networks provide "extensive"
mobile coverage throughout the country (CDAC Jan. 2012, 84).
The Somali Economic Forum states that "telecommunication companies have installed
country-wide networks of wireless stations and provided affordable equipment that has
enabled local communities to stay connected" (31 Jan. 2014). A 2012 study titled
"Investigating Mobile Money Acceptance in Somalia: An Empirical Study" by Osman
Sayid, Abdelghani Echchabi, and Hassanuddeen Abd. Aziz, published in the Pakistan
Journal of Commerce and Social Science, similarly states that "private companies provide
affordable fixed-line, mobile phone and Internet services in every major city in Somalia,"
while also noting that such services are of "high quality, which is not available in many
parts of the continent" (Sayid et al. 2012, 270).
Users can ask questions they don't know, give answers to the questions asked if they do
know, or make research to ask that they don't know if they are familiar with the question
asked, also users can make take a favorite answer to their question asked by them.
Users are allowed to vote answers by commenting in the comment section on what they
think, right or wrong, strongly agree or just agreed.
Halie program provides data dumps of all user-generated data, including questions asked
by the users with their list of answers,
7
2.4 Advantages of the Halie program
The existence of the Halie program that is being implemented in the Outpatient
Department does bring benefits to the department and also to the people involved.
Using the Halie program, the registration process becomes easier and more efficient
because every customer can register as online and check questions and answers on the
platform without going to google.
Also, all the information about them is available in the database. It is undeniable that by
using the Halie questioning and answering program the number of students' power needed
can be lessened and this helps a lot in reducing the amount of how long it takes to dig out
the correct answer.
To stay relevant, responsive, and successful, organizations need to develop the mobile
applications that their customers, partners, and employees demand.
Yet mobile application development might seem daunting. Once you've selected the OS
platform or platforms, you need to overcome the limitations of mobile devices and usher
your app past the potential hurdles of distribution.
Fortunately, by following a few basic guidelines and best practices, you can streamline
your application development journey, and here are some tools we used to build this
software.
8
2.5.1 Flutter
In general, developing a mobile application is a complex and challenging task. There are
many frameworks available to develop a mobile application. Android provides a native
framework based on Java language and iOS provides a native framework based on
Objective-C / Shift language.
However, to develop an application supporting both OSs, we need to code in two different
languages using two different frameworks. To help overcome this complexity, there exist
mobile frameworks supporting both OS. These frameworks range from simple HTML-
based hybrid mobile application framework (which uses HTML for User Interface and
JavaScript for application logic) to the complex language-specific framework (which
does the heavy lifting of converting code to native code).
To be specific, the Flutter application is itself a widget. Flutter widgets also support
animations and gestures. The application logic is based on reactive programming. The
widget may optionally have a state. By changing the state of the widget, Flutter will
automatically (reactive programming) compare the widget's state (old and new) and
render the widget with only the necessary changes instead of re-rendering the whole
widget.
Flutter framework offers the following features to developers: Modern and reactive
framework, uses Dart programming language and it is very easy to learn, fast
development, beautiful and fluid user interfaces, huge widget catalog, runs the same UI
for multiple platforms, high-performance application.
Flutter comes with beautiful and customizable widgets for high performance and
outstanding mobile applications. It fulfills all the customer needs and requirements.
Besides these, Flutter offers many more advantages as mentioned below:
Dart has a large repository of software packages that lets you extend the capabilities of
your application, developers need to write just a single code base for both applications
(both Android and iOS platforms).
Flutter may be extended to another platform as well in the future, flutter needs lesser
testing.
Because of its single code base, it is sufficient if we write automated tests once for both
the platforms, flutter’s simplicity makes it a good candidate for fast development. Its
customization capability and extensibility make it even more powerful, with Flutter,
9
developers have full control over the widgets and their layout, flutter offers great
developer tools, with amazing hot reload.
2.5.2 Dart
Dart is a client-optimized language for developing fast apps on any platform. Its goal is
to offer the most productive programming language for multi-platform development,
paired with a flexible execution runtime platform for app frameworks.
Languages are defined by their technical envelope — the choices made during
development that shape the capabilities and strengths of a language. Dart is designed for
a technical envelope that is particularly suited to client development, prioritizing both
development (sub-second stateful hot reload) and high-quality production experiences
across a wide variety of compilation targets (web, mobile, and desktop).
Dart also forms the foundation of Flutter. Dart provides the language and runtimes that
power Flutter apps, but Dart also supports many core developer tasks like formatting,
analyzing, and testing code.
The Dart language is type safe; it uses static type checking to ensure that a variable’s
value always matches the variable’s static type. Sometimes, this is referred to as sound
typing.
Although types are mandatory, type annotations are optional because of type inference.
The Dart typing system is also flexible, allowing the use of a dynamic type combined with
runtime checks, which can be useful during experimentation or for code that needs to be
especially dynamic.
Dart offers sound null safety, meaning that values can’t be null unless you say they can
be. With sound null safety, Dart can protect you from null exceptions at runtime through
static code analysis.
Unlike many other null-safe languages, when Dart determines that a variable is non-
nullable, that variable is always non-nullable. If you inspect your running code in the
debugger, you’ll see that non-nullability is retained at runtime (hence sound null safety).
The following code sample showcases several Dart language features, including libraries,
async calls, nullable and non-nullable types, arrow syntax, generators, streams, and
getters. To find examples of using additional Dart features, see the samples page. To learn
more about the language, take the Dart language tour.
Dart has a rich set of core libraries, providing essentials for many everyday programming
tasks
10
Dart Web enables running Dart code on web platforms powered by JavaScript. With Dart
Web, you compile Dart code to JavaScript code, which in turn runs in a browser — for
example, V8 inside Chrome.
Dart web contains both an incremental dev compiler enabling a fast developer cycle, and
an optimizing production compiler, dart2js, which compiles Dart code to fast, compact,
deployable JavaScript using techniques such as dead-code elimination.
2.5.3 MySQL
MySQL is a very popular, open source DBMS MySQL databases are relational. Handles
very large databases, very fast performance; reliable, MySQL is compatible with the
standard. MySQL is frequently used by PHP and Perl, Commercial version of MySQL is
also provided (including technical support).
Founded and developed by David Axmark, Allan Larsson, and Michael “Monty”
Widenius Named after Monty's daughter, My. MySQL Dolphin logo is “Sakila”, the
name of a town in Arusha, Tanzania written in C and C++ Works on many different
platforms Sun acquired MySQL AB in Jan 2008 for 1 billion dollars
You’ll spend a good portion of this book learning the specifics of SQL, but for the sake
of this session, all you need to know is what an SQL server’s role is in the development
process. An SQL server essentially has two jobs: to store data efficiently and to retrieve
that data quickly.
The SQL server is where your data, your valuable, crucial, business-dependent data —
will live. You can insert, delete, and alter this information in any way you see fit.
Additionally, and perhaps most importantly, you can query this data — pull information
out of the SQL server — in about any way you can imagine. Further, an SQL server can
provide statistical information on the data you have stored. If the idea of getting statistical
11
information on your data is a bit vague right now, don’t worry. It will become clear as
you progress with this weekend-long course.
For now, think of this simple example: In MySQL, you've stored the names and addresses
of everyone affiliated with your business. If a time comes when you want to know exactly
how many of these people live in a specific state or region of the country, your SQL server
can quickly and easily return this information.
Firebase Authentication integrates tightly with other Firebase services, and it leverages
industry standards like OAuth 2.0 and OpenID Connect, so it can be easily integrated
with your custom backend.
12
2.6.1 Stack Overflow
13
2.6.2 Quora
Quora is a Q&A platform that empowers people to share and grow the world’s
knowledge. People come to Quora to ask questions about any subject, read high-quality
knowledge that's personalized and relevant to them, and share their knowledge with
others.
Quora is a place to share knowledge and better understand the world.
Quora is an American social question and answer website It was founded on June 25,
2009, and made available to the public on June 21, 2010.
Users can collaborate by editing questions and commenting on answers that have been
submitted by other users. As of 2020, the website was visited by 300 million users a
month.
14
2.6.3 ResearchGate
ResearchGate is a European commercial social networking site for scientists and
researchers to share papers, ask and answer questions, and find collaborators.
According to a 2014 study by Nature and a 2016 article in Times Higher Education, it is
the largest academic social network in terms of active users, although other services have
more registered users, and a 2015–2016 survey suggests that almost as many academics
have Google Scholar profiles.
While reading articles does not require registration, people who wish to become site
members need to have an email address at a recognized institution or to be manually
confirmed as a published researcher to sign up for an account.
Members of the site each have a user profile and can upload research output including
papers, data, chapters, negative results, patents, research proposals, methods,
presentations, and software source code.
Users may also follow the activities of other users and engage in discussions with them.
Users are also able to block interactions with other users.
The site has been criticized for sending unsolicited email invitations to coauthors of the
articles listed on the site that were written to appear as if the email messages were sent by
the other coauthors of the articles (a practice the site said it had discontinued as of
November 2016) and for automatically generating apparent profiles for non-users who
have sometimes felt misrepresented by them.
A study found that over half of the uploaded papers appear to infringe copyright because
the authors uploaded the publisher's version.
15
Figure 2.3: researchGate.com interface
The comparison was done based on the following criteria: Sing Up, Login, Search, and
Comments.
The below table shows the comparison among the existing systems similar to this system.
16
features Stackoverflow.com Quora.com researchGate.com Halie
Therefore based on Table 2.1, among the common features are search, login, and
comments. Search will facilitate users to directly go to the desired page to find the
relevant information. While login allows registered users to share their experiences and
thoughts with other users, by posting those experiences on the forum of the portal.
It also shows the similarities and the differences that the existing systems have by
comparing them and discussing related things to the current system.
It will represent the border or limitation of the current system.
17
CHAPTER THREE
REQUIREMENT ANALYSIS
3.1 Introduction
In this chapter, Requirement analysis we will present the requirement analysis used in
this project and will define how the project problem has been solved. It starts with the
project approaches and is followed by a presentation of the project design, the data
collection tools, and a description of how the data is analyzed. So it also presents the user
requirement analysis process of the study. It outlines user requirement specifications; data
gathering techniques and procedures which or were used, feasibility study, etc.
3.2.1 UML
UML stands for Unified Modeling Language; The UML is the standard language
for visualizing, specifying, constructing, and documenting the artifacts of a software-
intensive system. It can be used with all processes, throughout the development life cycle,
and across different implementation technologies
18
3.2.2 Use case diagram
Create an account
Login system
Ask question
Answer question
Manage users
Use case-create-account
Create an account
User
19
Brief description
This function allows a new user to create a user account and register with the
system. The main actors are new users who have not registered to this system and do not
have a valid user account.
Basic flow
1. The user accesses the system and chooses the new user (Sing Up) register
function to create a user account.
2. The system displays a registration form, including first name, last name,
username, email, password, and confirmation password.
3. The user fills out the registration form and submits it by clicking sing up button.
4. The system verifies the submitted information. If the data is valid, the system
returns the confirming information to the user and shows the user a welcome
message, the user account, and the password.
Alternative flow
4. If the user’s email address has already existed in the system, the system shows
an error message. Then the system displays the registration form, and the user will
fill out the registration form again with valid information.
4. If the user’s password and reentry password are not identical, the system shows
an error message. Then the system displays the registration form, and the user
goes to step 3 to fill it out.
20
Access the app and choose
the registration form
Not valid
Try again
Valid
Feedback
Figure 3.2: Activity diagram for creating an account of the Halie program
21
User Interface Database
Fill out a
registration form
Submit information
Feedback
Figure 3.3: Sequence diagram for creating an account of the Halie program
Login
User
Brief description
22
This use case allows any user who has a valid username and password to log in to the
system for making activities.
Basic flow
1. The user enters the application.
2. The system displays the login form.
3. The user enters the user name and password and hit the login button.
4. The system verifies the submitted information, if it is the valid user enters the home
page.
Alternative flow
4. If the user’s name or password is invalid the system shows an error message and the
user goes to step 3.
4. If the user’s password and reentry password are not identical, the system shows an error
message and the user goes to step 3.
23
Access the system
Not valid
Try again
24
Ask question
Ask question
User
Brief description
This use case allows the user to ask a question to the system.
Main flow
The user accesses the system and makes the following actions:
1. He chooses the ask question button at the bottom of the interface.
2. He chooses the language from the dropdown list.
3. He adds a title to the question.
4. Adds a description to explain the question
5. Finally, he posts by clicking submit button.
Submit information
25
User Interface Database
Submit information
Response
Answer question
Answer question
User
Brief description
26
This function allows users to answer asked questions using the system.
Basic flow
The user must log in to the system successfully then he can do the following actions:
1. Monitors, reads, and checks asked questions.
2. Chooses the "replay button" to answer the questions he knows from the system.
3. Choose to submit button to send data into the database.
4. Types the answer into the replay section and then click "send arrow".
5. The system sends and displays the result.
27
User Interface Database
Select replay
Response
Manage users
Login
Admin
Brief description
This functionality allows the administrator to add the users to the system. The main actor
in this scenario is an Administrator.
28
Main flow
After the administrator has logged into the system and has chosen "manage users", the
system will present to the admin information of all registered users the code and
description of each user.
Submit info
Error
Access the system
Feedback
Figure 3.9: activity diagram for configuring users of the Halie program
29
User Interface Database
Submit
Feedback
Figure 3.10: sequence diagram for configuring users of the Halie program
30
3.3 User interface
The application will be accessed through a mobile Interface. The software would be fully
compatible with android mobiles. No user would be able to access any part of the
application without logging into the system.
In this chapter, we have discussed important topics on the User Requirement Analysis of
the system starting from the introduction of the chapter and then the User Requirements,
tools used to describe user requirements using different kinds of UML diagrams. Finally,
we have covered all that now we are going to step the Design step of the project
31
CHAPTER FOUR
SYSTEM DESIGN
4.1 Introduction
In this chapter, we are going to discuss the design of Halie software in mobile
applications and it is very important as it is one of the billers of the system
development life cycle (SDLC) so we can divide this phase of designing into two
parts conceptual and physical design.
Conceptual defines always why this system is designed by declaring how this
application is used and how it follows.
The other part is a physical design which mentions how this system will work and
how its components will be arranged as it also mentions the system features and the
hardware requirements of the system.
32
4.3 Database design
This section is usually discussing the database design of both online and desktop
systems, but this system does not have the same design and architecture as these
systems which need may be a lot of tables or storing and retrieving data from a
database regardless of this system which the main objective is to implement the
method for asking questions so it does not require father database design, what we
need only is designing two tables for given permission to authorized users as well
as restricting unauthorized users to access this system. These tables are the admin
table, login table, question & answer table, and user’s tables. These database
tables are created using my SQL server.
33
4.4 Form design
In general when you want designing forms in all systems can be the most efficient
and significant part of system design, in which a blank form that duplicates or
resembles the source document is completed on the screen.
Form design can have many features like menu bars, text boxes, dialogue boxes,
toolboxes, command buttons, list boxes, dropdowns, group boxes, checkboxes, and
more others which facilitates the user to enter data to make the interaction between
the user and the application.
This system contains many forms like the Login form, Registration form, question
and answer form, user profile form, and user management form for admin only.
34
Figure 4.2: Halie program-Login
35
4.4.2 Registration form
The registration form is one of our most important forms. This form gets the name,
username, email, and password from the user to verify the username, from here new users
are allowed to register and become belonged to the system than to enter the application
and access by asking, answering the questions posted or asked by the different users.
A registration form is a list of fields that a user will input data into and submit to a
company or individual. There are many reasons why you would want a person to fill out
a registration form. Companies use registration forms to sign up customers for
subscriptions, services, or other programs or plans.
36
Figure 4.3: Halie program-Registration
37
4.4.3 Question and answers form
When someone asks a question there must be an answer, these two bottom figures are
questioning and answer forms.
When users post an issue, error code of different languages, or any code problems there
are other users which are ready to give answers. Users are allowed to respond to the
questions, by clicking the reply button they can write their answers in the reply box.
38
4.4.4 User profile form
A user profile is a collection of settings and information associated with a user. It contains
critical information that is used to identify an individual, such as their name, email,
password, and portrait photograph.
In this form, the users are allowed to make update their information by clicking just the
pen icon on the front of any field to edit the content. Some admins can use this section to
change or delete user information.
39
4.5 Chapter summary
This chapter discusses the design and the implementation of the project. Software and
database design and algorithm architecture of this system were the following steps of this
chapter which was the conversion of the requirement analysis, to show the interior design
of the system.
After that, we discussed the database Design, Form design, etc, although we have covered
a majority of the project still we are going to the coding step of the project.
40
CHAPTER FIVE
SYSTEM DEVELOPMENTS
5.1 Introduction
This chapter discusses the functions’ implementations of the Halie program system, beginning
with the coding phase then testing, and finally documentation.
The system has two users; who are the one who asks a question and the one who answers that
question. The first user creates the post which contains an issue of error code or other problem
and then sends it to the system as a public, and there is a second user who reads the asked question,
understands, makes research if he does not have the answer yet after that writes the correct answer
in the comment like section part of the system which is answer section of the system labeled by
reply. To implement the Halie question and answer system for East Africa University students,
this system uses MySQL and Dart as the main tool for sharing questions between students.
5.3 Testing
Once the coding phase is completed, the next phase is testing and debugging. The testing phase
is the process of executing a program or system with the intent of finding errors. Or, it involves
any activity aimed at evaluating an attribute or capability of a program or system and determining
that it meets its required results. Although crucial to software quality and widely deployed by
programmers and testers, software testing remains an art, due to limited understanding of the
principles of software. The difficulty in software testing stems from the complexity of software:
we cannot completely test a program with moderate complexity, Testing Can be Logging testing
or case testing.
41
Figure 5.1: Login testing for wrong username/password
42
Figure 5.2: Login testing for incorrect password
43
5.3.2 Asking question test
Any time user gets access to the system, the user will choose the ask question form in the main
menu and then she/he will try to write some error code or problem using this system, so this
process very well it must be done in case of testing, for example when the user did not write a
message in the blank area she/he will get an error message indicating to fill the blank message
area.
While answering, if a user tries to send blank or empty answer paper, the system will display the
error message to remain the user to write something to send and there are no empty files allowed
to send.
44
5.4 Types of testing
Correctness testing and reliability testing are three major areas of testing.
There are many types of documentation include: program documentation and system
documentation
45
documents. System documentation is necessary to reference material for Programmers who must
support and maintain the system.
This function is used by the user whose type is admin to create new users which allowed the
system; so they could have the registered users' access to the system.
Asking question
The registered users can able to do all processes involving asking questions, writing answers to
the questions in the system, and agreeing with answers submitted by other users in the system.
5.7 Implementation
The project Implementation part discusses the details process of the system component. The
following snapshots are some of the components of the project:
46
5.7.1 Login form
Figure 5.5 shows the first form of the system; where the users log in to the system. If the users
key in the wrong username and password the system notifies them that the keyed-in information
is wrong and that they should try again.
47
5.7.2 User registration form
Figure 5.6 illustrates the user registration form, where the users register into the system. After
filling in the required information, it will be submitted to the database and the newly registered
users can log in to the system using/her username and password.
48
5.7.3 Asking question from
Figure 5.7 shows the asking question Form where the main function of the system is going, the
asking question process began by writing text and then clicking submit button to post the question
into the system. When the user (sender) clicks the submit button, he will get a message telling
him that the question is posted over the system.
49
Figure 5.8 shows where users send answers to asked questions, when a user enters the system,
select the question and in the question form, there is a button labeled replay which is the answer
section of the system. After the user clicks that button, the answer box will be opened so the user
must fill the blank spaces to write the answer and then send it.
50
CHAPTER SIX
6.1 Introduction
This chapter includes the works that have been done during the previous documentation of this
project. In addition, this chapter will recover the objectives of the project and illustrates how the
work of this project meets the project's objectives. Also, it discusses the experiences that have
been gained during this project and it includes the future recommendation which captures how to
extend this project in the future.
51
6.3 Constraints and Challenges
During the process of developing this project, some difficulties and constraints were faced. Some
of these difficulties are related to the study of the project and its related topics and others are
related to the implementation and design of the project. The most important challenges faced are
underlined as follows:
1. Implementing the project was very challenging as it needs more analysis of the page's
tags and then specifying the primary and secondary attributes which allow the system to
allow students to code problems and solutions.
2. Writing the thesis and collecting data about it was the most difficult challenge that we
have faced.
3. Following and keeping Halie's thesis format and guidelines were one of the most difficult
tasks to encounter during the writing of the thesis.
4. Consuming a lot of time was one of the challenges confronted during the implementation
of the system.
5. Consuming money to get a high-speed internet connection was one of the challenges
faced to us, internet was important to make research, communicate with the other students
in the group to get information, and work together because we are in different places.
52
APPENDIX A
ABBREVIATIONS
ABBREVIATIONS DESCRIPTIONS
C# C Sharp
IV Initialization Vector
OMG
53
APPENDIX B
5 Analyzing
project
6 Designing
project and
conclusion
7 Thesis
submission
54
APPENDIX C
NO DESCRIPTION AMOUNTS
55
APPENDIX D
TABLES AND FIGURES
ABBREVIATIONS DESCRIPTIONS
TABLES
56
References
1. Sanchiz, E., González, M., Aquino, N., & Cernuzzi, L. (2017). Development of Mobile
Applications with Functions in the Cloud through the Model Driven Approach: A
Systematic Mapping Study (Vol. 20, Issue 6). https://goo.gl/tCnZfn
2. Et al., F., 2021. Augmented Reality Mobile Application as Learning Media in Science
Subject for the Post Gen Z Generation. Turkish Journal of Computer and Mathematics
Education (TURCOMAT), 12(6), pp.2012-2019.
3. Islam, Dr. MD Rashedul & Mazumder, Tridib. (2010). Mobile application and its global
impact. International Journal of Engineering & Technology. 10. 72-78.
4. Kartik Bajaj, Karthik Pattabiraman, and Ali Mesbah. Dompletion: Dom-aware javascript
code completion. In Proceedings of the IEEE/ACM International Conference on
Automated Software Engineering (ASE), page 43–54. ACM, 2014.
5. David Kavaler, Daryl Posnett, Clint Gibler, Hao Chen, Premkumar Devanbu, and
Vladimir Filkov. Using and asking: Apis used in the android market and asked about in
stackoverflow. In Social Informatics, pages 405–418. Springer, 2013.
6. . H. Ip, and Albert HC Tsang. Is naïve bayes a good classifier for document
classification?. In International Journal of Software Engineering and Its Applications,
pages 37–46. ACM, 2011.
7. Yunhui Zheng, Tao Bao, and Xiangyu Zhang. Statically locating web application bugs
caused by asynchronous calls. In Proceedings of the 20th international conference on
World wide web, pages 805–814. ACM, 2011.
57