Introduction

Background

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

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

Methods

Technology Stack

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.

Architecture

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.

Features

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

Results

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.

Conclusions

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.

Documents