Hello there! This is the webpage for
An All-in-one HKU App for Students
To foster a warm and close-knit student community at The University of Hong Kong (HKU) and integrate various student-centric functionalities into a unified platform, this project has developed a mobile iOS application named “Mane”. The application is characterized by a modern, intuitive design and an intelligent assistant for information retrieval. It is built with Swift and SwiftUI for the frontend, while employing Go, gRPC, and Supabase for the backend. The backend can be automatically built and deployed after changes are made to the main branch of the codebase by utilizing Dockerfile and Google Cloud Platform’s Cloud Build and Cloud Run services.
To retrieve academic data (transcripts, course enrollment status, and student timetables) from the user, a local scraper is used to retrieve data directly from the HKU Student Information System (SIS). Course reviews utilize the scraped transcript data to ensure only students who have taken the course can leave a review in the PostgreSQL database. The Campus Events feature allows students to browse and apply for events hosted by different organizations. The iOS client also integrates OpenAI’s GPT-4 Turbo model to power the chatbot or assistant feature, providing context and information like the user’s transcript or reviews for a particular course to the model for auto-chat completions.
During the development process, several challenges were encountered, including the complexity of integrating with HKU’s legacy systems, limitations of SwiftUI for advanced UI development, and the need for frequent updates to the scraper due to changes in HKU’s website flows. However, the project also leveraged advanced tools like GitHub Copilot and Galileo AI for code development and UI generation, respectively, which greatly enhanced productivity and facilitated rapid prototyping.
Despite the limitations and difficulties, the project achieved positive outcomes, such as effective utilization of modern programming languages like Swift and Go, and valuable insights gained from research on design patterns, user security, and architectural best practices.