Skip to content

Latest commit

Β 

History

History
163 lines (145 loc) Β· 6.32 KB

File metadata and controls

163 lines (145 loc) Β· 6.32 KB

Course-Compass

by team Inference

Course-Compass is a webpage for interacting with the kth courses via the kth api. It allows for searching and filtering through all active courses.

How to run

Running this project locally can be done via docker or by building and running it with npm.

Running via docker

Executing

docker compose up

or

docker-compose up

builds and starts the container.

Building with NPM

After downloading the repository navigate to the folder my-app and install the dependencies with

npm ci

The website can run for developers with

npm run dev

for production use

npm run build

Project structure

The project uses the Model–view–presenter (MVP) paradime. The view displays the data. The presenter contains the logic. The model contains the data.

.
β”œβ”€β”€ docker-compose.yml
β”œβ”€β”€ Dockerfile
β”œβ”€β”€ docs
β”‚Β Β  β”œβ”€β”€ _config.yml
β”‚Β Β  └── index.md
β”œβ”€β”€ my-app
β”‚Β Β  β”œβ”€β”€ dist
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ assets
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ index-BNDm07oX.js
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ index-Bwi9_b9d.css
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ pdf.worker-CKnUz2wA.mjs
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── project_icon-CgaTQWFX.png
β”‚Β Β  β”‚Β Β  └── index.html
β”‚Β Β  β”œβ”€β”€ eslint.config.js
β”‚Β Β  β”œβ”€β”€ firebase.js
β”‚Β Β  β”œβ”€β”€ firebase.json
β”‚Β Β  β”œβ”€β”€ firebaseModel.js
β”‚Β Β  β”œβ”€β”€ index.html
β”‚Β Β  β”œβ”€β”€ package.json
β”‚Β Β  β”œβ”€β”€ package-lock.json
β”‚Β Β  β”œβ”€β”€ postcss.config.js
β”‚Β Β  β”œβ”€β”€ public
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ favicons-dark
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ android-chrome-192x192.png
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ android-chrome-512x512.png
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ apple-touch-icon.png
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ favicon-16x16.png
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ favicon-32x32.png
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ favicon.ico
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── site.webmanifest
β”‚Β Β  β”‚Β Β  └── favicons-light
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ android-chrome-192x192.png
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ android-chrome-512x512.png
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ apple-touch-icon.png
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ favicon-16x16.png
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ favicon-32x32.png
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ favicon.ico
β”‚Β Β  β”‚Β Β      └── site.webmanifest
β”‚Β Β  β”œβ”€β”€ src
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ assets
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ example.json
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ project_icon1.png
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ project_icon.png
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── share_icon.png
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ dev
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ index.js
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ palette.jsx
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ previews.jsx
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ README.md
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── useInitial.js
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ index.jsx
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ model.js
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ pages
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ App.jsx
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── SharedView.jsx
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ presenters
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ AddToDB.jsx
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ FilterPresenter.jsx
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ListViewPresenter.jsx
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ PrerequisitePresenter.jsx
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ReviewPresenter.jsx
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ SearchbarPresenter.jsx
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ SidebarPresenter.jsx
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Tests
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ AddToDB.jsx
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ AllCoursesPresenter.jsx
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── JsonToDatabase.jsx
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── UploadTranscriptPresenter.jsx
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ scripts
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ eligibility_refined.js
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── transcript-scraper
β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ transcript-gpt.html
β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ transcript-scraper-htmlTester.html
β”‚Β Β  β”‚Β Β  β”‚Β Β      └── transcript-scraper.mjs
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ styles.css
β”‚Β Β  β”‚Β Β  └── views
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ Components
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ CoursePagePopup.jsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ CourseViewComponents
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ModalComponent.jsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  └── SampleComponent.jsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ FavouriteDropdown.jsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ PrerequisiteTreeComponents
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  └── BoxTest.jsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ RatingComponent.jsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ SideBarComponents
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ButtonGroupField.jsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ButtonGroupFullComponent.jsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ CollapsibleCheckboxes.jsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ CourseTranscriptList.jsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DropDownField.jsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ FilterEnableCheckbox.jsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ SliderField.jsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ToggleField.jsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ToolTip.jsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  └── UploadField.jsx
β”‚Β Β  β”‚Β Β      β”‚Β Β  └── StarComponent.jsx
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ ListView.jsx
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ PrerequisiteTreeView.jsx
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ ReviewView.jsx
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ SearchbarView.jsx
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ SidebarView.jsx
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ TestAllCoursesView.jsx
β”‚Β Β  β”‚Β Β      └── TestWithButtonView.jsx
β”‚Β Β  β”œβ”€β”€ tailwind.config.js
β”‚Β Β  └── vite.config.js
└── README.md

21 directories, 87 files

Other branches

The docs branch contains the team website.

The kth-api contains most of the tools used for gathering and processing the course info.

team Inference logo