Coder Social home page Coder Social logo

l0lmaker / ubsee Goto Github PK

View Code? Open in Web Editor NEW

This project forked from animeallstar/ubsee

1.0 0.0 0.0 2.65 MB

UBSee - Creates interactive graphs for UBC subjects and courses. Built using Node, Express, React, MongoDB and GoJS

Home Page: https://www.ubsee.dev

License: MIT License

JavaScript 97.21% CSS 0.79% HTML 1.98% Procfile 0.02%

ubsee's Introduction

UBSee icon

UBSee

Creates interactive graphs for UBC subjects and courses ๐Ÿ“–

UBSee is a full stack single page application made using the MERN stack. The client is made using React and the server is an express REST API that provides graph data stored in a MongoDB Atlas cluster.

Live at : ubsee.dev | deployed using heroku

Make sure to share the website with other students if it helped you out. โŒš or โญ the project to keep up with latest changes.

Sample graphs

img1 img2

How to install

  • install Node >=16.13.1.
  • run npm install to install server dependancies
  • cd client and run npm install to install client dependancies

Available Scripts

  • npm start - runs the REST API at localhost:8080.
  • npm run dev - concurrently runs client and server. Use this for local development.
  • npm run nodemon - runs the REST API at localhost:8080 using nodemon.
  • npm run client - runs client from the root directory.

Check package.json to see all scripts

How to contribute

Create an issue or submit a pull request. Any improvement/feedback about the project is valuable.

Adding new subjects

Added a new subject is not too challenging (it's just monotonous) since we have written multiple simple scripts to aid in doing so at ./scripts/

There are a few steps in adding a new subject:

  • run npm run add [SUBJECT ID] to add a base json file with an empty prereqs fields
  • add the prerequisite expressions for each course in the json manually
  • rename the file to [SUBJECT ID].json
  • run npm run test [SUBJECT ID] to test your json. Read comments in the script file to understand what the tests do
  • run npm run fix [SUBJECT ID] [COURSE #] for each course to add missing courses in the JSON
    • if the course is still not found, then remove the course from the prereq expression (since the data is unavailable)
  • add [SUBJECT ID].json to course.json
  • run the server and click all nodes to make sure that an error is not thrown
  • make a pull request making sure you describe any important details

Make sure you read and understand what the scripts do. Unfortunately, because UBC doesn't officially provide the data, courses and subject need to be manually added for now.

Make sure to submit a pull request if you think you can improve the process of adding new subjects.

From JSON to MongoDB

Use npm run json-mongo to add data from ./data/json/courses.json to MongoDB. Add your MONGI_URI in a .env file. Uncomment the lines at the bottom of ./scripts/json-mongo.js before running the command and take a look at the file for more information.

Contributors

Technologies

  • NodeJs
  • Express (web server for REST API)
  • ReactJs (used to create static client)
  • MongoDB (datababse)
  • GoJS (Graphing library)

License

This project is licensed under the MIT License - see the LICENSE file for details

Credits

ubsee's People

Contributors

animeallstar avatar dependabot[bot] avatar l0lmaker avatar

Stargazers

 avatar

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.