Ethan Allies
Front-End Developer

Ethan Luke Allies

Built a mobile-first web platform using React.js, Next.js, and Tailwind CSS to revolutionize academic advising at UCT. Designed and developed 8 integrated features including an AI-powered helpbot, interactive degree roadmap, and simplified handbook navigation system.

100%
User Approval
8
Features Built
5/5
Usability Rating
Scroll to Explore

Frontend Development for MyAdvisor

Building a responsive, accessible, and intuitive user interface for UCT's virtual student advising platform

As the frontend developer for the MyAdvisor project, I was responsible for creating the complete user interface and user experience for a web-based academic advising platform at the University of Cape Town. This three-person honours project divided responsibilities between frontend development, chatbot implementation, and database management, with my role focusing entirely on the presentation layer and client-side functionality.

My primary responsibility was to transform complex academic advising workflows into an intuitive, accessible interface that students could navigate effortlessly. Using React.js, Next.js, Tailwind CSS, and TypeScript, I built eight core features including simplified handbook displays, a chatbot interface, advisor communication forms, an interactive degree roadmap, FAQ sections, glossaries, advisor directories, and course catalogs. Each component was designed with a mobile-first approach, recognizing that many UCT students primarily access university resources through smartphones.

The frontend architecture emphasizes component reusability, accessibility compliance (WCAG 2.1 AA), and performance optimization. Through iterative development and continuous user testing with 18 students, the interface achieved unanimous 5/5 ratings across all usability metrics, with participants describing tasks as "very easy" and strongly recommending UCT adopt the system. This page documents my individual contribution to the project, showcasing the design decisions, technical implementation, challenges overcome, and evaluation results that validate the frontend's effectiveness.

Goals & Motivation

Problem Statement

Even though digital tools are easily accessible, many UCT students struggle to use them efficiently. Since many students use mobile devices, the main obstacle is not hardware or internet connectivity, but rather the usability of the current information systems. Interpreting faculty handbooks, figuring out prerequisites for courses, and deciding which courses to enrol in after failing or passing a subject are all common challenges for students.

Confusion, repeated advisor consultations for simple facts, and inefficiencies in the advising process are caused by these problems. Answering queries that could be automated or made simpler with the correct technology is a burden for advisors themselves.

Primary Objectives

Provide centralized, user-friendly access to academic advising resources in an approachable, well-structured format

Design a responsive, mobile-first interface accessible across smartphones, tablets, and desktop computers

Reduce repetitive advisor consultations by providing automated assistance through the Helpbot and comprehensive resources

Empower students with visual degree planning tools that clarify prerequisites and course eligibility

Design Philosophy

MyAdvisor's main goal is to provide UCT students with a centralized, user-friendly platform for academic advising. The platform presents academic information in an easy-to-understand, well-structured, and engaging way, unlike existing handbooks and portals that require students to navigate complicated content and fragmented online interfaces. The solution supports desktop or laptop use as well as mobile devices to give students freedom and accessibility across the platforms they use most frequently.

Technologies Used

React & Next.js

Modern React framework providing server-side rendering, routing, and optimal performance for building the application structure and component hierarchy.

Tailwind CSS

Utility-first CSS framework enabling rapid, consistent styling with responsive design patterns and custom theming capabilities.

shadcn/ui

Accessible component library built on Radix UI primitives, providing pre-built, customizable components that follow best practices for accessibility.

TypeScript

Type-safe JavaScript superset ensuring code reliability, better developer experience, and catching errors during development rather than runtime.

Backend Integration

The frontend integrates with a Django REST Framework backend and PostgreSQL database. The three-tier architecture (presentation layer, application layer, and data layer) ensures scalability and maintainability, allowing for future modifications without interfering with current operation.

Design Process & UI Development

Development Methodology

The Agile technique was used to incorporate frequent feedback from student testers and enable iterative development. Because we place a strong focus on flexibility and incremental delivery, agile methods are particularly useful for student-facing projects whose needs change frequently. This was essential for coordinating development with the institutional requirements of UCT and user expectations.

1

Requirements Gathering

