diff --git a/app/components/KnowledgeQuests.tsx b/app/components/KnowledgeQuests.tsx
index d901ad6..66cc459 100644
--- a/app/components/KnowledgeQuests.tsx
+++ b/app/components/KnowledgeQuests.tsx
@@ -40,27 +40,22 @@ export default function KnowledgeQuests() {
}
return(
-
-
-
Knowledge Quests 
-
- {knowledgeData.map(data => (
-
-
-

-
-
{data.title}
-
{data.challenge}
-
{data.question}
-
-
-
-
- ))}
-
-
-
-
+ Knowledge Quests 
+
+ {knowledgeData.map(data => (
+
+
+

+
+
{data.title}
+
{data.challenge}
+
{data.question}
+
+
+
+
+ ))}
+
)
}
diff --git a/app/components/LeftSideMenuItems.tsx b/app/components/LeftSideMenuItems.tsx
new file mode 100644
index 0000000..57d8f2d
--- /dev/null
+++ b/app/components/LeftSideMenuItems.tsx
@@ -0,0 +1,136 @@
+import React, {useState} from 'react';
+import {Layout, Menu, theme, Button, Modal, MenuProps, Breadcrumb, Dropdown, Space} from 'antd';
+import { SettingOutlined, QuestionCircleOutlined, LogoutOutlined, RightOutlined} from '@ant-design/icons';
+import '../../public/assets/left_side_nav.css';
+import AdministrationIcon from '~/components/customIcon/AdministrationIcon';
+import MyCoursesIcon from '~/components/customIcon/MyCoursesIcon';
+import ExaminationIcon from '~/components/customIcon/ExaminationIcon';
+import CommunityIcon from '~/components/customIcon/CommunityIcon';
+import NotificationIcon from '~/components/customIcon/NotificationIcon';
+
+
+
+const items2: MenuProps['items'] = [
+ {
+ key: 'subsd1',
+ icon: ,
+ label: (
Administration
),
+ children: [
+ {
+ key: '1sd',
+ label: (Class Schedules),
+ },
+ {
+ key: '2sd',
+ label: (Classmate Directory),
+ },
+ {
+ key: '3sd',
+ label: (Qualifications),
+ },
+ ],
+ },
+ {
+ key: 'subsd2',
+ icon: ,
+ label: ( My Courses
),
+ children: [
+ {
+ key: '4sd',
+ label: (Graduate Program),
+ },
+ {
+ key: '5sd',
+ label: (Post-Graduate Program),
+ },
+ ],
+ },
+ {
+ key: 'subsd3',
+ icon: ,
+ label: ( Examinations
),
+ children: [
+ {
+ key: '6sd',
+ label: (Exam Scheduled),
+ },
+ {
+ key: '7sd',
+ label: (Upcoming Exam),
+ },
+ {
+ key: '8sd',
+ label: (Passed Exam),
+ },
+ ],
+ },
+ {
+ key: 'subsd4',
+ icon: ,
+ label: ( Community
),
+ children: [
+ {
+ key: '9sd',
+ label: (Exam Scheduled),
+ },
+ {
+ key: '10sd',
+ label: (Upcoming Exam),
+ },
+ {
+ key: '11sd',
+ label: (Passed Exam),
+ },
+ ],
+ },
+ {
+ key: 'subsd5',
+ icon: ,
+ label: ( Notifications
),
+ children: [
+ {
+ key: '12sd',
+ label: (Exam Scheduled),
+ },
+ {
+ key: '13sd',
+ label: (Upcoming Exam),
+ },
+ {
+ key: '14sd',
+ label: (Passed Exam),
+ },
+ ],
+ },
+ // getItem('Files', '9', ),
+ {
+ key: 'grp',
+ label: '',
+ type: 'group',
+ style: { marginTop: '100px' },
+ children: [
+ {
+ key: '15sd', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
+ icon: React.createElement(SettingOutlined, { style: { color: '#000' } }),
+ label: (Settings
)
+ },
+ {
+ key: '16sd', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
+ icon: React.createElement(QuestionCircleOutlined, { style: { color: '#000' } }),
+ label: (Help & Support
)
+ },
+ {
+ key: '17sd', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
+ icon: React.createElement(LogoutOutlined, { style: { color: '#000' } }),
+ label: (Logout
)
+ },
+ ],
+ },
+];
+
+const LeftSideMenu: React.FC = () => {
+ return(
+
+ )
+}
+export default LeftSideMenu;
\ No newline at end of file
diff --git a/app/components/StartCourse.tsx b/app/components/StartCourse.tsx
new file mode 100644
index 0000000..6eaab09
--- /dev/null
+++ b/app/components/StartCourse.tsx
@@ -0,0 +1,124 @@
+import React, { useState } from 'react';
+import { Timeline } from 'antd';
+interface MaterialItem {
+ id: number;
+ material: number;
+ title: string;
+ type: string;
+ time: string;
+ date: string;
+ source: string;
+}
+const materialData: MaterialItem[] = [
+ {
+ id: 1,
+ material: 1,
+ title: "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
+ type: "Video",
+ time: "30 mins",
+ date: "28-01-2024",
+ source: "https://videos.pexels.com/video-files/3195394/3195394-uhd_2560_1440_25fps.mp4"
+ },
+ {
+ id: 2,
+ material: 1,
+ title: "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
+ type: "Video",
+ time: "30 mins",
+ date: "28-01-2024",
+ source: "https://videos.pexels.com/video-files/3195394/3195394-uhd_2560_1440_25fps.mp4"
+ },
+ {
+ id: 3,
+ material: 1,
+ title: "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
+ type: "Reading Material",
+ time: "8 mins",
+ date: "28-01-2024",
+ source: "https://pdfobject.com/pdf/sample.pdf"
+ },
+ {
+ id: 4,
+ material: 1,
+ title: "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
+ type: "MCQ",
+ time: "5 mins",
+ date: "28-01-2024",
+ source: "https://videos.pexels.com/video-files/3195394/3195394-uhd_2560_1440_25fps.mp4"
+ },
+ {
+ id: 5,
+ material: 1,
+ title: "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
+ type: "Video",
+ time: "30 mins",
+ date: "28-01-2024",
+ source: "https://videos.pexels.com/video-files/3195394/3195394-uhd_2560_1440_25fps.mp4"
+ },
+ {
+ id: 6,
+ material: 1,
+ title: "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
+ type: "Video",
+ time: "30 mins",
+ date: "28-01-2024",
+ source: "https://videos.pexels.com/video-files/3195394/3195394-uhd_2560_1440_25fps.mp4"
+ }
+];
+
+const TimelineComponent = () => {
+ const [selectedItem, setSelectedItem] = useState(materialData[0]);
+
+ const handleItemClick = (item : MaterialItem) => {
+ setSelectedItem(item);
+ };
+
+ const timelineItems = materialData.map((item) => ({
+ children: (
+ handleItemClick(item)} style={{ cursor: 'pointer', backgroundColor: item.id === selectedItem.id ? '#FFF4EA' : '#FFF'}}>
+
Material {item.material} | {item.date}
+
{item.title}
+
{item.type} | {item.time}
+
+ ),
+ color: item.id === selectedItem.id ? '#EF7A0C' : '#CFCFCF',
+ dot: item.id === selectedItem.id
+ ?
+
+
+
+ : null,
+ }));
+
+ return (
+
+
+
+
+
+
+
+
+ {selectedItem.type === 'Video' && (
+
+ )}
+ {selectedItem.type === 'Reading Material' && (
+
+ )}
+ {selectedItem.type === 'MCQ' && (
+
+ {/* Render MCQ content here */}
+
+ )}
+
Material {selectedItem.material} | {selectedItem.date}
+
{selectedItem.title}
+
{selectedItem.type} | {selectedItem.time}
+
+
+
+
+
+ );
+};
+
+export default TimelineComponent;
diff --git a/app/components/TheoryCourses.tsx b/app/components/TheoryCourses.tsx
new file mode 100644
index 0000000..af574b6
--- /dev/null
+++ b/app/components/TheoryCourses.tsx
@@ -0,0 +1,133 @@
+type TheoryData = {
+ id: number;
+ module: number;
+ status: number;
+ time: number;
+ access: number;
+ title: string;
+ description: string;
+ img: string;
+ total_marks: string;
+};
+
+let theoryData: TheoryData[] = [
+ {
+ id: 1,
+ module: 1,
+ status: 2,
+ time: 4,
+ access: 1,
+ title: "Life History of Dr. Maria Montessori",
+ description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
+ img: "/assets/image1.jpg",
+ total_marks: "50"
+ },
+ {
+ id: 2,
+ module: 2,
+ status: 1,
+ time: 4,
+ access: 1,
+ title: "Introduction to Montessori Methods",
+ description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
+ img: "/assets/image2.jpg",
+ total_marks: "50"
+ },
+ {
+ id: 3,
+ module: 3,
+ status: 0,
+ time: 4,
+ access: 0,
+ title: "Exercises in Practical Life",
+ description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
+ img: "/assets/image3.jpg",
+ total_marks: "50"
+ },
+ {
+ id: 1,
+ module: 1,
+ status: 0,
+ time: 4,
+ access: 0,
+ title: "Life History of Dr. Maria Montessori",
+ description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
+ img: "/assets/image1.jpg",
+ total_marks: "50"
+ },
+ {
+ id: 2,
+ module: 2,
+ status: 0,
+ time: 4,
+ access: 0,
+ title: "Introduction to Montessori Methods",
+ description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
+ img: "/assets/image2.jpg",
+ total_marks: "50"
+ },
+ {
+ id: 3,
+ module: 3,
+ status: 0,
+ time: 4,
+ access: 0,
+ title: "Exercises in Practical Life",
+ description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
+ img: "/assets/image3.jpg",
+ total_marks: "50"
+ }
+];
+
+export default function CourseTheory() {
+ const getStatusText = (status: number): string => {
+ if (status === 2) return "
Finished
";
+ if (status === 1) return "40% Completed
";
+ if (status === 0) return " ";
+ return "";
+ }
+
+ return(
+
+
+
+
+
+

+
+
+
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit
+
+ Video |
+ 30 mins
+
+
+
+
+
+
+
+
+
+
+ {
+ theoryData.map((data, index) => (
+
+

+
{data.title}
+
{data.time} Hours | Net Total Marks {data.total_marks}
+
{data.description}
+
+
+
+
+ ))
+ }
+
+
+
+ )
+}
diff --git a/app/routes/ai-quiz.tsx b/app/routes/ai-quiz.tsx
index 9bbd635..e5863f0 100644
--- a/app/routes/ai-quiz.tsx
+++ b/app/routes/ai-quiz.tsx
@@ -36,7 +36,7 @@ function toggleSection() {
export default function Index() {
const [percent, setPercent] = useState(0);
- const [secondsLeft, setSecondsLeft] = useState(5);
+ const [secondsLeft, setSecondsLeft] = useState(10);
useEffect(() => {
const interval = setInterval(() => {
@@ -45,7 +45,7 @@ export default function Index() {
clearInterval(interval);
return 100;
}
- return Math.round(prevPercent + (100 / 5)); // Round percentage
+ return Math.round(prevPercent + (100 / 10)); // Round percentage
});
setSecondsLeft((prevSeconds) => {
if (prevSeconds <= 1) {
@@ -76,13 +76,13 @@ export default function Index() {
/2000
-
+
Trending
-

+
Dr. Marie Montessori Life Journey
@@ -91,7 +91,7 @@ export default function Index() {
-

+
Montessori Methods
@@ -100,7 +100,7 @@ export default function Index() {
-

+
-
+
-

+
Generating Quiz
This usually takes {secondsLeft} seconds
diff --git a/app/routes/classmate-directory.tsx b/app/routes/classmate-directory.tsx
index d6e935c..24bd087 100644
--- a/app/routes/classmate-directory.tsx
+++ b/app/routes/classmate-directory.tsx
@@ -10,6 +10,7 @@ import TopPerformers from '~/components/TopPerformers';
import ClassmateTutorSection from '~/components/ClassmateTutorSection';
import {Layout, Menu, theme, Button, Modal, MenuProps, Breadcrumb, Dropdown, Space} from 'antd';
import '../../public/assets/left_side_nav.css';
+import LeftSideMenu from '~/components/LeftSideMenuItems';
const { Content, Sider } = Layout;
@@ -22,123 +23,7 @@ const items1: MenuProps['items'] = ['1', '2', '3'].map((key) => ({
type MenuItem = Required
['items'][number];
-const items2: MenuProps['items'] = [
- {
- key: 'subsd1',
- icon: ,
- label: ( Administration
),
- children: [
- {
- key: '1sd',
- label: (Class Schedules),
- },
- {
- key: '2sd',
- label: (Classmate Directory),
- },
- {
- key: '3sd',
- label: (Qualifications),
- },
- ],
- },
- {
- key: 'subsd2',
- icon: ,
- label: ( My Courses
),
- children: [
- {
- key: '4sd',
- label: (Graduate Program),
- },
- {
- key: '5sd',
- label: (Post-Graduate Program),
- },
- ],
- },
- {
- key: 'subsd3',
- icon: ,
- label: ( Examinations
),
- children: [
- {
- key: '6sd',
- label: (Exam Scheduled),
- },
- {
- key: '7sd',
- label: (Upcoming Exam),
- },
- {
- key: '8sd',
- label: (Passed Exam),
- },
- ],
- },
- {
- key: 'subsd4',
- icon: ,
- label: ( Community
),
- children: [
- {
- key: '9sd',
- label: (Exam Scheduled),
- },
- {
- key: '10sd',
- label: (Upcoming Exam),
- },
- {
- key: '11sd',
- label: (Passed Exam),
- },
- ],
- },
- {
- key: 'subsd5',
- icon: ,
- label: ( Notifications
),
- children: [
- {
- key: '12sd',
- label: (Exam Scheduled),
- },
- {
- key: '13sd',
- label: (Upcoming Exam),
- },
- {
- key: '14sd',
- label: (Passed Exam),
- },
- ],
- },
- // getItem('Files', '9', ),
- {
- key: 'grp',
- label: '',
- type: 'group',
- style: { marginTop: '100px' },
- children: [
- {
- key: '15sd', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
- icon: React.createElement(SettingOutlined, { style: { color: '#000' } }),
- label: (Settings
)
- },
- {
- key: '16sd', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
- icon: React.createElement(QuestionCircleOutlined, { style: { color: '#000' } }),
- label: (Help & Support
)
- },
- {
- key: '17sd', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
- icon: React.createElement(LogoutOutlined, { style: { color: '#000' } }),
- label: (Logout
)
- },
- ],
- },
-];
+
const items: MenuProps['items'] = [
{
label: 1st menu item,
@@ -164,7 +49,6 @@ const App: React.FC = () => {
const [collapsed, setCollapsed] = useState(false);
const [open, setOpen] = React.useState(false);
const [loading, setLoading] = React.useState(true);
-
const showLoading = () => {
setOpen(true);
setLoading(true);
@@ -186,10 +70,10 @@ const App: React.FC = () => {
IIMTT Logo
-
+
-
+
diff --git a/app/routes/course._index.tsx b/app/routes/course._index.tsx
new file mode 100644
index 0000000..e69de29
diff --git a/app/routes/course.theory.tsx b/app/routes/course.theory.tsx
new file mode 100644
index 0000000..7a0779a
--- /dev/null
+++ b/app/routes/course.theory.tsx
@@ -0,0 +1,112 @@
+import React, {useState} from 'react';
+import { RightOutlined} from '@ant-design/icons';
+import TheoroCourse from '~/components/TheoryCourses';
+import {Layout, theme, Button, MenuProps, Breadcrumb, Dropdown, Space} from 'antd';
+import '../../public/assets/left_side_nav.css';
+import LeftSideMenu from '~/components/LeftSideMenuItems';
+
+
+const { Content, Sider } = Layout;
+
+const items1: MenuProps['items'] = ['1', '2', '3'].map((key) => ({
+ key,
+ label: `navsd ${key}`,
+}));
+
+type MenuItem = Required
['items'][number];
+
+
+
+const items: MenuProps['items'] = [
+ {
+ label: 1st menu item,
+ key: '01sd',
+ },
+ {
+ type: 'divider',
+ },
+ {
+ label: 2nd menu item,
+ key: '02sd',
+ },
+ {
+ type: 'divider',
+ },
+ {
+ label: '3rd menu item',
+ key: '03sd',
+ },
+];
+
+const App: React.FC = () => {
+ const [collapsed, setCollapsed] = useState(false);
+ const [open, setOpen] = React.useState(false);
+ const [loading, setLoading] = React.useState(true);
+ const showLoading = () => {
+ setOpen(true);
+ setLoading(true);
+
+ // Simple loading mock. You should add cleanup logic in real world.
+ setTimeout(() => {
+ setLoading(false);
+ }, 100);
+ };
+ const { token: { colorBgContainer}, } = theme.useToken();
+
+ return (
+
+
+
+
setCollapsed(value)} width={366} style={{overflow: 'auto', height: '110vh', position: 'fixed', left: 0, top: 0, bottom: 0, background: '#FFF', borderRight: '1px solid #CFCFCF', borderBottom: '2px solid #000'}}>
+
+
+
+
+
+
+
+
+
+ Course,},{title: 'Theory',},]}/>
+
+
+
+
+
+
+
+ {/* Place Content from here */}
+
+
+
+
+
+
+ );
+};
+export default App;
+
diff --git a/app/routes/knowledge-quest.tsx b/app/routes/knowledge-quest.tsx
index 1e6f6d9..c5470d2 100644
--- a/app/routes/knowledge-quest.tsx
+++ b/app/routes/knowledge-quest.tsx
@@ -10,6 +10,7 @@ import TopPerformers from '~/components/TopPerformers';
import {Layout, Menu, theme, Button, Modal, MenuProps} from 'antd';
import { Dropdown, Space } from 'antd';
import '../../public/assets/left_side_nav.css';
+import LeftSideMenu from '~/components/LeftSideMenuItems';
const { Content, Sider } = Layout;
@@ -22,123 +23,6 @@ const items1: MenuProps['items'] = ['1', '2', '3'].map((key) => ({
type MenuItem = Required['items'][number];
-const items2: MenuProps['items'] = [
- {
- key: 'subsd1',
- icon: ,
- label: ( Administration
),
- children: [
- {
- key: '1sd',
- label: (Class Schedules),
- },
- {
- key: '2sd',
- label: (Classmate Directory),
- },
- {
- key: '3sd',
- label: (Qualifications),
- },
- ],
- },
- {
- key: 'subsd2',
- icon: ,
- label: ( My Courses
),
- children: [
- {
- key: '4sd',
- label: (Graduate Program),
- },
- {
- key: '5sd',
- label: (Post-Graduate Program),
- },
- ],
- },
- {
- key: 'subsd3',
- icon: ,
- label: ( Examinations
),
- children: [
- {
- key: '6sd',
- label: (Exam Scheduled),
- },
- {
- key: '7sd',
- label: (Upcoming Exam),
- },
- {
- key: '8sd',
- label: (Passed Exam),
- },
- ],
- },
- {
- key: 'subsd4',
- icon: ,
- label: ( Community
),
- children: [
- {
- key: '9sd',
- label: (Exam Scheduled),
- },
- {
- key: '10sd',
- label: (Upcoming Exam),
- },
- {
- key: '11sd',
- label: (Passed Exam),
- },
- ],
- },
- {
- key: 'subsd5',
- icon: ,
- label: ( Notifications
),
- children: [
- {
- key: '12sd',
- label: (Exam Scheduled),
- },
- {
- key: '13sd',
- label: (Upcoming Exam),
- },
- {
- key: '14sd',
- label: (Passed Exam),
- },
- ],
- },
- // getItem('Files', '9', ),
- {
- key: 'grp',
- label: '',
- type: 'group',
- style: { marginTop: '100px' },
- children: [
- {
- key: '15sd', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
- icon: React.createElement(SettingOutlined, { style: { color: '#000' } }),
- label: (Settings
)
- },
- {
- key: '16sd', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
- icon: React.createElement(QuestionCircleOutlined, { style: { color: '#000' } }),
- label: (Help & Support
)
- },
- {
- key: '17sd', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
- icon: React.createElement(LogoutOutlined, { style: { color: '#000' } }),
- label: (Logout
)
- },
- ],
- },
-];
const items: MenuProps['items'] = [
{
label: 1st menu item,
@@ -186,7 +70,7 @@ const App: React.FC = () => {
IIMTT Logo
-
+
diff --git a/app/routes/progress-review.tsx b/app/routes/progress-review.tsx
index c373daf..3c25dd7 100644
--- a/app/routes/progress-review.tsx
+++ b/app/routes/progress-review.tsx
@@ -12,6 +12,7 @@ import QuizzesScore from '~/components/QuizzesScore'
import YourCertificates from '~/components/YourCertificates'
import { Dropdown, Space } from 'antd';
import '../../public/assets/left_side_nav.css';
+import LeftSideMenu from '~/components/LeftSideMenuItems';
const { Content, Sider } = Layout;
@@ -23,124 +24,6 @@ const items1: MenuProps['items'] = ['1', '2', '3'].map((key) => ({
type MenuItem = Required['items'][number];
-
-const items2: MenuProps['items'] = [
- {
- key: 'subsd1',
- icon: ,
- label: ( Administration
),
- children: [
- {
- key: '1sd',
- label: (Class Schedules),
- },
- {
- key: '2sd',
- label: (Classmate Directory),
- },
- {
- key: '3sd',
- label: (Qualifications),
- },
- ],
- },
- {
- key: 'subsd2',
- icon: ,
- label: ( My Courses
),
- children: [
- {
- key: '4sd',
- label: (Graduate Program),
- },
- {
- key: '5sd',
- label: (Post-Graduate Program),
- },
- ],
- },
- {
- key: 'subsd3',
- icon: ,
- label: ( Examinations
),
- children: [
- {
- key: '6sd',
- label: (Exam Scheduled),
- },
- {
- key: '7sd',
- label: (Upcoming Exam),
- },
- {
- key: '8sd',
- label: (Passed Exam),
- },
- ],
- },
- {
- key: 'subsd4',
- icon: ,
- label: ( Community
),
- children: [
- {
- key: '9sd',
- label: (Exam Scheduled),
- },
- {
- key: '10sd',
- label: (Upcoming Exam),
- },
- {
- key: '11sd',
- label: (Passed Exam),
- },
- ],
- },
- {
- key: 'subsd5',
- icon: ,
- label: ( Notifications
),
- children: [
- {
- key: '12sd',
- label: (Exam Scheduled),
- },
- {
- key: '13sd',
- label: (Upcoming Exam),
- },
- {
- key: '14sd',
- label: (Passed Exam),
- },
- ],
- },
- // getItem('Files', '9', ),
- {
- key: 'grp',
- label: '',
- type: 'group',
- style: { marginTop: '100px' },
- children: [
- {
- key: '15sd', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
- icon: React.createElement(SettingOutlined, { style: { color: '#000' } }),
- label: (Settings
)
- },
- {
- key: '16sd', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
- icon: React.createElement(QuestionCircleOutlined, { style: { color: '#000' } }),
- label: (Help & Support
)
- },
- {
- key: '17sd', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
- icon: React.createElement(LogoutOutlined, { style: { color: '#000' } }),
- label: (Logout
)
- },
- ],
- },
-];
const items: MenuProps['items'] = [
{
label: 1st menu item,
@@ -188,7 +71,7 @@ const App: React.FC = () => {
IIMTT Logo
-
+
diff --git a/app/routes/start-course.tsx b/app/routes/start-course.tsx
new file mode 100644
index 0000000..ef53bca
--- /dev/null
+++ b/app/routes/start-course.tsx
@@ -0,0 +1,113 @@
+import React, {useState} from 'react';
+import { RightOutlined} from '@ant-design/icons';
+
+import StartCourse from '~/components/StartCourse';
+import {Layout, theme, Button, MenuProps, Breadcrumb, Dropdown, Space} from 'antd';
+import '../../public/assets/left_side_nav.css';
+import LeftSideMenu from '~/components/LeftSideMenuItems';
+
+
+const { Content, Sider } = Layout;
+
+const items1: MenuProps['items'] = ['1', '2', '3'].map((key) => ({
+ key,
+ label: `navsd ${key}`,
+}));
+
+type MenuItem = Required['items'][number];
+
+
+
+const items: MenuProps['items'] = [
+ {
+ label: 1st menu item,
+ key: '01sd',
+ },
+ {
+ type: 'divider',
+ },
+ {
+ label: 2nd menu item,
+ key: '02sd',
+ },
+ {
+ type: 'divider',
+ },
+ {
+ label: '3rd menu item',
+ key: '03sd',
+ },
+];
+
+const Course: React.FC = () => {
+ const [collapsed, setCollapsed] = useState(false);
+ const [open, setOpen] = React.useState(false);
+ const [loading, setLoading] = React.useState(true);
+ const showLoading = () => {
+ setOpen(true);
+ setLoading(true);
+
+ // Simple loading mock. You should add cleanup logic in real world.
+ setTimeout(() => {
+ setLoading(false);
+ }, 100);
+ };
+ const { token: { colorBgContainer}, } = theme.useToken();
+
+ return (
+
+
+
+
setCollapsed(value)} width={366} style={{overflow: 'auto', height: '110vh', position: 'fixed', left: 0, top: 0, bottom: 0, background: '#FFF', borderRight: '1px solid #CFCFCF', borderBottom: '2px solid #000'}}>
+
+
+
+
+
+
+
+
+
+ Course,},{title: 'Theory',},]}/>
+
+
+
+
+
+
+
+ {/* Place Content from here */}
+
+
+
+
+
+
+ );
+};
+export default Course;
+
diff --git a/app/routes/student-dashboard._index.tsx b/app/routes/student-dashboard._index.tsx
index 44b730d..1179477 100644
--- a/app/routes/student-dashboard._index.tsx
+++ b/app/routes/student-dashboard._index.tsx
@@ -11,6 +11,7 @@ import TopPerformers from '~/components/TopPerformers';
import {Layout, Menu, theme, Button, Modal, MenuProps} from 'antd';
import { Dropdown, Space } from 'antd';
import '../../public/assets/left_side_nav.css';
+import LeftSideMenu from '~/components/LeftSideMenuItems';
const { Content, Sider } = Layout;
@@ -22,124 +23,6 @@ const items1: MenuProps['items'] = ['1', '2', '3'].map((key) => ({
type MenuItem = Required['items'][number];
-
-const items2: MenuProps['items'] = [
- {
- key: 'subsd1',
- icon: ,
- label: ( Administration
),
- children: [
- {
- key: '1sd',
- label: (Class Schedules),
- },
- {
- key: '2sd',
- label: (Classmate Directory),
- },
- {
- key: '3sd',
- label: (Qualifications),
- },
- ],
- },
- {
- key: 'subsd2',
- icon: ,
- label: ( My Courses
),
- children: [
- {
- key: '4sd',
- label: (Graduate Program),
- },
- {
- key: '5sd',
- label: (Post-Graduate Program),
- },
- ],
- },
- {
- key: 'subsd3',
- icon: ,
- label: ( Examinations
),
- children: [
- {
- key: '6sd',
- label: (Exam Scheduled),
- },
- {
- key: '7sd',
- label: (Upcoming Exam),
- },
- {
- key: '8sd',
- label: (Passed Exam),
- },
- ],
- },
- {
- key: 'subsd4',
- icon: ,
- label: ( Community
),
- children: [
- {
- key: '9sd',
- label: (Exam Scheduled),
- },
- {
- key: '10sd',
- label: (Upcoming Exam),
- },
- {
- key: '11sd',
- label: (Passed Exam),
- },
- ],
- },
- {
- key: 'subsd5',
- icon: ,
- label: ( Notifications
),
- children: [
- {
- key: '12sd',
- label: (Exam Scheduled),
- },
- {
- key: '13sd',
- label: (Upcoming Exam),
- },
- {
- key: '14sd',
- label: (Passed Exam),
- },
- ],
- },
- // getItem('Files', '9', ),
- {
- key: 'grp',
- label: '',
- type: 'group',
- style: { marginTop: '100px' },
- children: [
- {
- key: '15sd', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
- icon: React.createElement(SettingOutlined, { style: { color: '#000' } }),
- label: (Settings
)
- },
- {
- key: '16sd', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
- icon: React.createElement(QuestionCircleOutlined, { style: { color: '#000' } }),
- label: (Help & Support
)
- },
- {
- key: '17sd', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
- icon: React.createElement(LogoutOutlined, { style: { color: '#000' } }),
- label: (Logout
)
- },
- ],
- },
-];
const items: MenuProps['items'] = [
{
label: 1st menu item,
@@ -187,7 +70,7 @@ const App: React.FC = () => {
IIMTT Logo
-
+
@@ -195,13 +78,13 @@ const App: React.FC = () => {
-

+
Student Dashboard
diff --git a/public/assets/image1.jpg b/public/assets/image1.jpg
new file mode 100644
index 0000000..ed8fa12
Binary files /dev/null and b/public/assets/image1.jpg differ
diff --git a/public/assets/image2.jpg b/public/assets/image2.jpg
new file mode 100644
index 0000000..e2ca92e
Binary files /dev/null and b/public/assets/image2.jpg differ
diff --git a/public/assets/image3.jpg b/public/assets/image3.jpg
new file mode 100644
index 0000000..35c4782
Binary files /dev/null and b/public/assets/image3.jpg differ
diff --git a/public/assets/play.svg b/public/assets/play.svg
new file mode 100644
index 0000000..ea0e5f7
--- /dev/null
+++ b/public/assets/play.svg
@@ -0,0 +1,3 @@
+