Skip to content

weblab-class/rec-road

Repository files navigation

Citations

Data:

FireRoad API, MIT OpenCourseWare site

Libraries:

axios, used for gathering data from FireRoad API and web scraping. cheerio, used for analyzing scraped data from external sites

Video tutorials:

infinite scroll (https://www.youtube.com/watch?v=NZKUirTtxcg), web scraping (https://www.youtube.com/watch?v=XX8Q_39mue4)

Documentation:

MongoDB docs (https://docs.mongodb.com/manual/reference/method/)

web.lab material:

Catbook

web.lab instructors:

Vincent on accessing multiple MongoDB collections in one API endpoint, Daniel on working with FireRoad API, Akshaj on async and await for gathering data from FireRoad API

Referenced code (not used directly by our application):

FireHose source code (https://github.com/odpf/firehose), FireRoad source code (https://github.com/venkatesh-sivaraman/FireRoad)

StackOverFlow:

resolving our bug with rendering attempt before useEffect is called (https://stackoverflow.com/questions/63711013/how-to-trigger-useeffects-before-render-in-react), javascript subset array of highest 10 values for ranking courses in our feed/saved pages (https://stackoverflow.com/questions/483420/easiest-way-to-derive-subset-array-of-highest-10-values), javascript checking for undefined values in the data (https://stackoverflow.com/questions/3390396/how-can-i-check-for-undefined-in-javascript), javascript breaking from nested loops (https://stackoverflow.com/questions/183161/whats-the-best-way-to-break-from-nested-loops-in-javascript), javascript sort (https://stackoverflow.com/questions/1129216/sort-array-of-objects-by-string-property-value), javascript chaining (https://stackoverflow.com/questions/41445220/chaining-promises-with-promises-inside-then), javascript append to array (https://stackoverflow.com/questions/351409/how-to-append-something-to-an-array), git add and commit in one command (https://stackoverflow.com/questions/4298960/git-add-and-commit-in-one-command), javascript loading local json file (https://stackoverflow.com/questions/7346563/loading-local-json-file), css align text bar (https://stackoverflow.com/questions/19056725/how-to-center-align-text-in-navigation-bar-of-website-in-css/19056803), javascript nested promise etiquette (https://stackoverflow.com/questions/35805603/are-nested-promises-normal-in-node-js), javascript adding new key to object (https://stackoverflow.com/questions/1168807/how-can-i-add-a-key-value-pair-to-a-javascript-object), javascript initialize array length (https://stackoverflow.com/questions/4852017/how-to-initialize-an-arrays-length-in-javascript), attempting to play with google verification (https://stackoverflow.com/questions/54138959/google-sign-in-backend-verification), axios cancel token (https://stackoverflow.com/questions/48932157/what-is-an-axios-cancel-token), useHistory (https://stackoverflow.com/questions/64838587/how-to-properly-use-usehistory-from-react-router-dom), onClick (https://stackoverflow.com/questions/8067510/onclick-javascript-to-make-browser-go-back-to-previous-page), 405 axios code (https://stackoverflow.com/questions/61277110/uncaught-in-promise-error-request-failed-with-code-405-post-axios), integer to float (https://stackoverflow.com/questions/4293230/how-do-i-convert-an-integer-to-a-float-in-javascript), MongoDB find vs findOne (https://stackoverflow.com/questions/40168478/find-and-findone-methods-in-mongodb-showing-different-results), for in vs for of (https://stackoverflow.com/questions/29285897/what-is-the-difference-between-for-in-and-for-of-statements), checking for null (https://stackoverflow.com/questions/6003884/how-do-i-check-for-null-values-in-javascript?rq=1), calling multiple functions during onClick (https://stackoverflow.com/questions/3910736/how-to-call-multiple-javascript-functions-in-onclick-event), Router payload too large error, eventually fixed by Akshaj (https://stackoverflow.com/questions/52016659/nodejs-router-payload-too-large), what the var keyword does (https://stackoverflow.com/questions/6888570/declaring-variables-without-var-keyword), working with async/await (https://stackoverflow.com/questions/47370487/node-js-mongodb-driver-async-await-queries), delete all collections in MongoDB (https://stackoverflow.com/questions/46368368/mongodb-how-to-delete-all-records-of-a-collection-in-mongodb-shell#:~:text=Here%20is%20the%20command%20to,and%20deletes%20all%20the%20data.), axios get request error (https://stackoverflow.com/questions/65114035/err-insufficient-resources-errors-on-axios-get-request-in-react)

Features to Implement

  1. Scrape course descriptions, ratings, and pictures from Student Catalog, FireHose, and OCW
  2. Search bar
  3. Upgrade feed recommending algorithm
  4. Profile page
  5. History page to store and display past votes
  6. Sidebar with settings that are saved after each session
  7. Pre-choose classes
  8. Login with Touchstone/Integration with Canvas (not sure if these will be the same system/can students login to our website without connecting to Canvas?)
  9. Export to FireRoad
  10. Friend page/system
  11. Implement prereq box/algorithm in results
  12. Implement OCW links/box in results
  13. A few more stylistic choices

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published