Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
178 changes: 157 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,163 @@
Project Structure Draft:
# Course-Compass
## by team [Inference](https://inferencekth.github.io/Course-Compass/)
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

```bash
docker compose up
```
or
```bash
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

```bash
npm ci
```
The website can run for developers with
```bash
npm run dev
```

for production use
```bash
npm run build
```

## Project structure
The project uses the **[Model–view–presenter (MVP)](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter)** paradime. The view displays the data. The presenter contains the logic. The model contains the data.


```
.
├── firebase.js // handles fetching and saving to the realtime database on firebase
├── firebase.json // used for firebase deploy
├── index.html // the main index page - contains header and loads the index.jsx
├── package.json // used for nodejs (npm) packages
├── package-lock.json // used for nodejs (npm) packages
├── README.md // this file ^^
├── src // contains all source filed
│   ├── assets // content, e.g. pictures, ressources etc.
│   │   └── react.svg
│   ├── index.jsx // the react router - routes between pages, all pages are inserted here
│   ├── model.js // the model - handles prog. logic, that is either global or account specific
│   ├── pages // pages combine the presenters to a webpage. mby obsolete for 1 page project
│   │   └── App.jsx // The future homepage?
│   ├── presenters // Presenters link views and the model.
│   | Hooks to modify the model & component state is defined here
│   │   └── HandleSearchPresenter.jsx // An example presenter
│   ├── styles.css // a style document - mby one for each view?
│   └── views // views define parts of pages cosmetically.
│   └── DummyView.jsx
└── vite.config.js
├── 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](https://github.com/InferenceKTH/Course-Compass/tree/kth-api)** branch contains the team website.

The **[kth-api](https://github.com/InferenceKTH/Course-Compass/tree/kth-api)** contains most of the tools used for gathering and processing the course info.

![team Inference logo](/my-app/src/assets/project_icon.png)
27 changes: 0 additions & 27 deletions my-app/README.md

This file was deleted.

Binary file not shown.
Binary file removed my-app/src/assets/kth_logo.png
Binary file not shown.
Binary file removed my-app/src/assets/project_icon.png~
Binary file not shown.
Binary file removed src/.DS_Store
Binary file not shown.
52 changes: 0 additions & 52 deletions src/transcript-scraper/transcript-gpt.html

This file was deleted.

21 changes: 0 additions & 21 deletions src/transcript-scraper/transcript-scraper-htmlTester.html

This file was deleted.

Loading