/
About Circles

About Circles

 

For setting up Circles locally, please follow the instructions provided on the GitHub README’s

 

Introduction

Circles is a degree planner for UNSW students aiming to provide an easier way to plan when to take their courses and explore potential courses available and review their degree progression. We have 3 pages which aim to achieve our mentioned goals: Course Selector Page, Term Planner Page and Degree Progression Page.

If you have any questions, please contact either @Hussain Nawaz (Unlicensed) or @Leonardo Fan (Unlicensed).

UNSW Handbook Scraper

In order to get the data for the courses, we scrape the UNSW handbook. However, the enrolment conditions for courses are written in plain English. We use several tricks to process the condition text, mainly involving regex. After this data is cleaned up and organised, it is ready to be used.

Data Processing

(Currently, we simply store this data locally in plain text. In the future, it will be stored on the cloud and loaded as needed).

The data required for each program is different (the courses for SENGAH are completely different to the courses for ACTL for example). This is why we must process the data again specifically for each program. This involves several things, some of which are:

  • Making manual fixes to the data (e.g. spelling mistakes, program specific changes, etc)

  • Organising any other information which might be useful (such as a list of courses required by this program, etc)

Flowchart + Progression Checker

The flowchart is very interactive and allows people to click on courses to select/unselect them. Selecting a course unlocks other courses. Unselecting a course locks courses. Due to the complex nature of UNSW enrolment conditions, this step is very algorithm heavy and requires constant communication with the Webscraping team.

At UNSW, you must meet certain requirements in order to complete your program. For example, in SENGAH, you must complete all your level 1, 2, 3 and 4 core courses, 36 units of Discipline Electives, 168 total units, etc. We track this using the progression checker.

Tech Stack | Scraper

  • Python is used for web scraping and interpreting course conditions

Tech Stack | Frontend

  • React-JS Framework

  • Redux for state management

  • Ant Design component library

Tech Stack | Backend

  • MongoDB database

  • FastAPI to build our APIs

 

 

 

 

 

 

 

 

Related content