Skip to content

chaunmt/Flowchart-Data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📖 Introduction

This repository includes all classes and methods that are used to fetch, process, write, and publish data on to the data server for Course Flowchart.

Table of Contents

📈 Data

1. Where are they from?

2. What are they like?

  • Necessary data are read as JSON from Coursedog API. They are then processed based on the project's usages. Prerequisites data are heavily processed from a natural language format into a logical structure that increases readability and allows ease of access for Course Flowchart graphbuilders.

3. How to access them?

  • Data are saved in the data folder.
  • Processed data will also be added into the main repository (Course Flowchart). They can then be access by the Access (.ts or .js) file in the data folder.
  • Attempts were made to add the data into a PostgreSQL on Vercel. However, Vercel's low limits for free tier and the complicated nature of the nested logical structure of prerequisites hinders our progress to transfer to this format. Some data (Subject's code and name etc.) are already availlable on this server and can be accessed if desired. Please contact the project lead if you want to access these data.

4. Python UML

🐍 Python

  • Currently, our system involves a Course System (Course Flowchart) and a Program System (to be implemented as a collaboration result with Gopher Major Planner).

  • This is a sketch describes how client communicate with our project:

  • To run the project from src directory:

    python3 -m python.client
    
  • The Python project involes 7 majors packages, each associate with a certain task. Each packages can include multiple packages or modules associated with a specific task or system.

  • The first 3 packages are low level tools:

    • Checker
      • Check whether something is true or false.
    • Splitter
      • Split an object into a list of something.
    • Converter
      • Convert an object from one type (or form) to another.
  • The next 2 packages are used to extract and sanitize a course's prerequisites.

    • Extractor
      • An interface calling to pre-process, extract, and post-process a course's prerequisites.
    • Filter
      • A tool used to remove unnecessary parts from an object.
  • The last 2 packages are other tools more related to our API and main project (Course Flowchart):

    • Schema
      • These schemas are used mostly as a reference point to the schemas used in Course Flowchart.
      • They are also used to post-process and test our data.
    • Sources
      • This packages contains all handlers to the file systems and API requests.

🔍 Test

  • The test directory contains all test modules for our project.
  • To run all tests:
    pytest -q
    
  • To run a module test:
    pytest -q [file_path]/[test_module_name].py
    

🔖 Archive

  • Obsolete codes that are used for references.

About

Course Flowchart's Data Server

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages