Giter Club home page Giter Club logo

interactive-prerequisite-flowchart's People

Contributors

chaunmt avatar cocochanel0516 avatar doggu avatar jahndan avatar junminkyu avatar nonononono1 avatar shan3462 avatar sin-ner0 avatar

Watchers

 avatar

interactive-prerequisite-flowchart's Issues

access.ts refactor

It currently does not support allCourses.json—I'm most likely just going to create a separate variant of the default export with slightly altered methods that can't be misused (getCourse by id does not make sense for this file).

  • type definitions and annotations
  • restructure of Access methods (typescript makes a lot of stuff redundant)
  • mostly finished version of it with the common usage stuff fully working
  • general optimisations (no need for clones to be made, maybe manage the redundancy stuff inside the file?)
  • access.ts support for allCourses.json
  • double check for conflict

issue with implementing css

Is anyone else having trouble adding more css elements? I probably have to check the nextjs and reactjs style guide, but :(( yeah
also note that anyone is welcome to arrive at 6PM Mechanical Engineering Building at the CSE Computer Labs, we will be getting a lot of work done!
@nonononono1

Create plan

  1. Each team/person please work on creating a plan on what your team/you need to work on.
  2. Learn how to use GitHub Project and navigate our project board.
  3. Set up your notification or make sure to check the project board frequently.

Fix sources.js

Some functions are not working as expected.

  • spitStringAt("word" or "number") (<1000 courses are not ignored).
  • filterDuplicate() (duplicated prereq course is not deleted).
  • Not a bug (course A is both target and prereq of course B).
  • Remove filter recommendations but keep finding prereqs by certain keywords (Some prereqs are ignored).

Designing

Design the webpages for desktop and mobile. This can be done with any design tools, not necessary code.

Front End Redo

Sketch design can be found in our Figma. They can be used as guidelines and can be changed as need.

Assigned work:

  • Header, Footer : @chaunmt
  • Main Page : @Sin-ner0
  • Subject Page :
  • ID Page:
  • Chart Customized Page:

Themes:

  • Light
  • Dark

Extension Features:

  • Link our graph with the school website.
  • Let the user report errors or give suggestions through a form that pops up or email.
  • Customizable themes.

graph builder refactor for maintainability

"a little functional programming never hurt anybody" but it's also much harder to onboard/maintain when it's incomprehensible

so basically this is a reminder that i should eventually rewrite graph builder using OOP instead for maintainability, although this is a fairly low priority right now as graph builder is currently working (and I'll be here to maintain it for a while) — because eventually someone else will have to deal with that code

also right now it takes multiple root courses and efficiently builds the full graph from them, but I want to rewrite (or at least, supplement) it in a way that allows for caching of graphs built from individual root courses, and then combining them after the fact - this should also play well with any serverless/edge functions we might want to use for this instead (if I maybe want to use python (wasm? 💀) for set-based graph building, once we get accurate and stabilized data)

Page routing and metadata

Right now the dynamic routes accept any possible url

  • dynamic routes only accept valid subjects and ids
  • bare minimum metadata (title)
  • a 404 page should load when an invalid url is used
  • proper metadata generation

Display Team

  • Set up configuration pages (i.e. web resolution page).
  • Set up global color file.
  • Create table of items in back-up plan page.
  • List necessary components that functionality team need to provide.
  • Organize the function components on home page.
  • Home page's css.
  • Set up global page layout (header, footer, sides).
  • 2D flow chart page's css.
  • Redesign home page.

Rename our website

There are many complaints that our current name "Gophers Prerequisite" isn't catchy enough.
What other name can we go with?

Search Bar Update

  • Search can be used for all subject and their id.
  • Search filter options by subject, etc.
  • Restructure the code. Divide its function down into smaller function to diverse our options. Think of it like a constructor Search with multiple functions.
  • Combine search files or distinguish them in a clearer way.

Graph Tool Research

Research on possible tools to be used for our flow chart/graph.

  • Possible tools: Mermaid, Reaflow, Reagraph, Force Directed Graph, ...
  • Criteria: Looks, Interactivities, Ease of use.

Update data

  • Delete courses with level < 1000.
  • '/' should be translated to 'or'.
  • All 'and' 'or' after course id need to be ignored.

Data Team

  • Get the data in.
  • Organize data in an accessible form.
  • Create functions to find course's info, array of course's prerequisites, course's title.
  • Automate your codes.
  • Think about how should we organize the data for the tree charts.
  • Sort data by name for alphabetical display or by id in search bar's recommender box. This can be a separate name array.
  • Find bugs an fix them
  • ERROR: Filter out prerequisite that equal target
  • ERROR: Source file has a typo: 3801 instead of 3081

Deployment

Deploy website on Vercel (?) or integrate with other website (Gopher Grade?).

Spring Cleaning

  • Update your node_modules (delete it, go to main branch, and do a pnpm install).
  • Update your notification settings.
  • Clean up codes.
  • Document your code.
  • Delete unnecessary folders and files (testing etc).
  • Update .gitignore to ignore testing folder and uneccessary folders/files.
  • Create error handlers.
  • Apply error handlers.
  • Moving some codes to TypeScript.

Media Query

Adjustments to different screen's configurations.

2D Chart Team

  • Find helper tools to visualize the chart.
  • Creating chart nodes from provided data (assume data to use while waiting for other teams' function to access data).
  • Create function to map graph from data
  • Put button to graph
  • Hide and unhide subtree functions.
  • Hide and unhide electives selection menu.
  • Allow users to add node to chart from electives selection menu.
  • Delete user added node from chart function. Make sure to distinguish between user added nodes and locked provided nodes.
  • Move user added nodes from one branch to another.

Functionality Team

Navigation

  • Create dummy pages and assigned them with a link value.
  • Choose a way to render the page.
  • Create functions to fetch and load page.
  • Add zoom in and out to page.

Other functions

  • Add course button
  • Add prerequisite button
  • Remove course button
  • Remove prerequisite button
  • Search bar
  • Search results
  • Improve Search filter
  • Pop-up menu on hover or click
  • Highlight prerequisites in table on hover

fix linting issues in components

namely Header.js and FilterSearch.js have linting errors

also it would be nice to set up a thing that prevents pull requests from being accepted while there are still linting errors (after the above two are fixed)

Write README

Our new README file is up. In DOCUMENTATION section, consider adding in a short introduction/guide for your work (either under the already listed item or make a new number for your work).

  • Contribution info
  • Mermaid
  • Reaflow/Reagraph
  • Coursedog API
  • graph generation stuff
  • Generate and access JSON files for data
  • add your work

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.