Collected feedback from advisors and students, analyzing constraints from the 2021 ADVICE project. Students cited difficulty using current handbooks and portals, while advisors emphasized repetitive questions that could be automated.

2

System Architecture Design

Designed a three-tier architecture with clear separation between presentation, application, and data layers. This modular design allows for future modifications without interfering with current operation.

3

Component Development

Built reusable React components following atomic design principles, ensuring consistency across all pages and features while maintaining mobile-first responsiveness.

4

Iterative Testing & Refinement

Conducted continuous user testing with 18 students, incorporating feedback to refine usability and accessibility. Regular team meetings and code reviews maintained consistency across the full stack.

Design Principles

01

Mobile-First

Designed for smartphones first, then enhanced for larger screens

02

Accessibility

WCAG 2.1 AA compliant with proper ARIA labels and keyboard navigation

03

Usability

Intuitive for students with limited technical skills

Core Frontend Features

Simplified Handbook Display

Streamlined access to Science and Commerce faculty handbooks

Students no longer must interpret complex text to access degree requirements and course information thanks to the simplification and organization of faculty handbooks. Faculty handbooks were parsed into a structured database, allowing students to dynamically search, filter, and explore. This enhances mobile usability and accessibility, reducing confusion compared to static PDF documents.

Helpbot Interface

AI-powered chatbot interface for common advising inquiries

Created a conversational UI with message bubbles, typing indicators, and suggested prompts. The Helpbot is an AI-powered chatbot that can handle common advising inquiries and lessen the workload for advisers. It is educated on UCT-specific data and previous student inquiries, providing prompt answers and raising complex problems to advisors when needed.

Ask an Advisor Feature

Structured communication channel for direct advisor queries

A function that enables students to send inquiries straight to the relevant adviser, categorized to guarantee that requests are routed effectively. Built a comprehensive form with validation, file upload capabilities, and clear feedback messages, acknowledging that certain questions still need to be answered by a human. This ensures the most qualified employee responds to questions, improving response efficiency and accuracy.

Degree Roadmap Tool

Interactive visualization of academic progress and course eligibility

The platform offers a degree roadmap tool that helps students better plan their studies by visualizing their academic progress and using pass/fail outcomes to determine course eligibility for upcoming years. Developed an interactive roadmap showing course sequences, prerequisites, and degree requirements with filtering and search functionality.

FAQ Section

Searchable database of frequently asked questions

Students have instant access to typical responses through a searchable database of commonly asked questions built from previous inquiries. This enhances the Helpbot by providing a static fallback option, as students frequently prefer self-service solutions before interacting with chatbots.

Glossary

Comprehensive academic terminology reference

First-year students and individuals who are not familiar with higher education surroundings can understand academic and institutional terminology thanks to a well-organized glossary. The terminology is a significant barrier to students' use of academic portals, making this feature essential for accessibility.

Find Advisor Directory

Searchable directory of advisors by faculty and expertise

The advising process is made more transparent and navigable with a directory of advisors that can be searched by professor and area of expertise. This addresses student frustration when they are unsure of "who to ask" for specific questions.

Courses Page

Interactive course catalog with filtering and search

Requirements, prerequisites, credits, and descriptions are shown in an interactive course catalog designed for dynamic navigation and filtering. Implemented accordion components and tabs for organized information display with quick access to relevant sections, directly addressing students' needs for simplified course discovery.

Challenges & Solutions

Responsive Design Across Devices

CHALLENGE

Ensuring consistent performance across smartphones, tablets, and desktops. The degree roadmap was particularly challenging to display on mobile due to complex course hierarchies.

SOLUTION

Implemented mobile-first approach with collapsible sections and horizontal scrolling. Added toggle between list and visual views based on device size.

Helpbot Integration

CHALLENGE

Performance issues with long conversation histories caused lag. Unclear student queries challenged the NLP algorithms.

SOLUTION

Implemented virtual scrolling and message pagination to render only visible messages. Added optimistic UI updates for responsive feel while awaiting backend responses.

Security & Privacy Compliance

CHALLENGE

