Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 5 Next »

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

Introduction

Circles is a free degree planner for UNSW students aiming to provide a 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 James Ji (Unlicensed) or Jennifer Xu (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.

Tech Stack | Scraper

  • Python is used for web scraping and interpreting course conditions

  • Javascript and Shell is currently used for data processing (can be changed to Python, this is very flexible)

Tech Stack | Frontend

  • React-JS Framework

  • Redux for state management

  • Ant Design component library

Tech Stack | Backend

  • MongoBD database

  • Mongo Atlas for cloud database hosting

  • FastAPI to build our APIs

  • No labels