The University of Cape Town (UCT) is home to about 28 000
students of which about 18 000 are undergraduate students. These
students flock to university grounds, some with uncertainty
about where they want to take their academic careers and some
feeling the need to change their career direction. Thus it is
clear that a need for people to advise these students exists.
To serve these students, UCT has about 5000 staff members of
which 1 184 are academic. This means that for every student
there are 0.06 academic staff members. To add fuel to the fire,
only a small subset of the academic staff are Student Advisors
(SAs). These are staff members who are equipped to be able to
advise students on their academic careers.
The solution is the development of a virtual SA which acts as an
intermediary between the students and the SA. The virtual SA
takes the form of a website that will provide summaries of
handbooks, help students calculate the required credits for
their degrees, host a chatbot and give career direction amongst
other features. This platform is a tool that is not meant to
replace SAs but rather to aid them in their work. This will be
realised by:
-
Students now being able to visit the platform and get all
repetitive and common queries being answered and eliminating
the need for a visit to a SA altogether.
-
A student gaining an idea of what they would like to do and
thus the meeting with the SA being a better use of both
parties' time.
- A combination of the two.
Requirement Analysis & Design
Requirements Analysis
In order to gather a sense of what the requirements were for a
system that would address the problem we conducted a series of
interviews with both students and SAs as they would be the
primary users of the platform. They were able to give us
insights on the sorts of problems they face with the current
state of student advising as well as the kinds of features that
they would like in a platform such as ours. The most requested
features included:
-
A credits calculator to help students calculate how many
credits are needed for them to graduate.
-
An easy to understand summary of the majors/courses section of
handbooks.
- A frequently asked questions section.
These were the items we prioritised in our platform and we added
other features to make it a proficient virtual student advisor.
From this we devised a set of functional and non-functional
requirements.
Functional Requirements
-
Allow users to register as either a student or a SA using
email registration.
-
Allow students to complete their profiles by selecting their
programmes, majors and courses.
- Allow users to see handbook summaries.
-
Allow users to browse through frequently asked questions.
- Allow users to use the credits calculator tool.
-
Allow users to visit the glossary to explain UCT terminology.
- Allow users to see careers related to their major(s).
Non-Functional Requirements
-
The platform should comply with data privacy and copyright
issues.
-
The platform should be able to handle many resource requests
at once.
-
Protect parts of the system where there are restrictions from
unauthorised access.
- The platform should not use excessive bandwidth.
These are summarised in the use case diagram below:
Use Case Diagram for ADVICE Requirements
The technology stack used in the development of this platform is
driven by the use of TypeScript. We decided to use Next.js which
is a React framework. Next.js has all the benefits of React.js
as well as built in TypeScript and Sass support as well as
built-in support for routing, API routes and
client-side/server-side rendering. This allows us to use Next.js
for both the front-end as well as the back-end with Next.js
serverless functions.
To style the platform, we took advantage of Next.js built-in
support for Sass and used Sass. Sass is a superset of CSS. It
gives us the ability to use functions in CSS, nesting rulesets
and several other benefits which simplifies writing the styles.
Lastly for the database we chose to go the NoSQL route with
MongoDB. This is because of the nature of the data that our
platform will be dealing with. We anticipate that a lot of the
data we work with will be unstructured and take on many
different forms and a NoSQL database is perfectly suited for
this. NoSQL performance also remains consistent regardless of
the load that it takes which is important for scalability on
this project. The database is hosted on MongoDB Atlas which is a
cloud hosted cluster of database servers. This helps the
platform to ensure increased reliability and up-time.
This platform uses the industry standard MVC architecture as it
is well suited to our platform and it produces projects that are
scalable and easily extensible. The ideology is that the
platform is segmented in three discernible aspects. Firstly the
model, it is responsible for all data-related logic the user
works with. In our platform, this is represented by the database
models that MongoDB uses as well as the TypeScript interfaces
the front-end uses. Secondly is the view, the view is
responsible for the user interface. In our platform this is all
the front-end components that have been implemented to display
information to the user in an aesthetically pleasing manner.
Lastly is the controller, it acts as an interface between the
model and view components to process all the logic and incoming
requests, manipulate data using the model component and interact
with the views to render the final output. The controller is
realised in our application through all the TypeScript present
in the app for updating state, manipulating rendered components
etcetera.
Handbook Summaries
Our platform uses an in-house PDF Handbook reader to extract the
useful information from the different UCT handbooks and then
stores the data in our database. Once the data is in the
database we synthesise it and displays a more simplified version
than what currently exists in UCT handbooks. This helps students
understand how courses are structured and which courses are
prerequisites/corequisities for one another.
Handbook Summaries
Credits Calculator
The Credits Calculator is a tool that allows students to
evaluate how their current courses' credits compare to the
required credits for their degree. This will help students
ensure that they have enough credits for them to be able to
graduate at the end of their academic career. Students will also
be able to add or remove certain courses to see how it affects
their credits standing. This tool will also recommend courses
that will complete a students required credits according to the
number of credits outstanding and the students current major(s)
registration.
Credits Calculator
UCT Glossary & FAQ Page
To help students better understand terminology and jargon used
across the various UCT platforms, our platform will offer an
extensive UCT glossary (see figure \ref{fig:glossary}). We
understand that whilst we are trying to reduce the need for
visiting UCT platforms by having everything a student would
need, students will inevitably still need to visit UCT
platforms. That makes the existence of a UCT glossary necessary
so that students understand what is being communicated.
Similarly we also have a FAQ page.
Glossary
FAQ
The user tests show that the platform definitely has a place on
the UCT Advising scene. All the participants that took part
expressed positive sentiments about the platform and indicated
that they would use this platform in future. The feedback from
the user tests was incorporated into the platform to iterate and
improve on the usability of the platform.
With all of that being said, the project has not been without
its set of challenges. The primary challenge came from not
having access to UCTs database(s) of study programmes available
at UCT. This meant a solution was needed for getting that
information into a database. Our solution for the problem was a
PDF Reader which reads UCT handbooks. However, the programmes at
UCT do not all conform to one structure. The structures of
majors and courses at UCT are messy and complex and attempting
to create a structure that encompasses them all proved to be
challenging. We had to pull back on some of the features we
intended to implement for this reason.
SAs play a vital role in a students' academic career. This
necessitates that the advice students get need to be the best it
can be. A virtual SA takes the load of the common, repetitive
queries to be taken care of so that SA can focus on the more
in-depth queries. Our platform achieves this by providing
handbook summaries, a credits calculator, a UCT glossary and a
frequently asked questions section to name a few. Through this
platform students will now be able to maximise both their time
as well as the SA's time. This is realised by common, repetitive
queries being handled by both the FAQ section as well as the
chatbot. In some cases this will eliminate the need for a visit
to a SA altogether but at the least, our platform will guide
students in the right direction and where necessary point them
to a SA.