diff --git a/frontend/src/App.js b/frontend/src/App.js index 8417925..0f1ece6 100644 --- a/frontend/src/App.js +++ b/frontend/src/App.js @@ -5,6 +5,7 @@ import LoginPage from "./pages/LoginPage"; import LogoutPage from "./pages/LogoutPage"; import RegisterPage from "./pages/RegisterPage"; import CoursePage from "./pages/CoursePage"; +import ManagePage from "./pages/ManagePage"; import AuthenticatedRoute from "./components/AuthenticatedRoute"; function App() { @@ -40,6 +41,12 @@ function App() { ); }} + + + + + + ); } diff --git a/frontend/src/components/MyNavbar.jsx b/frontend/src/components/MyNavbar.jsx index ab02037..8ccf374 100644 --- a/frontend/src/components/MyNavbar.jsx +++ b/frontend/src/components/MyNavbar.jsx @@ -32,8 +32,8 @@ const MyNavbar = () => { Home {currentUser?.role === "instructor" && - instructorLinks.map((item) => { - return {item.label}; + instructorLinks.map((item, k) => { + return {item.label}; })} {(currentUser?.id && Logout) || ( Login diff --git a/frontend/src/pages/ManagePage.jsx b/frontend/src/pages/ManagePage.jsx new file mode 100644 index 0000000..469458b --- /dev/null +++ b/frontend/src/pages/ManagePage.jsx @@ -0,0 +1,74 @@ +import { useContext, useEffect, useState } from "react"; +import { Container, Table } from "react-bootstrap"; +import { Link } from "wouter"; +import MyNavbar from "../components/MyNavbar"; +import UserContext from "../contexts/UserContext"; +import { makeRequest } from "../utils.ts"; + +const ManagePage = () => { + const [courseData, setCourseData] = useState([]); + const { currentUser } = useContext(UserContext); + + useEffect(() => { + makeRequest({ + url: `http://localhost:5000/user/${currentUser.id}/courses`, + method: "GET", + }) + .then((req) => req.json()) + .then((data) => { + setCourseData(data.courses); + }) + .catch((err) => { + console.error(err); + }); + }, []); + + return ( + + + + Manage Courses + + + + # + Course Code + Name + Instructor + Manage + + + + {courseData.map((course, k) => { + return ( + + {course.id} + {course.course_code} + {course.name} + {course.instructor} + + + + Students + + + + Course Content + + + + Assignments + + + + + ); + })} + + + + + ); +}; + +export default ManagePage;