FireRoad API, MIT OpenCourseWare site
axios, used for gathering data from FireRoad API and web scraping. cheerio, used for analyzing scraped data from external sites
infinite scroll (https://www.youtube.com/watch?v=NZKUirTtxcg), web scraping (https://www.youtube.com/watch?v=XX8Q_39mue4)
MongoDB docs (https://docs.mongodb.com/manual/reference/method/)
Catbook
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
FireHose source code (https://github.com/odpf/firehose), FireRoad source code (https://github.com/venkatesh-sivaraman/FireRoad)
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)
- Scrape course descriptions, ratings, and pictures from Student Catalog, FireHose, and OCW
- Search bar
- Upgrade feed recommending algorithm
- Profile page
- History page to store and display past votes
- Sidebar with settings that are saved after each session
- Pre-choose classes
- 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?)
- Export to FireRoad
- Friend page/system
- Implement prereq box/algorithm in results
- Implement OCW links/box in results
- A few more stylistic choices