Meeting POPIA compliance for sensitive student-advisor communications. Ensuring WCAG 2.1 AA accessibility standards while maintaining modern design aesthetics.

SOLUTION

Implemented encryption and authentication for secure communications. Conducted thorough accessibility audits with proper ARIA labels, keyboard navigation, and sufficient color contrast.

System Performance at Scale

CHALLENGE

Anticipated performance bottlenecks during peak loads like course registration periods.

SOLUTION

Optimized rendering with React memoization, implemented code splitting for faster loads, and used efficient state management to minimize re-renders.

Testing & Evaluation

5/5

Task Difficulty Rating

18

Participants

100%

Recommend UCT Adopt

Evaluation Methodology

The purpose of the MyAdvisor evaluation was to gauge the system's functional efficacy as well as non-functional attributes that affect adoption, like usability and design quality. Eighteen undergraduate students from the faculties of Science and Commerce participated in a user testing study. Ten representative advising tasks spanning the primary system features were required of each participant.

Participants were asked to rate the difficulty of each task after doing it, with 1 denoting "very hard" and 5 denoting "very easy." The overall design and the possibility of institutional adoption were evaluated by two further non-functional evaluation questions. This evaluation methodology was selected in accordance with best practices in usability research.

Functional Evaluation Tasks

Retrieving course prerequisites

Create an account

Locating an advisor in the Find Advisor page

Submitting a question through Ask an Advisor

Browsing courses and credits

Using the Helpbot for FAQs

Navigating the FAQ section

Consulting the glossary

Viewing progress through degree roadmap

Comparing handbook information

Key Findings

Functional Success

The majority average of 5 evaluations from all 18 participants were significant since they showed that students found the system to be user-friendly and intuitive in addition to proving its technical functionality. The system successfully addressed the main pain points found in previous research and throughout the project motivation phase.

Design Quality

Participants gave the design a 5/5 rating, validating the mobile-first, accessible approach. The clean visual hierarchy, intuitive navigation, and responsive layout were particularly praised by users.

Institutional Value

The resounding support for institutional adoption underscores MyAdvisor's capacity to revolutionize UCT advising. All participants unanimously recommended that UCT implement the system, demonstrating strong confidence in its real-world applicability.

Reflections & Learnings

Project Impact

The platform successfully resolved recurring student advising issues at UCT. Results showed considerable decreases in task completion time and error rates when using the streamlined interface versus static PDF handbooks.

Technical Growth

Gained deep experience with React ecosystem, modern state management, and performance optimization. TypeScript improved my ability to write maintainable code, while Tailwind CSS taught utility-first design and mobile-first responsive patterns.

User-Centered Design Validation

User testing revealed assumptions about behavior that didn't match reality, reinforcing the importance of iterative design and early feedback. The 100% satisfaction rate validated our user-centered approach and continuous refinements.

Collaboration and Integration

Working with chatbot and database team members taught valuable lessons about API design and clear documentation. The three-tier architecture enabled concurrent development and maintained consistency across the full stack.

Future Potential

Unanimous positive response highlights potential for institutional adoption and scalability beyond Science and Commerce faculties. The architecture provides a foundation for expansion throughout UCT and potentially to other universities.

Credits & Acknowledgements

Project Team

  • Ethan Allies - Frontend Development (React.js, Next.js, Tailwind CSS, TypeScript)
  • Dylan Howard - Chatbot Development (NLP, Hugging Face Transformers)
  • Mitchell Flanegan - Database Development (Django REST Framework, PostgreSQL)

Supervision

Aslam Safla, Department of Computer Science, University of Cape Town

Special Thanks

Thank you to the 18 UCT Computer Science students from the Science and Commerce faculties who participated in user testing and provided invaluable feedback that shaped the final product. Your insights were instrumental in achieving the unanimous 5/5 ratings across all evaluation metrics.Thanks to Craig Balfour for setting up the server and providing help with management.

References

This project builds upon insights from the 2021 ADVICE project and incorporates research on chatbot-driven advising systems, hybrid AI-human platforms, and mobile-first usability approaches in higher education.