Professional Documents
Culture Documents
Gibert Lopah TCFL KNECT 5555
Gibert Lopah TCFL KNECT 5555
ID NUMBER: 63-2197575 S 63
CO-SUPERVISOR: MR NCUBE
1|Page
ABSTRACT
2|Page
DECLARATION
I, GILBERT T. LOPA hereby declare that I am the sole author of this dissertation. I
authorize TELONE CENTRE FOR LEARNING to lend this thesis to other
institutions or individuals for the purpose of scholarly research.
Signature _________________________________
Date _________________
3|Page
APPROVAL
Supervisor:
Date:
4|Page
ACKNOWLEDGEMENT
I would also, like to take this opportunity to thank my family members for their moral and
emotional support they showed me throughout my studies. Ultimately, above all my gratitude
goes to God the Almighty for the gift of life, wisdom and strength to pull through. May the
Lord abundantly bless those who had an impact in this research.
5|Page
CONTENTS
CHAPTER I ............................................................................................................ 9
1.1 Introduction.................................................................................................... 9
2.0 Introduction.................................................................................................. 12
3.1 Introduction.................................................................................................. 16
6|Page
3.3 Overview of Proposed System...................................................................... 16
4.1 Introduction.................................................................................................. 20
5.0 Introduction.................................................................................................. 27
REFENCES ....................................................................................................... 34
7|Page
8|Page
CHAPTER I
1.1 Introduction
COVID 19 has resulted in countless hardships, lockdowns and closures of institutes and
social gatherings. As a result, movement of knowledge was affected to a greater extent
as students all over the TCFL campus failed to reach other colleagues’ and share
information and resources.
Not that, we observed that students over the campus that hold information are not
popularly recognised, meaning that if a different student wants to obtain knowledge
about a certain module, he/she might fail to obtain the knowledge due to not knowing
were to attain it from.
Viewing from a global approach programmer over the world failed to get answers over
a specific error/bug they were currently facing, which lead to a majority of them being
stuck mid-way (project wise). As a solution, a group of programmers developed a
world-wide community where programmers post their errors and faulty code and get
instant answers from other programmers.
9|Page
1.3 Problem Definition
The “new normal” brought on forward by this pandemic, lockdown and isolation
measures has caused several challenges for junior programmers at TelOne, leaving most
of them isolated.
With this, if a student faces a challenge, he/she won’t get sufficient help from remote
areas leaving him/her with countless unsolved queries. If students are spread-out
movement of information will be low thus a need for an integrated community.
1.5 Aim
Promote movement of knowledge and assist other colleagues in terms of attaining the
knowledge.
1.4 Objectives
➢ Develop a community for the campus.
➢ Students should be able to post a question in text or code
➢ Get accurate answers from other colleagues.
➢ Promote movement of knowledge during this pandemic
1.5 Functionality
From the begin student has to create to the system using his campus credentials. After
account creation student will have to login into the so that the system track user
activities and store history. Student is only then allowed to post a question or answer
10 | P a g e
questions from other colleagues. Student is also permitted to search for a question and
obtain tagged answers to the question.
The system permits students to chat with an individual who provided the answers and
source. The Dashboard for the student permits them to delete old posts, edit credentials
and edit their bio. Dashboard also displays their history (such as previous posts and
answers), personal information and make changes if one intends to.
1.6 Hypothesis
H Null Hypothesis: Student might not get help from other colleagues living the user
stuck
H False Hypothesis: Student might be given false information regarding the question
H Misuse Hypothesis: Students will most likely use the platform for social reason
purposes and de-rail from academic visions
1.7 Justification
There are other exiting communities like Reddit where individuals can post questions
online and get instance feedback. Reddit is world Wide knowledge base for individuals
of any profession but as a downfall it’s hard to get answers on Reddit pertaining
Zimbabwean history or the Political, Economic and Social structure of it. Hence the
need for a community built for Zimbabwean students and provide them a “Feel at
Home” environment (as in answers can be in Shona for better understanding)
1.8 Conclusion
In conclusion this platform is outer-most important to a higher extent because in a way
it bring all TCFL students in one place and share knowledge and information new
technology and new coding methods etc.
11 | P a g e
CHAPTER II: PLANNING PHASE
2.0 Introduction
In this chapter the planning phase of the system shall be discussed in relation to “why
we should build the system” and its tangible benefits. The workflow of how the system
will be built shall be clearly to obtain a better visual concept of how the development
process will be approached.
As an indication that time is rushing fast and as a Technical Institution, we should try
by all means to catch to the world. If the mentioned system should be built, it will make
students life much easier and enjoyable as help will easy access anywhere and anytime.
12 | P a g e
2.3 Overall Benefits
13 | P a g e
2.4.2 Economical Study
In this case, student should have an internet connection with the minimum speed that
only allows to load new features or user profile updates, and external links. The other
issues to address are the application hosting costs to be incurred upon deploying the
application. The costs are however taken note of, including monthly and yearly
packages.
Problem
identification
Literature
review
Research
Design
and Coding
Testing
Evaluation
14 | P a g e
Documentation
2.6 Conclusion
To conclude, the planning phase is a very essential stage of any sort of project. It shows
the stakeholders what is expected and the tools involved. This stage showed us that we
will be using tools like Node.js and Neo4j for the project. The combination of the
information gathering techniques mentioned above, pillar us of what our targeted
population needs and expectations. With all these factors in consideration, the project
is very much feasible to implement.
15 | P a g e
CHAPTER III: ANALYSIS PHASE
3.1 Introduction
This chapter presents the analysis of the existing chapter and analysis of the proposed
system in depth. In this section, presentations on the research, data analysis, design and
logical flow of the proposed system will be drawn and explained in details. weakness
and strengths of the current system, data analysis and evaluation of alternatives.
With this we now know any question posted on Reddit that is inline to the TCFL
syllabus will not get answered. Reddit does not offer that “feel at home” environment
i.e., compared to posting a question on a familiar environment where answer can be
explained in your native language. Getting an answer for a different module (i.e.,
according to TCFL syllabus) is not guarantee. Getting an answer on Reddit might take
long which is a disadvantage to the questioner
16 | P a g e
be allowed to send query to a direct colleague. The proposed should promote movement
of knowledge regardless of the COVID 19 restrictions.
➢ Most answers posted on Reddit do not cover the modules done at TelOne Centre for
Learning for example NASS
➢ Reddit does not offer that “feel at home” environment i.e., compared to posting a
question on a familiar environment where answer can be explained in your native
language
➢ Getting an answer for a different module (i.e., according to TCFL syllabus) is not
guarantee.
➢ Getting an answer on Reddit might take long which is a disadvantage to the
questioner
17 | P a g e
3.7 Requirement analysis
A software requirements definition is an abstract description of the services which the
system should provide and the constraints under which the system must operate.
Requirements define a list of system needs to make it meet goals / objectives for which
it is being designed. In this case we have two types of requirements namely functional
and non-functional requirements.
1. Student Login
2. Authenticate Credentials
3. Get user input (question / answer to a question)
4. Store input in database
5. System should permit students to tag question to other colleagues
6. This system should allow students to like and rate a given answer
7. System should allow students to chat each other and discover more information
and knowledge from their peers
8. Provide student performance for analysis
18 | P a g e
3.8 Conclusion
In conclusion the analysis phase of the system label how the system will function and
its overall benefits over the current system (Reddit).
19 | P a g e
CHAPTER IV: DESIGN PHASE
4.1 Introduction
In order to attain best results before the actual implementation, various design
techniques were manipulated in order formalize and layout the system. In this chapter,
system diagrams and data flows will be design to a attain a better visual picture of how
the system will move its data, handle processes and the input and output of the system.
PUT
Home Validate
Interface feed
Discover
GET
GET
20 | P a g e
Having three branches i.e., Front-end, Server-side and Database, data will be moved in
this manner and vice versa. Front end contains what the student pictures, that is buttons
and input field and data fetched from the database. Server side is responsible for
managing and booting the server online. Also responsible for validation of the input
from the user and pass it to the database for storage.
However, if the feed if categorised as an answer to related topic student must fill in the
Answer Body field (contains explanations and solutions to the question) and a Code
Snippet (contains the corrected code)
Fill in fields
INPUT INPUT IS
• Title
• Tags PROCESSED
USER • Head
• code
Answer to Question
INPUT
• Body
• Code
USER
21 | P a g e
4.4 System Processes
System processes define the process that will be called when a certain situation arrives.
The server section of the system will handle most of the core processes that will carried
out from authentication, Event-emitting, error handling, POST functions, GET
functions and DELETE functions. The server side should be able to grab information
sent by the user and perform these events and updating the database as well. The
diagram below indicates how the POST functions will handle movement of data.
POST
USER
Save Grab
Sessions Information
PROCESS
FIG 5 Process
22 | P a g e
and their answers, list of Students suggested to other students and students second level
information.
DATABASE
VIEWS
Append to pages
FIG 6 Output
23 | P a g e
Front- End Middleware Data-layer
Session Service
GET Graph Database
POST
Service Service
Security Service
GET Validate
Service Service
System Service
Task Error
management handling
Each relationship is indicated by the use of arrows and labelled with a name. For an
instance the Question node relates to the student node through a BELONG_TO
relationship. Which in short means that the student node is the parent to the Question
node. Other relationships for the system include CHATS (allows student to chat with
each other), VISIBLE_TO (allows students to see posted feeds), ASSOCIATED_TO
24 | P a g e
(throughs post to student that focus on a particular module)
:STUDENT :STUDENT
CHATS
~ username ~ username
~ email ~ email
~password ~password
:Answer
~ id
~ body
~code :Question
~ title
~ tag
~body
:Tags
~code
~ student_id
~ main_lang
~password
25 | P a g e
FIG 9 Presentation on how student nodes, question nodes and answer nodes will ineract
4.8 Conclusion
To conclude the section, the discussed designs will be in use to a greater extent since
they layout the inner workings of the system and how it will move its data.
26 | P a g e
CHAPTER V: IMPLEMENTATION AND TESTING
5.0 Introduction
This chapter talks of how the implementation, testing, security, installation and
maintenance of the platform will be performed.
➢ Node JS
o Express
o Body-Parser
o Session
o Neo4j Driver
o Multer
➢ JavaScript
➢ EJS
➢ CSS and Bootstrap
The system was divided into two sections i.e., the frontend and the backend. The
primary focus of the backend was handling movement of data from the frontend and
process it into the backend. For instance, the following code snippet showed below
indicates the platform connects to the database and perform CREATE, READ,
UPDATE and DELETE operations.
The backend also contains in built security functions that restrict malicious redirects,
Cross Site Scripts and SQL Injections.
27 | P a g e
BACKEND (NODE JS) CODE SNIPPET
28 | P a g e
driver_session
.run(query)
.then(results =>{
if(results.records.length > 0){
res.json({
status:true,
id: results.records[0]._fields[0].identity.low
})
driver_session.close()
}
else{
res.json({
status:false
})
}
})
.catch(err=>{
console.log(err)
})
})
app.post("/add/user/",urlenCoded,(req, res)=>{
let fullname = req.body.fullname;
let username = req.body.username;
let std_no = req.body.std_no;
let email = req.body.email;
let std_password = req.body.std_password
let std_IDNo = req.body.std_IDNo
let driver_session =handleConn()
driver_session
.run("CREATE (n:STUDENT {fullname :$fullnameParam, username:$usernameP
aram,std_no: $std_no ,std_IDNo: $std_IDNo,email:$emailParam, password:$passwor
dParam, admin:'false'}) RETURN ID(n) as ID",
{fullnameParam:fullname,
usernameParam:username,
std_no: std_no,
std_IDNo:std_IDNo,
emailParam:email,
passwordParam:std_password}
)
.then((results)=>{
if(results.records[0].length > 0)
{ res.redirect("/")}
driver_session.close()
})
.catch((err)=>{
console.log(err)})
})
29 | P a g e
On the other end the front end focuses on making fetch statements and populating the
pages with the data. Also responsible session handling and user interactions to requests.
For instance the code below show the platform will post an answer to a proposed
question.
function openMessageBox(message){
let alertField = document.querySelector(".alert-field")
alertField.querySelector(".message-
box").querySelector("p").textContent = message
alertField.classList.remove("deactive")
}
function handleAnswering(q_id){
window.sessionStorage.setItem("qID", q_id)
loadModel()
}
/*
*POST ANSWER FUNCTION
*/
function postAnswer(){
let answer = document.querySelector("textarea[name='answer']").value;
let code = document .querySelector("textarea[name ='code_snippet']").valu
e;
fetch("/submit/answer/", {
method:"POST",
headers:{
"Accept":"application/json, text/plain, */*",
"Content-type":"application/json"
},
body:JSON.stringify({
answer: answer,
code: code,
studentIDNo: window.sessionStorage.getItem("std_IDNo"),
id: window.sessionStorage.getItem("qID")
})
}).then(data =>{
if(data.status){
let modelBody =document.querySelector(".model-body")
modelBody.querySelector(".btn.btn-primary").disabled = true
closeModel()
openMessageBox("Answer Successfully added")
closeMessageBox()
}
})
}
30 | P a g e
5.2 Testing
Testing phase translates a software design into source code and to ensure that
individually each function is working correctly. A series of tests will be done namely
White Box testing (Primarily focuses on testing the users point of few i.e., clicking
buttons and loading pages with errors), Black-Box testing (Primarily focus on the
actual code and sees if each function is be called correctly), and pressure testing (checks
how the system will behave under pressure and sending too much data at the same time).
31 | P a g e
and throw thrown to the
question to the community
community
Answer a Fill in the Pop up Information MET
question fields appears and was saved
answer is
linked to the
question
Add a like to a Click on heart Added like to Like was MET
vote to like answer added to a
answer
5.3 Security
Security is the outer most import aspect of a system and for this case, with the use of
node-JS which has in-built security measure that prevents the system for malicious
attacks such as Cross-Site Scripting, SQL injection and brute-force attacks most of the
security functions will be developed already and ready to be used. For user verification,
the student must first log-in into the system using his/her unique ID (T18*****V) and
password. The system from there will verify the entered fields and if there validate the
student will proceed to the system.
5.4 Maintenance
Minor Changes
If show-stopping bugs, discrepancies, misspellings, etc. are found the most recent
system-approved version of this system, there is a fast track that allows rapid
troubleshooting. These changes need to be brought up to the system developer for
approval. If the he agrees to adopt these changes a new minor release can be created
that keeps its draft status, but is released for implementation.
Major Changes
32 | P a g e
New features, major renaming or other changes that affect the system and its
implementers are supposed to be developed within a working group and to be submitted
to the system developer approval. Unapproved changes from prior minor changes
should be merged into these versions.
33 | P a g e
answers and question with the use of SMS’s. However to make this improvement the
system must be hosted online and that would increase the cost of implementing that.
REFENCES
1. Laal, M., & Ghodsi, S. M. (2012). Benefits of collaborative learning. Pr
34 | P a g e