Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
6bf9c8c
sidebar component add
kexana Mar 28, 2025
8e291f2
tailwind workin, beggining page building
kexana Mar 28, 2025
9492d09
structure
Dinoxh Mar 28, 2025
d7c45ab
fixed app
Dinoxh Mar 28, 2025
2ad2b52
Main design layout
Dinoxh Mar 28, 2025
e504235
initial sidebar
kexana Apr 2, 2025
368096f
courseView init
kexana Apr 2, 2025
bda6d94
the course page initial tests
LSKpr Apr 2, 2025
80c665a
Make it run on my comuter
Sailet03 Apr 2, 2025
6d27140
Tree without database integration
Sailet03 Apr 3, 2025
b9fbf6b
fixes
Sailet03 Apr 4, 2025
cce6da0
Merge branch 'main' of https://github.com/InferenceKTH/Find-My-Next-C…
Sailet03 Apr 9, 2025
2f64054
npm update
Sailet03 Apr 9, 2025
dc1d233
add to page
Sailet03 Apr 9, 2025
249fee8
Merge branch 'main' into prereq-tree
Sailet03 Apr 9, 2025
697a9b9
Merge branch 'main' into prereq-tree
Sailet03 Apr 9, 2025
b233d1f
Merge branch 'main' of github.com:InferenceKTH/Find-My-Next-Course in…
Sailet03 Apr 9, 2025
e235a7a
Biiiiig Refactoring
Sailet03 Apr 9, 2025
266e079
Broken version of prereq tree
Sailet03 Apr 11, 2025
45f1247
Fixed not rendering anything. Still broken
Sailet03 Apr 11, 2025
abaa804
Working v1
daDevBoat Apr 11, 2025
407425e
handling #prereqs
daDevBoat Apr 11, 2025
764de1d
Merge of Prereq Tree working v1
daDevBoat Apr 11, 2025
cda4065
Test
daDevBoat Apr 11, 2025
0287df4
removed commented out code
Sailet03 Apr 11, 2025
3216309
More info expands now
daDevBoat Apr 11, 2025
a5b6909
More info expands now
daDevBoat Apr 11, 2025
30f7e76
More info expands now
daDevBoat Apr 11, 2025
e748152
Start coding on line 135 in PrereqTreePresenter Mr. PO
daDevBoat Apr 11, 2025
2f067e8
Merge remote-tracking branch 'origin/main' into prereq-oaktree
Sailet03 Apr 16, 2025
88e94f6
Prereqs colored and expands more info
daDevBoat Apr 16, 2025
47e67a8
Prereqs colored and expands more info
daDevBoat Apr 16, 2025
a8ef8ec
Merge branch 'main' of github.com:InferenceKTH/Find-My-Next-Course in…
daDevBoat Apr 16, 2025
810b63f
added css styling
daDevBoat Apr 16, 2025
771b4c9
Fixed copy bug
daDevBoat Apr 16, 2025
a99b4f9
Crash fix in PrerequisitePresenter.jsx
Sailet03 Apr 17, 2025
08fc3b1
Merge remote-tracking branch 'origin/main' into prereq-oaktree
Sailet03 Apr 17, 2025
7569178
merge fix
Sailet03 Apr 17, 2025
87b872d
Prereq tree compression, error handling, debuging, database update
daDevBoat May 6, 2025
c04c5b7
Merge branch 'prereq-oaktree' of github.com:InferenceKTH/Find-My-Next…
daDevBoat May 7, 2025
2f87d3b
Added null support (hopefully)
daDevBoat May 7, 2025
6c5cda2
Merge branch 'main' into prereq-oaktree
daDevBoat May 7, 2025
737e750
Bug fixes
daDevBoat May 8, 2025
f073dd0
Merge branch 'prereq-oaktree' of github.com:InferenceKTH/Find-My-Next…
daDevBoat May 8, 2025
6e68412
Bug fixes ++
daDevBoat May 8, 2025
99b667b
Desplays periods
daDevBoat May 8, 2025
74ab271
Bug fix tree
daDevBoat May 8, 2025
c8aa99f
Merge branch 'main' of github.com:InferenceKTH/Find-My-Next-Course in…
daDevBoat May 8, 2025
024fed7
Bug finally fixed (hopefully)
daDevBoat May 8, 2025
91a4676
Merge branch 'main' of github.com:InferenceKTH/Find-My-Next-Course in…
daDevBoat May 8, 2025
117cbea
Check if course exists before doing pop up
daDevBoat May 8, 2025
cb246e3
Set up for url handling
daDevBoat May 8, 2025
28684bb
Merge branch 'main' into prereq-oaktree
daDevBoat May 8, 2025
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
90 changes: 46 additions & 44 deletions my-app/src/index.jsx
Original file line number Diff line number Diff line change
@@ -1,44 +1,46 @@
import { configure, makeAutoObservable } from "mobx";
import { createHashRouter, RouterProvider } from "react-router-dom";
import { createRoot } from "react-dom/client";
import { connectToFirebase } from "../firebase";
import { model } from "./model";
import App from "./pages/App.jsx";
import "./styles.css";

import SharedView from "./pages/SharedView.jsx";
import { JsonToDatabase } from "./presenters/Tests/JsonToDatabase";
import { AllCoursesPresenter } from "./presenters/Tests/AllCoursesPresenter.jsx";

configure({ enforceActions: "never" });

const reactiveModel = makeAutoObservable(model);
connectToFirebase(reactiveModel);

