You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Locations and Departments
* Not working functions stuff...
* Reviews need login
* Only one review per course
* We update the averages automatically
* Bug Fixes Yippeee
* Bug Fixes, handle reviews and show errors
* More ratings
* Refactoring
* Readme update
* Even more README updates
* Made the firebase safer and wrote more documentation in the README.
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Reverted the environment refactoring
---------
Co-authored-by: Sailet03 <52610280+Sailet03@users.noreply.github.com>
Copy file name to clipboardExpand all lines: README.md
+131-4Lines changed: 131 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,15 @@
1
1
# Course-Compass
2
2
## by team [Inference](https://inferencekth.github.io/Course-Compass/)
3
-
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.
3
+
Course-Compass is an interactive web application for exploring KTH courses. It allows users to search, filter, and review courses while providing prerequisite visualization and personalized recommendations. The application uses Firebase for data storage and real-time updates.
4
+
5
+
6
+
## Features
7
+
- Course search with advanced filtering
8
+
- Course reviews and ratings
9
+
- Interactive prerequisite visualization
10
+
- Transcript upload for eligibility checking
11
+
- Personal course favorites
12
+
- Dark/Light mode support
4
13
5
14
## How to run
6
15
@@ -19,7 +28,6 @@ docker-compose up
19
28
```
20
29
builds and starts the container.
21
30
22
-
23
31
### Building with NPM
24
32
After downloading the repository navigate to the folder my-app and install the dependencies with
25
33
@@ -36,9 +44,127 @@ for production use
36
44
npm run build
37
45
```
38
46
47
+
## Environment Setup
48
+
49
+
### Firebase Configuration
50
+
This project uses Firebase for backend services. To set up your development environment:
51
+
52
+
Update the api keys in firebase.js to your keys.
53
+
54
+
```js
55
+
constfirebaseConfig= {
56
+
apiKey:"",
57
+
authDomain:"",
58
+
databaseURL:"",
59
+
projectId:"",
60
+
storageBucket:"",
61
+
messagingSenderId:"",
62
+
appId:"",
63
+
};
64
+
```
65
+
66
+
### Database Population
67
+
To populate the Firebase database with course data:
68
+
69
+
1. Use the JSON file in `/src/assets/example.json` or prepare a file according to the following outline:
70
+
```json
71
+
{
72
+
"courseCode": {
73
+
"code": "string",
74
+
"name": "string",
75
+
"location": "string",
76
+
"department": "string",
77
+
"language": "string",
78
+
"description": "string",
79
+
"academic_level": "string",
80
+
"periods": "array",
81
+
"credits": "number",
82
+
"prerequisites": "object",
83
+
"prerequisites_text": "string",
84
+
"learning_outcomes": "string"
85
+
}
86
+
}
87
+
```
88
+
89
+
2. Use the `model.populateDatabase(data)` function to upload courses:
- Contact the team lead if you need access to the Firebase configuration
147
+
39
148
## Project structure
40
-
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.
149
+
The project uses the **[Model–view–presenter (MVP)](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter)** paradigm. The view displays the data. The presenter contains the logic. The model contains the data.
150
+
151
+
### Key Components
152
+
-**/src/model.js**: Core data model and business logic
153
+
-**/src/views/**: UI components and layouts
154
+
-**/src/presenters/**: Interface between Model and View
155
+
-**/src/scripts/**: Utility scripts including transcript parsing
156
+
-**/src/assets/**: Static resources and images
157
+
158
+
### Development Components
159
+
-**/src/dev/**: Development utilities and component previews
@@ -153,10 +279,11 @@ The project uses the **[Model–view–presenter (MVP)](https://en.wikipedia.org
153
279
21 directories, 87 files
154
280
```
155
281
282
+
</details>
156
283
157
284
## Other branches
158
285
159
-
The **[docs](https://github.com/InferenceKTH/Course-Compass/tree/kth-api)** branch contains the team website.
286
+
The **[docs](https://github.com/InferenceKTH/Course-Compass/tree/docs)** branch contains the team website.
160
287
161
288
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.
0 commit comments