GithubHelp home page GithubHelp logo

relatable-course-visualization / relatable Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 0.0 2.72 MB

Relatable is an interactive course detailer for the University of Saskatchewan. A user searches for a course, and the application displays its prerequisites, dependencies, and other useful information.

Home Page: https://relatable-server1.vercel.app

HTML 0.83% JavaScript 9.93% Python 84.48% CSS 4.75%
dango mysql python reactjs university-course-graph university-planner courses university-of-saskatchewan

relatable's Issues

Complete_DB_Functions

Need to create the following functions and post/put functions:

  1. Clean_Preq
  2. Marked_Preq
  3. Dependencies

It will likely be helpful (and necessary) to create helper get function from DB.

Search Bar

Create search bar for the home page. Leverage MUI for for easy styling. Make use of old logic as much as possible as that correct hit the endpoint for collecting all the courses and correctly maps them with searchability.

Create test data for machine learning

Today or tomorrow I will create a text document that contains source prerequisite strings for us to manual convert to formatted test strings.
Here is an example of how the text will look initially:
Fraser
CMPT 145 or CMPT 115 or CMPT 117.
CMPT 214.3 and one of MATH 104.3, MATH 110.3, MATH 123.3, MATH 125.3, MATH 133.4, MATH 176.3, or STAT 245.3 (or equivalent).
...
Marmik
....
Kyle
...
Ini
...

Convert the strings under your name. See the document on one drive for the rules for this. Separate the original string from the converted string with a tab.

special course card for non-catalogue courses

In #38, courses not in the catalogue were added to the CourseTable2023 table using a new column not_in_catalogue. 0 indicates that the course exists; 1 indicates that it does not.

The course card component should include conditional rendering to render a course not in catalogue UI if the given course is not in the catalogue.

The logic for this from the endpoint should be complete from #36 . This issue simply focuses on creating the conditional UI render.

Blocker: #36

update course button UI

Current the buttons rendered for prerequisites and dependencies are the default MUI buttons.

Improve the UI so that they

  • Aren't too large like they are right now
  • Match Relatable color scheme
  • Look less like traditional buttons

Screenshots:
image

Blockers: #36

Update Database Documentation

Due to database refactoring, the Course table has changed and the Prerequisite and Dependency tables have deprecated. Update these tables in the documentation to reflect the current state. Wait until #38 is complete to add that change as well (if there is a change).

Maintain the current documentation as V1 and add new documentation at the top as V2.

Blockers: #38

ENVE 432 Bug

The parsing was incorrect with the "299"

We can either just change this manually, or create a more appropriate solution for this use case.

image

contact us page

Create a contact us page.

Little bit more complex due to form submission (not just a UI ticket). If we want to spend time elsewhere and add this at a later sprint once deployed, we can definitely do that.

Use MUI for all components and styling--do not have an additional CSS page. Reference Marmik's new MUI code here: https://github.com/marmikpatel19/marmikpatel19.github.io/tree/version-2

Tasks

Designs

  • Finalize designs
  • Upload them onto a "design" folder in the main root directory
  • Create a .md file for typography & color: colors (primary and secondary), font-style, font-sizes (for headers, text, etc.)

Courses not in Catalogue

As we discussed on Wednesday, some preq strings reference courses that are no longer offered at USask. We would like to add these courses into DB, however, they must have a clear flag. The file 'postDependentCourses.py' has a notInCatalogue list
which stores all course codes that do not have a matching row entry in the db (and therefore are not in the course catalogue). We would like to add these to the db and create a flag for them. Create the flag as you see fit, however, if you add another column (which you likely will need to), you will have to edit models and all other post/put functions. Big picture:

  1. Decide how to flag courses and make this update in all the affected files
  2. In post dependency, post all courses not in catalogue to DB with the flag

Server down

404: NOT_FOUND
Code: NOT_FOUND
ID: cle1::lkxjr-1695705142303-ad45a5a52054

Consider move the deployment to other provider / ask Greg for hosting it somewhere in usask?

Course Card

Use MUI for easy card styling.

Some complexity with hover; should be a common use case for expanding a card (probably tutorials online)

  • Consider attaching an event handler on the component for hover which runs a function to display additional data
  • Consider conditionally rendering two versions of the components (closed and expanded) because on event handler onHover

Once done, we can create a new branch to add this component inside the .map that renders from the search bar component.

refactorDB

There are a variety of subtasks needed to complete this including:

  1. Decide on how we will store newly formatted strings
  2. Parse formatted strings so that they are in a proper data structure to post
  3. Refactor existing POST functions
  4. Refactor dependencies to include string and weak
  5. Rescrape AND retest form conversion as course catalogue has been updated

footer covers show more button

There is a "show more" button on the search component. The Search limits the number of shown courses to 10 and allows repeated display of 10 more every time the show more button is clicked. However, the footer seems to be hiding this button.

Screenshots

At the bottom of the page but the button is not visible.
image

refactor footer

For smaller mobile size, the vertical footer takes up too much space, leading to poor UX. Reduce the spacing between components to mitigate this issue.

For larger screen sizes, it is also too big. See second screenshot

Screenshots:
image
image

Integrate Course Card with Search

The course card component is currently developed as an independent component. Integrate it within Search to render when the user search. Also, integrate logic to handle clickable-UI for courses. Checking for non_in_catalogue should be done, but the UI does not need to be; this is done in #43.

Blockers: #30

clean up repository visuals

  • Clean up the read me to be human-readable and visually appealing
    • make Product Description easier to understand
    • Update preview photos
    • remove installation steps
  • make GitHub About section easier to understand

deployment

Currently, just at a research stage, but very soon we will want to put fully into action

Refactor Navbar

Address the comments made in #56

  • Reduce the max-width of the navbar
  • Fix the alignment on mobile screen

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.