export function makeRouter(reactiveModel) {
return createHashRouter([
{
path: "/",
element: <App model={reactiveModel} />,
},
{
path: "/share",
//element: <SharedView />,
element: <SharedView model={reactiveModel} />,
},
{
path: "/button",
element: <JsonToDatabase model={reactiveModel} />,
},
{
path: "/all",
element: <AllCoursesPresenter model={reactiveModel} />,
},
]);
}

createRoot(document.getElementById("root")).render(
<RouterProvider router={makeRouter(reactiveModel)} />
);

window.myModel = reactiveModel;
import { configure, makeAutoObservable } from "mobx";
import { createBrowserRouter, RouterProvider } from "react-router-dom";
import { createRoot } from "react-dom/client";
import { connectToFirebase } from "../firebase";
import { model } from "./model";
import App from "./pages/App.jsx";
import "./styles.css";

import SharedView from "./pages/SharedView.jsx";
import { JsonToDatabase } from "./presenters/Tests/JsonToDatabase";
import { AllCoursesPresenter } from "./presenters/Tests/AllCoursesPresenter.jsx";


configure({ enforceActions: "never" });

const reactiveModel = makeAutoObservable(model);
connectToFirebase(reactiveModel);

export function makeRouter(reactiveModel) {
return createBrowserRouter([
{
path: "/",
element: <App model={reactiveModel} />,
},
{
path: "/share",
//element: <SharedView />,
element: <SharedView model={reactiveModel} />,
},
{
path: "/button",
element: <JsonToDatabase model={reactiveModel} />,
},
{
path: "/all",
element: <AllCoursesPresenter model={reactiveModel} />,
},

]);
}

createRoot(document.getElementById("root")).render(
<RouterProvider router={makeRouter(reactiveModel)} />
);

window.myModel = reactiveModel;
6 changes: 3 additions & 3 deletions my-app/src/presenters/PrerequisitePresenter.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export const PrerequisitePresenter = observer((props) => {
let codeCounter = 0;
let hover_popup = document.createElement("div");
hover_popup.setAttribute("id", "course_popup");
hover_popup.style.fontSize = 0.75 + "rem";
hover_popup.style.fontSize = 1 + "rem";
hover_popup.style.pointerEvents = "none";
hover_popup.style.position = "absolute";
hover_popup.style.backgroundColor = "white";
Expand Down Expand Up @@ -111,9 +111,9 @@ export const PrerequisitePresenter = observer((props) => {
const popupHeight = pos.height + 20;
hover_popup.style.minWidth = popupWidth + "px";
hover_popup.style.minHeight = popupHeight + "px";
hover_popup.style.maxWidth = pos.width * 3 + "px";
hover_popup.style.maxWidth = pos.width * 2 + "px";

hover_popup.style.fontSize = window.getComputedStyle(document.querySelector(`[data-id="${node.id}"]`)).fontSize;
//hover_popup.style.fontSize = window.getComputedStyle(document.querySelector(`[data-id="${node.id}"]`)).fontSize;
hover_popup.style.display = "flex";


Expand Down
23 changes: 14 additions & 9 deletions my-app/src/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,20 @@
.bm-burger-button {
position: absolute;
width: 36px;
height: 30px;
left: 20px;
top: 20px;
height: 36px;
left: 36px;
top: 36px;
}


.bm-menu-wrap {
position: fixed;
height: 100%;
z-index: 10;
}
/* Hide scrollbars everywhere but allow scrolling */
html, body {
overflow: auto;
scrollbar-width: none; /* Firefox */
-ms-overflow-style: none; /* Internet Explorer 10+ */
}

html::-webkit-scrollbar,
body::-webkit-scrollbar {
display: none; /* Chrome, Safari, Edge */
}

13 changes: 8 additions & 5 deletions my-app/src/views/ListView.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import React, { useState, useEffect, useCallback } from 'react';
import { DotPulse, Quantum } from 'ldrs/react';
import 'ldrs/react/Quantum.css';
import InfiniteScroll from 'react-infinite-scroll-component';
import { useNavigate, Link } from 'react-router-dom';

function ListView(props) {
const [displayedCourses, setDisplayedCourses] = useState([]);
Expand All @@ -10,7 +11,8 @@ function ListView(props) {
const [isLoading, setIsLoading] = useState(true);
const [sortBy, setSortBy] = useState('relevance');
const [sortDirection, setSortDirection] = useState('asc');

const navigate = useNavigate();

const toggleReadMore = (courseCode) => {
setReadMore(prevState => ({
...prevState,
Expand All @@ -30,7 +32,6 @@ function ListView(props) {
let ret_string = "";
if (periods) {
let keys = Object.keys(periods);
// console.log(periods["P1"])
for (let key of keys) {
if (periods[key]) {
ret_string += key + " | ";
Expand All @@ -42,9 +43,9 @@ function ListView(props) {
}
};

const handlePeriods2 = (course) => {
return "Test";
}
const handleClickBackArrow = (course_name) => {
navigate(course_name);
};


useEffect(() => {
Expand Down Expand Up @@ -157,6 +158,7 @@ function ListView(props) {
initialScrollY={0}
>
{displayedCourses.map(course => (
<Link to={'/?' + course.code}>
<div
onClick={() => {
props.setSelectedCourse(course);
Expand Down Expand Up @@ -243,6 +245,7 @@ function ListView(props) {
</div>
</div>
</div>
</Link>
))}
</InfiniteScroll>
</div>
Expand Down