From 5dc331a7025158d57eb44ed476a9df690e8ef657 Mon Sep 17 00:00:00 2001
From: Suvodip
Date: Tue, 23 Jul 2024 21:49:48 +0530
Subject: [PATCH] s1
---
app/components/KnowledgeQuest.tsx | 746 ++++++++++++++++++++++++++++
app/components/StudentDashboard.tsx | 468 +++++++++++++++++
app/components/TestComponent.tsx | 6 +-
app/components/TestComponent2.tsx | 356 +++++++++++++
app/routes/about.tsx | 10 -
app/routes/knowledge-quest.tsx | 10 +
app/routes/student-dashboard2.tsx | 10 +
app/routes/test2.tsx | 476 ++++++++++++++++++
package.json | 2 +-
public/assets/ai-button-icon.svg | 4 +
public/assets/avatar1.png | Bin 0 -> 9339 bytes
public/assets/avatar2.png | Bin 0 -> 3300 bytes
public/assets/avatar3.png | Bin 0 -> 3030 bytes
public/assets/avatar4.png | Bin 0 -> 3860 bytes
public/assets/avatar5.png | Bin 0 -> 7728 bytes
public/assets/avatar6.png | Bin 0 -> 7036 bytes
public/assets/bacth1.svg | 17 +
public/assets/bacth2.svg | 15 +
public/assets/bacth3.svg | 14 +
public/assets/crown.png | Bin 0 -> 1764 bytes
public/assets/knowledge-quest.css | 115 +++++
public/assets/knowledge1.jpg | Bin 0 -> 35259 bytes
public/assets/knowledge2.jpg | Bin 0 -> 27364 bytes
public/assets/knowledge3.jpg | Bin 0 -> 20827 bytes
public/assets/points-icon.svg | 6 +
public/assets/student-dashboard.css | 83 ++++
26 files changed, 2324 insertions(+), 14 deletions(-)
create mode 100644 app/components/KnowledgeQuest.tsx
create mode 100644 app/components/StudentDashboard.tsx
create mode 100644 app/components/TestComponent2.tsx
delete mode 100644 app/routes/about.tsx
create mode 100644 app/routes/knowledge-quest.tsx
create mode 100644 app/routes/student-dashboard2.tsx
create mode 100644 app/routes/test2.tsx
create mode 100644 public/assets/ai-button-icon.svg
create mode 100644 public/assets/avatar1.png
create mode 100644 public/assets/avatar2.png
create mode 100644 public/assets/avatar3.png
create mode 100644 public/assets/avatar4.png
create mode 100644 public/assets/avatar5.png
create mode 100644 public/assets/avatar6.png
create mode 100644 public/assets/bacth1.svg
create mode 100644 public/assets/bacth2.svg
create mode 100644 public/assets/bacth3.svg
create mode 100644 public/assets/crown.png
create mode 100644 public/assets/knowledge-quest.css
create mode 100644 public/assets/knowledge1.jpg
create mode 100644 public/assets/knowledge2.jpg
create mode 100644 public/assets/knowledge3.jpg
create mode 100644 public/assets/points-icon.svg
create mode 100644 public/assets/student-dashboard.css
diff --git a/app/components/KnowledgeQuest.tsx b/app/components/KnowledgeQuest.tsx
new file mode 100644
index 0000000..1e52ee2
--- /dev/null
+++ b/app/components/KnowledgeQuest.tsx
@@ -0,0 +1,746 @@
+import React, {useState} from 'react';
+import { SettingOutlined, QuestionCircleOutlined, LogoutOutlined, DownOutlined} from '@ant-design/icons';
+import Icon from '@ant-design/icons';
+
+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';
+import {Layout, Menu, theme, Button, Modal, MenuProps, Tabs} from 'antd';
+const { TabPane } = Tabs;
+
+import { Dropdown, Space } from 'antd';
+import '../../public/assets/knowledge-quest.css';
+
+let courseData = [
+ {
+ id : "1",
+ title : "Life History of Dr. Maria Montessori",
+ chapter : "1",
+ Program : "Graduate Program",
+ img : "../../assets/course1.jpg"
+ },
+ {
+ id : "2",
+ title : "Introduction to Montessori Methods",
+ chapter : "2",
+ Program : "Graduate Program",
+ img : "../../assets/course2.jpg"
+ },
+ {
+ id : "3",
+ title : "Exercises on Practical Life",
+ chapter : "3",
+ Program : "Graduate Program",
+ img : "../../assets/course3.jpg"
+ }
+];
+let knowledgeData = [
+ {
+ id: "1",
+ status: "1",
+ title: "Assessment on Special Education",
+ challenge: "Challenge yourself & climb the leaderboard.",
+ question: "Subjective Question",
+ img: "../../assets/knowledge1.jpg"
+ },
+ {
+ id: "2",
+ status: "1",
+ title: "Quiz on Children Psychology",
+ challenge: "Challenge yourself & climb the leaderboard.",
+ question: "MCQ",
+ img: "../../assets/knowledge2.jpg"
+ },
+ {
+ id: "3",
+ status: "1",
+ title: "Quiz on Montessori Methods",
+ challenge: "Challenge yourself & climb the leaderboard.",
+ question: "MCQ",
+ img: "../../assets/knowledge3.jpg"
+ },
+ {
+ id: "4",
+ status: "1",
+ title: "Assessment on Special Education",
+ challenge: "Challenge yourself & climb the leaderboard.",
+ question: "Subjective Question",
+ img: "../../assets/knowledge1.jpg"
+ },
+ {
+ id: "5",
+ status: "1",
+ title: "Quiz on Children Psychology",
+ challenge: "Challenge yourself & climb the leaderboard.",
+ question: "MCQ",
+ img: "../../assets/knowledge2.jpg"
+ },
+ {
+ id: "6",
+ status: "1",
+ title: "Quiz on Montessori Methods",
+ challenge: "Challenge yourself & climb the leaderboard.",
+ question: "MCQ",
+ img: "../../assets/knowledge3.jpg"
+ },
+ {
+ id: "7",
+ status: "1",
+ title: "Workshop on Child Development",
+ challenge: "Expand your knowledge & earn badges.",
+ question: "Interactive Session",
+ img: "../../assets/knowledge1.jpg"
+ },
+ {
+ id: "8",
+ status: "1",
+ title: "Webinar on Educational Psychology",
+ challenge: "Join & enhance your skills.",
+ question: "Discussion",
+ img: "../../assets/knowledge2.jpg"
+ },
+ {
+ id: "9",
+ status: "1",
+ title: "Seminar on Inclusive Education",
+ challenge: "Participate & gain insights.",
+ question: "Lecture",
+ img: "../../assets/knowledge3.jpg"
+ },
+ {
+ id: "10",
+ status: "1",
+ title: "Course on Early Childhood Education",
+ challenge: "Complete the course & get certified.",
+ question: "Multiple Modules",
+ img: "../../assets/knowledge1.jpg"
+ },
+ {
+ id: "11",
+ status: "1",
+ title: "Training on Classroom Management",
+ challenge: "Improve your teaching strategies.",
+ question: "Practical Tasks",
+ img: "../../assets/knowledge2.jpg"
+ },
+ {
+ id: "12",
+ status: "1",
+ title: "Lecture on Cognitive Development",
+ challenge: "Expand your understanding & get certified.",
+ question: "Q&A Session",
+ img: "../../assets/knowledge3.jpg"
+ },
+ {
+ id: "13",
+ status: "1",
+ title: "Workshop on Behavioral Issues",
+ challenge: "Join & learn from experts.",
+ question: "Interactive Session",
+ img: "../../assets/knowledge1.jpg"
+ },
+ {
+ id: "14",
+ status: "1",
+ title: "Seminar on Learning Disabilities",
+ challenge: "Participate & enhance your knowledge.",
+ question: "Lecture",
+ img: "../../assets/knowledge2.jpg"
+ },
+ {
+ id: "15",
+ status: "1",
+ title: "Webinar on Child Psychology",
+ challenge: "Join & expand your skills.",
+ question: "Discussion",
+ img: "../../assets/knowledge3.jpg"
+ },
+ {
+ id: "16",
+ status: "1",
+ title: "Course on Special Education Needs",
+ challenge: "Complete the course & get certified.",
+ question: "Multiple Modules",
+ img: "../../assets/knowledge1.jpg"
+ },
+ {
+ id: "17",
+ status: "1",
+ title: "Training on Autism Spectrum Disorder",
+ challenge: "Improve your teaching strategies.",
+ question: "Practical Tasks",
+ img: "../../assets/knowledge2.jpg"
+ },
+ {
+ id: "18",
+ status: "1",
+ title: "Lecture on Emotional Development",
+ challenge: "Expand your understanding & get certified.",
+ question: "Q&A Session",
+ img: "../../assets/knowledge3.jpg"
+ },
+ {
+ id: "19",
+ status: "1",
+ title: "Workshop on ADHD",
+ challenge: "Join & learn from experts.",
+ question: "Interactive Session",
+ img: "../../assets/knowledge1.jpg"
+ },
+ {
+ id: "20",
+ status: "1",
+ title: "Seminar on Speech and Language Disorders",
+ challenge: "Participate & enhance your knowledge.",
+ question: "Lecture",
+ img: "../../assets/knowledge2.jpg"
+ },
+ {
+ id: "21",
+ status: "1",
+ title: "Webinar on Child Nutrition",
+ challenge: "Join & expand your skills.",
+ question: "Discussion",
+ img: "../../assets/knowledge3.jpg"
+ }
+];
+
+
+let performersData = [
+ {
+ id: "1",
+ name: "Eiden",
+ score: "48/50",
+ points: "999",
+ rank: "1",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar1.png"
+ },
+ {
+ id: "2",
+ name: "Jackson",
+ score: "45/50",
+ points: "997",
+ rank: "2",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar2.png"
+ },
+ {
+ id: "3",
+ name: "Emma Aria",
+ score: "43/50",
+ points: "994",
+ rank: "3",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar3.png"
+ },
+ {
+ id: "4",
+ name: "John Doe",
+ score: "40/50",
+ points: "990",
+ rank: "4",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar4.png"
+ },
+ {
+ id: "5",
+ name: "Jane Cooper",
+ score: "37/50",
+ points: "987",
+ rank: "5",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar5.png"
+ },
+ {
+ id: "6",
+ name: "John Doe",
+ score: "35/50",
+ points: "982",
+ rank: "6",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar6.png"
+ },
+ {
+ id: "7",
+ name: "Alice",
+ score: "33/50",
+ points: "980",
+ rank: "7",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar1.png"
+ },
+ {
+ id: "8",
+ name: "Bob",
+ score: "32/50",
+ points: "978",
+ rank: "8",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar2.png"
+ },
+ {
+ id: "9",
+ name: "Charlie",
+ score: "30/50",
+ points: "975",
+ rank: "9",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar3.png"
+ },
+ {
+ id: "10",
+ name: "Diana",
+ score: "28/50",
+ points: "972",
+ rank: "10",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar4.png"
+ },
+ {
+ id: "11",
+ name: "Edward",
+ score: "27/50",
+ points: "970",
+ rank: "11",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar5.png"
+ },
+ {
+ id: "12",
+ name: "Fiona",
+ score: "26/50",
+ points: "968",
+ rank: "12",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar6.png"
+ },
+ {
+ id: "13",
+ name: "George",
+ score: "25/50",
+ points: "965",
+ rank: "13",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar1.png"
+ },
+ {
+ id: "14",
+ name: "Hannah",
+ score: "23/50",
+ points: "962",
+ rank: "14",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar2.png"
+ },
+ {
+ id: "15",
+ name: "Ian",
+ score: "22/50",
+ points: "960",
+ rank: "15",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar3.png"
+ },
+ {
+ id: "16",
+ name: "Julia",
+ score: "20/50",
+ points: "957",
+ rank: "16",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar4.png"
+ },
+ {
+ id: "17",
+ name: "Kyle",
+ score: "19/50",
+ points: "955",
+ rank: "17",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar5.png"
+ },
+ {
+ id: "18",
+ name: "Laura",
+ score: "18/50",
+ points: "953",
+ rank: "18",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar6.png"
+ },
+ {
+ id: "19",
+ name: "Michael",
+ score: "17/50",
+ points: "950",
+ rank: "19",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar1.png"
+ },
+ {
+ id: "20",
+ name: "Nancy",
+ score: "16/50",
+ points: "947",
+ rank: "20",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar2.png"
+ },
+ {
+ id: "21",
+ name: "Oliver",
+ score: "15/50",
+ points: "945",
+ rank: "21",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar3.png"
+ }
+];
+
+
+const sortedData = performersData.sort((a, b) => parseInt(a.rank) - parseInt(b.rank));
+
+const highestRank = sortedData[0];
+const secondHighestRank = sortedData[1];
+const thirdHighestRank = sortedData[2];
+
+console.log('The highest rank is:', highestRank);
+console.log('The second highest rank is:', secondHighestRank);
+console.log('The Third highest rank is:', thirdHighestRank);
+
+
+
+// const highestRank = performersData.reduce((prev, current) => (prev.rank < current.rank) ? prev : current);
+
+// console.log('The highest rank is:', highestRank);
+
+const { Header, Content, Sider } = Layout;
+
+const items1: MenuProps['items'] = ['1', '2', '3'].map((key) => ({
+ key,
+ label: `navkq ${key}`,
+}));
+
+type MenuItem = Required['items'][number];
+
+
+const items2: MenuProps['items'] = [
+ {
+ key: 'subkq1',
+ icon: ,
+ label: 'Administration',
+ children: [
+ {
+ key: '1kq',
+ label: (Class Schedules),
+ },
+ {
+ key: '2kq',
+ label: (Classmate Directory),
+ },
+ {
+ key: '3kq',
+ label: (Qualifications),
+ },
+ ],
+ },
+ {
+ key: 'subkq2',
+ icon: ,
+ label: 'My Courses',
+ children: [
+ {
+ key: '4kq',
+ label: (Graduate Program),
+ },
+ {
+ key: '5kq',
+ label: (Post-Graduate Program),
+ },
+ ],
+ },
+ {
+ key: 'subkq3',
+ icon: ,
+ label: 'Examinations',
+ children: [
+ {
+ key: '6kq',
+ label: (Exam Scheduled),
+ },
+ {
+ key: '7kq',
+ label: (Upcoming Exam),
+ },
+ {
+ key: '8kq',
+ label: (Passed Exam),
+ },
+ ],
+ },
+ {
+ key: 'subkq4',
+ icon: ,
+ label: 'Community',
+ children: [
+ {
+ key: '9kq',
+ label: (Exam Scheduled),
+ },
+ {
+ key: '10kq',
+ label: (Upcoming Exam),
+ },
+ {
+ key: '11kq',
+ label: (Passed Exam),
+ },
+ ],
+ },
+ {
+ key: 'subkq5',
+ icon: ,
+ label: 'Notifications',
+ children: [
+ {
+ key: '12kq',
+ label: (Exam Scheduled),
+ },
+ {
+ key: '13kq',
+ label: (Upcoming Exam),
+ },
+ {
+ key: '14kq',
+ label: (Passed Exam),
+ },
+ ],
+ },
+ // getItem('Files', '9', ),
+ {
+ key: 'grp',
+ label: '',
+ type: 'group',
+ style: { marginTop: '100px' },
+ children: [
+ {
+ key: '15kq', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
+ icon: React.createElement(SettingOutlined, { style: { color: '#000' } }),
+ label: (Settings
)
+ },
+ {
+ key: '16kq', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
+ icon: React.createElement(QuestionCircleOutlined, { style: { color: '#000' } }),
+ label: (Help & Support
)
+ },
+ {
+ key: '17kq', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
+ icon: React.createElement(LogoutOutlined, { style: { color: '#000' } }),
+ label: (Logout
)
+ },
+ ],
+ },
+];
+const items: MenuProps['items'] = [
+ {
+ label: 1st menu item,
+ key: '01kq',
+ },
+ {
+ type: 'divider',
+ },
+ {
+ label: 2nd menu item,
+ key: '02kq',
+ },
+ {
+ type: 'divider',
+ },
+ {
+ label: '3rd menu item',
+ key: '03kq',
+ },
+ ];
+
+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 (
+
+
+ <>
+ {/* */}
+ Loading Modal
} footer={ } loading={loading} open={open} onCancel={() => setOpen(false)} >
+ Some contents...
+ Some contents...
+ Some contents...
+
+ >
+ {/* */}
+
+
+
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'}}>
+
+
+
+
+ {/* defaultSelectedKeys={['1']} defaultOpenKeys={['sub1']} */}
+
+
+
+
+
+ {/*

*/}
+
Knowledge Quests
+
+
+
+
+
+
+
+
+
+
+
+ {knowledgeData.map(data => (
+
+
+

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

+
+
{data.title}
+
{data.challenge}
+
{data.question}
+
+
+
Review
+
+ ))}
+
+
+
+
+ {/*
Knowledge Quests 
*/}
+
+
+
Top Performers 
+
Knowledge Quest
+
+
+
+

+

+
+
{secondHighestRank.name}
+
{secondHighestRank.score}
+
+
+
+
{highestRank.name}
+
{highestRank.score}
+
+
+
+

+

+
+
{thirdHighestRank.name}
+
{thirdHighestRank.score}
+
+
+
+ {sortedData.slice(3).map(data => (
+
+
# {data.rank}
+

+
+
{data.name}
+
{data.program}
+
+
+

+
{data.points} Points
+
+
+ ))}
+
+
+
+
+
+
+
+
+ );
+};
+export default App;
\ No newline at end of file
diff --git a/app/components/StudentDashboard.tsx b/app/components/StudentDashboard.tsx
new file mode 100644
index 0000000..ccc5b13
--- /dev/null
+++ b/app/components/StudentDashboard.tsx
@@ -0,0 +1,468 @@
+import React, {useState} from 'react';
+import { SettingOutlined, QuestionCircleOutlined, LogoutOutlined, DownOutlined} from '@ant-design/icons';
+import Icon from '@ant-design/icons';
+
+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';
+import {Layout, Menu, theme, Button, Modal, MenuProps} from 'antd';
+import { Dropdown, Space } from 'antd';
+import '../../public/assets/student-dashboard.css';
+
+let courseData = [
+ {
+ id : "1",
+ title : "Life History of Dr. Maria Montessori",
+ chapter : "1",
+ Program : "Graduate Program",
+ img : "../../assets/course1.jpg"
+ },
+ {
+ id : "2",
+ title : "Introduction to Montessori Methods",
+ chapter : "2",
+ Program : "Graduate Program",
+ img : "../../assets/course2.jpg"
+ },
+ {
+ id : "3",
+ title : "Exercises on Practical Life",
+ chapter : "3",
+ Program : "Graduate Program",
+ img : "../../assets/course3.jpg"
+ }
+];
+let knowledgeData = [
+ {
+ id: "1",
+ status: "1",
+ title: "Assessment on Special Education",
+ challenge: "Challenge yourself & climb the leaderboard.",
+ question: "Subjective Question",
+ img: "../../assets/knowledge1.jpg"
+ },
+ {
+ id: "2",
+ status: "1",
+ title: "Quiz on Children Psychology",
+ challenge: "Challenge yourself & climb the leaderboard.",
+ question: "MCQ",
+ img: "../../assets/knowledge2.jpg"
+ },
+ {
+ id: "3",
+ status: "1",
+ title: "Quiz on Montessori Methods",
+ challenge: "Challenge yourself & climb the leaderboard.",
+ question: "MCQ",
+ img: "../../assets/knowledge3.jpg"
+ }
+];
+
+let performersData = [
+ {
+ id: "1",
+ name: "Eiden",
+ score: "48/50",
+ points: "999",
+ rank: "1",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar1.png"
+ },
+ {
+ id: "2",
+ name: "Jackson",
+ score: "45/50",
+ points: "997",
+ rank: "2",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar2.png"
+ },
+ {
+ id: "3",
+ name: "Emma Aria",
+ score: "43/50",
+ points: "994",
+ rank: "3",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar3.png"
+ },
+ {
+ id: "4",
+ name: "John Doe",
+ score: "40/50",
+ points: "990",
+ rank: "4",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar4.png"
+ },
+ {
+ id: "5",
+ name: "Jane Cooper",
+ score: "37/50",
+ points: "987",
+ rank: "5",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar5.png"
+ },
+ {
+ id: "6",
+ name: "John Doe",
+ score: "35/50",
+ points: "982",
+ rank: "6",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar6.png"
+ }
+];
+
+const sortedData = performersData.sort((a, b) => parseInt(a.rank) - parseInt(b.rank));
+
+const highestRank = sortedData[0];
+const secondHighestRank = sortedData[1];
+const thirdHighestRank = sortedData[2];
+
+console.log('The highest rank is:', highestRank);
+console.log('The second highest rank is:', secondHighestRank);
+console.log('The Third highest rank is:', thirdHighestRank);
+
+
+
+// const highestRank = performersData.reduce((prev, current) => (prev.rank < current.rank) ? prev : current);
+
+// console.log('The highest rank is:', highestRank);
+
+const { Header, Content, Sider } = Layout;
+
+const items1: MenuProps['items'] = ['1', '2', '3'].map((key) => ({
+ key,
+ label: `navsd ${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,
+ 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 (
+
+
+ <>
+ {/* */}
+ Loading Modal} footer={ } loading={loading} open={open} onCancel={() => setOpen(false)} >
+ Some contents...
+ Some contents...
+ Some contents...
+
+ >
+ {/* */}
+
+
+
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'}}>
+
+
+
+
+ {/* defaultSelectedKeys={['1']} defaultOpenKeys={['sub1']} */}
+
+
+
+
+
+

+
Student Dashboard
+
+
+
+
+
+
+
+
Continue Learning 
+
+ {courseData.map(data=>(
+
+

+
{data.title}
+
+ Chapter {data.chapter} •
+ {data.Program}
+
+
+ ))}
+
+
+
+ {/* knowledgeData */}
+
+
+
+
Knowledge Quests 
+
+ {knowledgeData.map(data => (
+
+
+

+
+
{data.title}
+
{data.challenge}
+
{data.question}
+
+
+
+
+ ))}
+
+
+
+
Top Performers 
+
Knowledge Quest
+
+
+
+

+

+
+
{secondHighestRank.name}
+
{secondHighestRank.score}
+
+
+
+
{highestRank.name}
+
{highestRank.score}
+
+
+
+

+

+
+
{thirdHighestRank.name}
+
{thirdHighestRank.score}
+
+
+
+ {sortedData.slice(3).map(data => (
+
+
# {data.rank}
+

+
+
{data.name}
+
{data.program}
+
+
+

+
{data.points} Points
+
+
+ ))}
+
+
+
+
+
+
+
+
+ );
+};
+export default App;
\ No newline at end of file
diff --git a/app/components/TestComponent.tsx b/app/components/TestComponent.tsx
index e9c712e..e8703c7 100644
--- a/app/components/TestComponent.tsx
+++ b/app/components/TestComponent.tsx
@@ -235,7 +235,7 @@ const App: React.FC = () => {
-
+
Student Dashboard
@@ -268,7 +268,7 @@ const App: React.FC = () => {
-
+
Course Content 
{courseData.map(data=>(
@@ -284,7 +284,7 @@ const App: React.FC = () => {
-
+
diff --git a/app/components/TestComponent2.tsx b/app/components/TestComponent2.tsx
new file mode 100644
index 0000000..0e8b9a2
--- /dev/null
+++ b/app/components/TestComponent2.tsx
@@ -0,0 +1,356 @@
+import React, {useState} from 'react';
+import { SettingOutlined, QuestionCircleOutlined, LogoutOutlined, DownOutlined} from '@ant-design/icons';
+import Icon from '@ant-design/icons';
+
+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';
+import {Layout, Menu, theme, Button, Modal, MenuProps} from 'antd';
+import { Dropdown, Space } from 'antd';
+import '../../public/assets/ss1.css';
+
+let courseData = [
+ {
+ id : "1",
+ title : "Life History of Dr. Maria Montessori",
+ chapter : "1",
+ Program : "Graduate Program",
+ img : "../../assets/course-blank.jpg"
+ },
+ {
+ id : "2",
+ title : "Introduction to Montessori Methods",
+ chapter : "2",
+ Program : "Graduate Program",
+ img : "../../assets/course-blank.jpg"
+ },
+ {
+ id : "3",
+ title : "Exercises on Practical Life",
+ chapter : "3",
+ Program : "Graduate Program",
+ img : "../../assets/course-blank.jpg"
+ }
+ ]
+
+const { Header, Content, Sider } = Layout;
+
+const items1: MenuProps['items'] = ['1', '2', '3'].map((key) => ({
+ key,
+ label: `navx ${key}`,
+}));
+
+type MenuItem = Required
['items'][number];
+
+
+const items2: MenuProps['items'] = [
+ {
+ key: 'subx1',
+ icon: ,
+ label: 'Administration',
+ children: [
+ {
+ key: '1x',
+ label: (Class Schedules),
+ },
+ {
+ key: '2x',
+ label: (Classmate Directory),
+ },
+ {
+ key: '3x',
+ label: (Qualifications),
+ },
+ ],
+ },
+ {
+ key: 'subx2',
+ icon: ,
+ label: 'My Courses',
+ children: [
+ {
+ key: '4x',
+ label: (Graduate Program),
+ },
+ {
+ key: '5x',
+ label: (Post-Graduate Program),
+ },
+ ],
+ },
+ {
+ key: 'subx3',
+ icon: ,
+ label: 'Examinations',
+ children: [
+ {
+ key: '6x',
+ label: (Exam Scheduled),
+ },
+ {
+ key: '7x',
+ label: (Upcoming Exam),
+ },
+ {
+ key: '8x',
+ label: (Passed Exam),
+ },
+ ],
+ },
+ {
+ key: 'subx4',
+ icon: ,
+ label: 'Community',
+ children: [
+ {
+ key: '9x',
+ label: (Exam Scheduled),
+ },
+ {
+ key: '10x',
+ label: (Upcoming Exam),
+ },
+ {
+ key: '11x',
+ label: (Passed Exam),
+ },
+ ],
+ },
+ {
+ key: 'subx5',
+ icon: ,
+ label: 'Notifications',
+ children: [
+ {
+ key: '12x',
+ label: (Exam Scheduled),
+ },
+ {
+ key: '13x',
+ label: (Upcoming Exam),
+ },
+ {
+ key: '14x',
+ label: (Passed Exam),
+ },
+ ],
+ },
+ // getItem('Files', '9', ),
+ {
+ key: 'grp',
+ label: '',
+ type: 'group',
+ style: { marginTop: '100px' },
+ children: [
+ {
+ key: '15x', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
+ icon: React.createElement(SettingOutlined, { style: { color: '#FFF' } }),
+ label: (Settings
)
+ },
+ {
+ key: '16x', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
+ icon: React.createElement(QuestionCircleOutlined, { style: { color: '#FFF' } }),
+ label: (Help & Support
)
+ },
+ {
+ key: '17x', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
+ icon: React.createElement(LogoutOutlined, { style: { color: '#FFF' } }),
+ label: (Logout
)
+ },
+ ],
+ },
+];
+const items: MenuProps['items'] = [
+ {
+ label: 1st menu item,
+ key: '01',
+ },
+ {
+ type: 'divider',
+ },
+ {
+ label: 2nd menu item,
+ key: '02',
+ },
+ {
+ type: 'divider',
+ },
+ {
+ label: '3rd menu item',
+ key: '03',
+ },
+ ];
+
+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 (
+
+
+ <>
+ {/* */}
+ Loading Modal} footer={ } loading={loading} open={open} onCancel={() => setOpen(false)} >
+ Some contents...
+ Some contents...
+ Some contents...
+
+ >
+ {/* */}
+
+
+
setCollapsed(value)} width={310} style={{overflow: 'auto', height: '110vh', position: 'fixed', left: 0, top: 0, bottom: 0, background: 'linear-gradient(180deg, #2F1B08D6 0%, #000000D6 83.93%)', borderRight: '1px solid #CFCFCF', borderBottom: '2px solid #000'}}>
+
+
+
+
+ {/* defaultSelectedKeys={['1']} defaultOpenKeys={['sub1']} */}
+
+
+
+
+
+

+
Student Dashboard
+
+
+
+
+
+
+
Course Content 
+
+ {courseData.map(data=>(
+
+

+
{data.title}
+
+ Chapter {data.chapter} •
+ {data.Program}
+
+
+ ))}
+
+
+
+
+
+
+
+
+
+
Attendance
+

+
+
Graph
+
+
+
+
Upcoming Classes
+

+
+
+
+
+
+
Accomplishments / Qualifications
+
+
+
+
+
Upcoming Tests
+
+
+

+
+
+

+
+
+

+
+
+

+
+
+

+
+
+

+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default App;
diff --git a/app/routes/about.tsx b/app/routes/about.tsx
deleted file mode 100644
index a39e2a3..0000000
--- a/app/routes/about.tsx
+++ /dev/null
@@ -1,10 +0,0 @@
-import type { MetaFunction } from "@remix-run/node";
-import TestComponent from '../components/TestComponent'; // Fix typo here
-
-export default function Index() {
- return (
-
- {/* Ensure the component name matches the import */}
-
- );
-}
diff --git a/app/routes/knowledge-quest.tsx b/app/routes/knowledge-quest.tsx
new file mode 100644
index 0000000..237ca3a
--- /dev/null
+++ b/app/routes/knowledge-quest.tsx
@@ -0,0 +1,10 @@
+import type { MetaFunction } from "@remix-run/node";
+import KnowledgeQuest from '../components/KnowledgeQuest'
+
+export default function Index() {
+ return (
+
+ {/* Ensure the component name matches the import */}
+
+ );
+}
diff --git a/app/routes/student-dashboard2.tsx b/app/routes/student-dashboard2.tsx
new file mode 100644
index 0000000..99bc5dc
--- /dev/null
+++ b/app/routes/student-dashboard2.tsx
@@ -0,0 +1,10 @@
+import type { MetaFunction } from "@remix-run/node";
+import StudentDashboard from '../components/StudentDashboard'
+
+export default function Index() {
+ return (
+
+ {/* Ensure the component name matches the import */}
+
+ );
+}
diff --git a/app/routes/test2.tsx b/app/routes/test2.tsx
new file mode 100644
index 0000000..1e01811
--- /dev/null
+++ b/app/routes/test2.tsx
@@ -0,0 +1,476 @@
+import React, {useState} from 'react';
+import { SettingOutlined, QuestionCircleOutlined, LogoutOutlined, DownOutlined} from '@ant-design/icons';
+import Icon from '@ant-design/icons';
+
+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';
+import {Layout, Menu, theme, Button, Modal, MenuProps, Tabs} from 'antd';
+const { TabPane } = Tabs;
+
+import { Dropdown, Space } from 'antd';
+import '../../public/assets/knowledge-quest.css';
+
+let courseData = [
+ {
+ id : "1",
+ title : "Life History of Dr. Maria Montessori",
+ chapter : "1",
+ Program : "Graduate Program",
+ img : "../../assets/course1.jpg"
+ },
+ {
+ id : "2",
+ title : "Introduction to Montessori Methods",
+ chapter : "2",
+ Program : "Graduate Program",
+ img : "../../assets/course2.jpg"
+ },
+ {
+ id : "3",
+ title : "Exercises on Practical Life",
+ chapter : "3",
+ Program : "Graduate Program",
+ img : "../../assets/course3.jpg"
+ }
+];
+let knowledgeData = [
+ {
+ id: "1",
+ status: "1",
+ title: "Assessment on Special Education",
+ challenge: "Challenge yourself & climb the leaderboard.",
+ question: "Subjective Question",
+ img: "../../assets/knowledge1.jpg"
+ },
+ {
+ id: "2",
+ status: "1",
+ title: "Quiz on Children Psychology",
+ challenge: "Challenge yourself & climb the leaderboard.",
+ question: "MCQ",
+ img: "../../assets/knowledge2.jpg"
+ },
+ {
+ id: "3",
+ status: "1",
+ title: "Quiz on Montessori Methods",
+ challenge: "Challenge yourself & climb the leaderboard.",
+ question: "MCQ",
+ img: "../../assets/knowledge3.jpg"
+ }
+];
+
+let performersData = [
+ {
+ id: "1",
+ name: "Eiden",
+ score: "48/50",
+ points: "999",
+ rank: "1",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar1.png"
+ },
+ {
+ id: "2",
+ name: "Jackson",
+ score: "45/50",
+ points: "997",
+ rank: "2",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar2.png"
+ },
+ {
+ id: "3",
+ name: "Emma Aria",
+ score: "43/50",
+ points: "994",
+ rank: "3",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar3.png"
+ },
+ {
+ id: "4",
+ name: "John Doe",
+ score: "40/50",
+ points: "990",
+ rank: "4",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar4.png"
+ },
+ {
+ id: "5",
+ name: "Jane Cooper",
+ score: "37/50",
+ points: "987",
+ rank: "5",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar5.png"
+ },
+ {
+ id: "6",
+ name: "John Doe",
+ score: "35/50",
+ points: "982",
+ rank: "6",
+ program: "Graduate Program",
+ avatar: "../../assets/avatar6.png"
+ }
+];
+
+const sortedData = performersData.sort((a, b) => parseInt(a.rank) - parseInt(b.rank));
+
+const highestRank = sortedData[0];
+const secondHighestRank = sortedData[1];
+const thirdHighestRank = sortedData[2];
+
+console.log('The highest rank is:', highestRank);
+console.log('The second highest rank is:', secondHighestRank);
+console.log('The Third highest rank is:', thirdHighestRank);
+
+
+
+// const highestRank = performersData.reduce((prev, current) => (prev.rank < current.rank) ? prev : current);
+
+// console.log('The highest rank is:', highestRank);
+
+const { Header, Content, Sider } = Layout;
+
+const items1: MenuProps['items'] = ['1', '2', '3'].map((key) => ({
+ key,
+ label: `navkq ${key}`,
+}));
+
+type MenuItem = Required['items'][number];
+
+
+const items2: MenuProps['items'] = [
+ {
+ key: 'subkq1',
+ icon: ,
+ label: 'Administration',
+ children: [
+ {
+ key: '1kq',
+ label: (Class Schedules),
+ },
+ {
+ key: '2kq',
+ label: (Classmate Directory),
+ },
+ {
+ key: '3kq',
+ label: (Qualifications),
+ },
+ ],
+ },
+ {
+ key: 'subkq2',
+ icon: ,
+ label: 'My Courses',
+ children: [
+ {
+ key: '4kq',
+ label: (Graduate Program),
+ },
+ {
+ key: '5kq',
+ label: (Post-Graduate Program),
+ },
+ ],
+ },
+ {
+ key: 'subkq3',
+ icon: ,
+ label: 'Examinations',
+ children: [
+ {
+ key: '6kq',
+ label: (Exam Scheduled),
+ },
+ {
+ key: '7kq',
+ label: (Upcoming Exam),
+ },
+ {
+ key: '8kq',
+ label: (Passed Exam),
+ },
+ ],
+ },
+ {
+ key: 'subkq4',
+ icon: ,
+ label: 'Community',
+ children: [
+ {
+ key: '9kq',
+ label: (Exam Scheduled),
+ },
+ {
+ key: '10kq',
+ label: (Upcoming Exam),
+ },
+ {
+ key: '11kq',
+ label: (Passed Exam),
+ },
+ ],
+ },
+ {
+ key: 'subkq5',
+ icon: ,
+ label: 'Notifications',
+ children: [
+ {
+ key: '12kq',
+ label: (Exam Scheduled),
+ },
+ {
+ key: '13kq',
+ label: (Upcoming Exam),
+ },
+ {
+ key: '14kq',
+ label: (Passed Exam),
+ },
+ ],
+ },
+ // getItem('Files', '9', ),
+ {
+ key: 'grp',
+ label: '',
+ type: 'group',
+ style: { marginTop: '100px' },
+ children: [
+ {
+ key: '15kq', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
+ icon: React.createElement(SettingOutlined, { style: { color: '#000' } }),
+ label: (Settings
)
+ },
+ {
+ key: '16kq', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
+ icon: React.createElement(QuestionCircleOutlined, { style: { color: '#000' } }),
+ label: (Help & Support
)
+ },
+ {
+ key: '17kq', style: {paddingTop: '10px', paddingBottom: '10px', border: 'none'},
+ icon: React.createElement(LogoutOutlined, { style: { color: '#000' } }),
+ label: (Logout
)
+ },
+ ],
+ },
+];
+const items: MenuProps['items'] = [
+ {
+ label: 1st menu item,
+ key: '01kq',
+ },
+ {
+ type: 'divider',
+ },
+ {
+ label: 2nd menu item,
+ key: '02kq',
+ },
+ {
+ type: 'divider',
+ },
+ {
+ label: '3rd menu item',
+ key: '03kq',
+ },
+ ];
+
+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 (
+
+
+ <>
+ {/* */}
+ Loading Modal} footer={ } loading={loading} open={open} onCancel={() => setOpen(false)} >
+ Some contents...
+ Some contents...
+ Some contents...
+
+ >
+ {/* */}
+
+
+
setCollapsed(value)} width={310} style={{overflow: 'auto', height: '110vh', position: 'fixed', left: 0, top: 0, bottom: 0, background: '#FFF', borderRight: '1px solid #CFCFCF', borderBottom: '2px solid #000'}}>
+
+
+
+
+ {/* defaultSelectedKeys={['1']} defaultOpenKeys={['sub1']} */}
+
+
+
+
+
+ {/*

*/}
+
Knowledge Quests
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {knowledgeData.map(data => (
+
+
+

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

+
+
{data.title}
+
{data.challenge}
+
{data.question}
+
+
+
+
+ ))}
+
+
+
+
+ {/*
Knowledge Quests 
*/}
+
+
+
Top Performers 
+
Knowledge Quest
+
+
+
+

+

+
+
{secondHighestRank.name}
+
{secondHighestRank.score}
+
+
+
+
{highestRank.name}
+
{highestRank.score}
+
+
+
+

+

+
+
{thirdHighestRank.name}
+
{thirdHighestRank.score}
+
+
+
+ {sortedData.slice(3).map(data => (
+
+
# {data.rank}
+

+
+
{data.name}
+
{data.program}
+
+
+

+
{data.points} Points
+
+
+ ))}
+
+
+
+
+
+
+
+
+ );
+};
+export default App;
\ No newline at end of file
diff --git a/package.json b/package.json
index bcaf8de..6090ca6 100644
--- a/package.json
+++ b/package.json
@@ -5,7 +5,7 @@
"type": "module",
"scripts": {
"build": "remix vite:build",
- "dev": "remix vite:dev",
+ "dev": "remix vite:dev --host 0.0.0.0",
"lint": "eslint --ignore-path .gitignore --cache --cache-location ./node_modules/.cache/eslint .",
"start": "remix-serve ./build/server/index.js",
"typecheck": "tsc"
diff --git a/public/assets/ai-button-icon.svg b/public/assets/ai-button-icon.svg
new file mode 100644
index 0000000..da579d3
--- /dev/null
+++ b/public/assets/ai-button-icon.svg
@@ -0,0 +1,4 @@
+
diff --git a/public/assets/avatar1.png b/public/assets/avatar1.png
new file mode 100644
index 0000000000000000000000000000000000000000..db2ff2e2be496492fbce93f1de87543730ebfea6
GIT binary patch
literal 9339
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
literal 0
HcmV?d00001
diff --git a/public/assets/avatar2.png b/public/assets/avatar2.png
new file mode 100644
index 0000000000000000000000000000000000000000..f8c024e97ca758f58a4c49bed5ec5d56c969e640
GIT binary patch
literal 3300
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
Y10BuJBcP%jlK=n!07*qoM6N<$g04@ny8r+H
literal 0
HcmV?d00001
diff --git a/public/assets/avatar4.png b/public/assets/avatar4.png
new file mode 100644
index 0000000000000000000000000000000000000000..04027fe7f53a0b2c9b29f191ada5295debc437e1
GIT binary patch
literal 3860
zcmV+v59{!WP)?~mJircDspfp1ocV&wlrL{MPqg-~vo&nzrD1
z!Rh?OOzA=9e;}Y+E@@fOdSUfK91s^83mSbUkZ}B6V>JARLmB+ecb~(V
zKmH?R(i!-^K=8RplzNVP@_xR1Uq+h*>HGdES&FRu^5x6;$s7L+&IO&L_Q<5kd-Yl!
zCywmL+~bEZGd+bwJOSM@(Cav;)N5Qs4Xd>pu70wNx8J{t?M@f}^442;{_1rcI&wH<
zmE$oAi!samMfLWzt}u6J0*n6K*GvD{=-FN>5nc4t!+0kLMEFX7tjC7
zQJntPaqOHdAW61hCBi}64t)A%KtJuad)V533h#V)1F!yM0q-o|#Lr)U0|%ZsL|2H@
z4n6`dTtkr4EbBsf`O5K$nf;}^G3j40_w8$^JkLKT0CkDl(f@m(`H3*7{Wa7f-aoq#7N&)xv;H-d@0n{M;-s-lIOc#(J9z`lM#NS^k*ox#J5F}wETXCE>QdeP+^n6PKCch
zG3c{uGNNtULUm&uF+HHDCt$~8cw}q{S<>nDoY3Tk1uaIOGh#$!A<*MMED3O-CWFjM
z#-N)9Wy{9I_zvvYF@ab-^69(g)WQJH*(v*MAKzWUq@R^#iDQRRh=C~UJnx#=fmGZ?
zQULM(*NW44`oIijiPUNq8f_n+mRC?`;Ed;U*pbV?(mcf=DJAJ#kYNM#WruDuJeGm*5
zHd1zytm*jin@hO5QbRInThyIG~@%zQofx1=O=TCp113NTh2a*ihdh*!0DHo6Gpq=e~g-
zyz@S;RN9yrDJYlN+-hUr5h_VyxPfByJ*p4EYR3kqXSBT#t|d^Xd7i@(=kl#*@bjIkH7rUYZ#w-6q}6n
zwC>_N$G-_HW<@c82w-SEMWYtZuN&er{=5`KX84$142cdUTE&614tx3#hVvGZ^k0jW(hJ9)q3HW)anZHy
zDux(LVp^pt5)*TG>P6Ij%7mXHpg8p510&F*%NXB;{yLU!%k&?85
zKL-9Cuzj`RBE#Scil$>Vi!sC$K>co$_rprGF;3ZG;1m)zdRwc==7v;};WMzTBr7D>
zL*TX{Y9zkyu?CgY8B3+q`!>}gp3pFnx6x#AWAeHotm&abvd)ee^g}B$s&(C@k9z7i
zzwb7!Af8j~X?H*l{6$FyN70jTl4LY+(Q8UtG&y{rG+qoR<_*n6@XSVDkHE>Gx7C5+
z$I$aaUk~7*#r&U**j@&ydfT4Zhk8G;Tog#2MCnKxayFvSnGK8ryV@fc{Dd=DmP
z(OJKRrWS|eY_V8oSw|lXBr+xAP{_q+C2vcy^3&ITMsxe%UJ2!mD!%>ACz)z#N&=2i
z#(c@|2qPoRn}aG!X{#bF==*Fi#5?XFRrXV-%D=up@D+8-qKPLTMQq<8784G-ZpZ|;
zCQ*_IL7H@vp|KInf9uzAWbSLIR5y{cW1{nXhCWGuH{$jnVER(jpG(NO6U-rbe2f07
z#cT3{sd8)(0rn$5i5^rY3E8&DhSZ{gry;?W3tmIYIhwrdTiABDks;foRE9Lge)rT)
z7BQ_btfCq%8%(XK1lgWQ4=fi}RN;4-M|Q7$
zHbZtpg1GIusdJygO_f&?7W-gyU5l9PD*y&&l4!S5HY=$fT8xqo)8%%nix&OT;m-5T
z|9B7ADEeD`zeamst*+s(F1&{KKDdF6Mhj*(t3WB%1Wd%@K$`r>s?h=jgQ1yAQBk5@
z=0C+gC~jjFSdYbnMBg1>4b{P*`P-`%_}d-WX$##JrO8NQc6KLjd
z8+hl{cEAs!ZGjA?tFsikJ;zgnyRMIBqfS*+`UsbhC_=MjI7=8U#tv
z!WLCvv(08jaW=FJ!f19VX=3{RcG+|N{tDFZC>~y&*?+h+U{sFLsY46vpIlksWApvM
zaeXHo#1C_@DjlV~+G=2nIXj;p!Z@p`k8ZLD#r=9Lp29Md0r%%&TIHh+UT@Qnk3RMo
z$5FX7Vk|VdasyrRy{YbNnyK7F>8syxwAi|#
zKf12?=QhR*dGr|d?6P+}uEy?_?Q3F}gs9R`4kHv!nE9iE54`yH%BLl}>spT`C{-
z+%Sdep`UX6@9&yDSn6ZDXBR5bMGKslLc^i2^ju$=-c#FNO)=`Me9C=#f*lcqQQu&<
zB*5hOIA*7(v3qPBc`AZN;LY__xRo-7>G3IE)5)Am(`(QMfhuPK8z{h${)ln}C^@=w
z?rv;fXh3ikFS7^qH&WDyyNlilaLMg)M!SKqSs=Sm8N5r=CT+HHsEILtM%W8YvezS<
zzzkW8lAoCxtbeQ7~^TVdLNa
z2`=ABatp10uC!C)-t$iO1Lz)1xX-c7eM+tB{=#v*IqAR!G>Nov3WXsS#U0d_-Uhg>
zSX)`cba6M<*BYqN6{H|;H|t8+<$H|Plx^Ec7c$IZY1m_J9*ZO{@7
z(i#Du-h1Hi#V;ifzvQ^~-|xRn0X`$Pp-UjeCPHo~O-5LkZdB0bhRy73VVi(GN>Pjz
zlFLOoQsc76WUzv=QW>Ntr{J&|(dxRYvD>51npT{>i3D1$PKj4e9z6KeecR;^)Nx*1
z{LfP}pUvF`jmiHHn?hX3K9{4bl$&^Oyu36^^d
zIMJEl|F6iED_4qv=bW?Csbj5X
ztJq^PBAO|cj{r(ER{+(E;pKM7mpu5S;PP5<9`7A
W8s-bm$<+S<0000xU8z-26OR|#?CjvAA1VSJ*2#utXG^3vTp6Q;x`@izM-wX=G7z4(?
zs?lh=`~SZ8dfw-Kz8?+0!prl#IRDD
ztYf`>eV?imJ{6(C8dIl-Yr9LLU<%9V#5r`o@3*WN6C$?KOgn#M}nKFHUh_xuv|S{1_s
zFQK$NgR5^3VEwuTcHey;{_?xuLw0Bg8#lM(=nF$=i1-i;nrMvrk!(sLnQTP7r49%epQ)w|8^}4Mb0M~oM@v0B+-FqO5Pk5R51lL+*ALZ-tyT5a+I_AcQ@Z3}X
zA6{(O-@fObd$RbLmw}IY(O^mAV|?8%
zb?7j4=O?dXa`;UeeGO+%y^4Ik3Qc$6*F4xXtg$hQ){Zu4wK^g-n~Q4Lvc3cHXaGK+
z0nbMV1c5@K47=`Naj}Y>yKh2IXERz7LA*2c4xanzPf;uv;rB-f876GUx}8{X=r_Om
z8~LZ6e)?n8{6|jjwdg+1zYi(owd+`(9YHZS$&J>)B1CDWfaiYnSD2cdMQ2llbqX}Z
z)7TVGVP$%WpR&6=+P;R3d^GI;P#aI9310U6vk7RVEQpx!J{u4yj3>QE#
zKZlv|^Qe~!&~=?&uOs01A)hPav8SGczp#RybO`OCI6@U23)3qobHh_}v;4dtrs1Ho
zC5l)GXh|l~M*|z^BqtccH;x|1APr0>!wAKr7#^C1#?p`sD3q!&i26o6gn%B#zyEjl
zqlG0CqIZJ39ns!)jM+Fd|X7^*Vm%x9`Je?>vaAwEzk
z(cqEHxGq=HKn8=rFST3&hf7i)6_1b|0_k1P$v5j7y
zp3Z2&fJ*6dsfZVz`D65UHPQ1S_#$xx#ArCMmkK!fougO?`ry&97*nu=05vc+iIJIE
z#LOVVOxvmQ3Py{0IGTm+9ckRYo2cB=qKu9;L{MS+{@}+i;MD7vaQMJy5Zm01BR_av
zwZH^ZJ<-&FK+r>};9%b!yYQ7Sei1(Ysapg;+d`@4V1?k|*bZ~a&AOILyMHVDLAHHh
z%esF3dffFHC+M+ErCh>OfAW72)N0t&*8_jR2diF%S1p0u0@=6T!W-w#6R`pa`GUyN
zD5IyB>A8qdAcTk+#-*icjMob2ZV2PPeLJv$X&e@mlj2|`qfKe_Z0N%y_uhv;`Ocr>
zyMOvLzMcr+&K;ZJ1T?(y_Aq*SqS&^j8*?+$=kmZ~0_&AJ7V~8Ux>FdQ
zT}C=k#h#5DFh04=dezx`130yC9VPban_3$28=u>Xw(c~7u?SmFkj#q?BEZc~Oe4RN
z=kFVF|9`k2dp9-W+u!{W_HOOL(epECZ)w11wq}qf*rj3tf=C536QiW7b!JEztt~CE
z+z^fqTttq&uZJC@GZx`4&!YOz^y!JQ>umn+Bjmm8xyNzw+-u~+Kr|dc
zQ&U3GM4ykX#PGAEJ!BUrvFJItG`)<@ZC&UzBDgj>fiR7_I6H+U*6&ts`ZxD)LaI3l
zUntDpZm2W_zh|-cUeAu=`+xpC2G5^GY;g#kU9D(#=F#SJ5NvNk$TU#keJTVH+cODh
zKyP;^!gNwR-OeB-QK^;j!&e6}v5=!9U3A17g!J5g=+GBVKJ%l$%6@31E!%pKT>&fk
zCA@w5MH)sn#fS?+zY76kxF!%r@{!MbID762Q`y8+b{ZR!IvQh9Twa*Nlv_np*pGYn
z^diardS$$T*DqZn=#;TN(}-Q`+L4F^;pB3-tFHkU7V3EV_z=E+>pna?SjN3+_Vh$A
zJ>H0tCHRqtU$3Ac)NNRg@tmc8LXY*w^M4h#Sphtc_T%RE0V2`ni$5
zG&uMmf$NY=Ixil3f~}&mY9jv~i-pnLoMNl-6N!WHF_H$2jEJRWv&JR&MSq>3Am58IgqYM6U12i%|d9PB+;hl*ka)m0|h&wTV
z9bK&*SSnRo`*z(jditf82R<;;^?L2FVQ82dyMhXV%4GBmn;WES{L(sz!iJB%lBub&
z@#+kGnknDa*+Rs$U`hXSZRDl)B{2*iQUtG82d>jeKBlG*SMzmb=N1v?z3#}w@XnZv
zLtoi}koN`#mORAy{abF|iM?BH!<$b&f`wv1r)qKYjL5^20s
zUP1_5+xD^6s|fmBRYun8Q1ryl7=7XV*~8UJJ!2D42j6-X<#J`U?~#E?de;dWRU)Qt
zX$r_3MMW*t_+BjDi2hR}c)MW+n|QAUl8G97v##5y@jlX8Qi(9Ghnwk#~J#fRxfh
zy15a##S*Go0v%g##k%IGYDqO8QJ?Fjx9q{}+ZSkLh&aGTz7|k%#*hF7%Gp6U~aB%xN
zqO68MM;r~&2x=Tbqd`9^g(9LHNK)Oc82{^Im>ax|j-8X(bnu_!%!O;r5Q7dU5z_57
zG?BGAYI59inffX)4AyUd<<}8mY8yUMUGCo_xCL1{6&h}a{1WYdH2SsIPGl_0+F7sF
zFgkpZMhaBfs-B^*-c)|pHyHt@+#(IJSWvPaVxr-
zf{2IH%D}d^E+r7m5tJ?s46^rb#i_Jno_pmS7ArP-Q_Z;h;8wD;5YAs7#pGlT
z+Zd@7`@41>7|YHortffAx%c3ncl(D5h@qKuB=_g3>K2RC{>1o9TblLlQ>DRT6|v(9
zWpt%dy^Gx!(-UI^GdBDx`=|poD=#hrnu2k+dDUAqV-WLORt@CZzr=0l`0#&s;*
zdB;wi8yrEM%``=XU(p;?*k-QIETPOHA!@Px&#@gM+Uig%b*>MV35{b)F|_ZAx-8
zaPqrVz>Nf0b|?w}XOz*8KmK^eVe6spjB=^OI^-0^mQg2>4|=vjZt2S=J?ba*9G{rM
zQ%7HBYpJWc^;qxGaE!*6nVll#8fu{zhUf7g@7zJTsDOZ0W}0#!AQ1UX9~wDTB?vG#
zZ`%Nm{nRZ~Ffwu;7YTgZc6Vd<;b+Qpkm1n@
zY(W9i(5h45s|cHQ?f98BTsuIHPT>z{-WEEd^dK
zgCvnQ*G$&dGD3`&sEa$A8=OYd=3q}90}^ei4{2A0l8v`UI2zJ0n*)3>)WEt3@$Vqo
zxv3WFTO%A5#c+x0;=&Ss_dgv%$+7VK3+J#jy$F}7K2$L=FusV(ql@rD9yYh9So1WL
z6w_upx}7Q{`rc8DEf6C{r|@f}xtA_ZVtK{G);*s?
zmNa*a-6oeOpT9DN-`ckcovm$*G#ja>!XZ|(oakKQf$psxC~)RBtMsNozPr|oWzMx3
zrCEx5x^Pvf*)@Y%QbV~YUEV>IJi8;&
zg6!l3Ub!~UdE1X>_G1zFD{O^=?o2YaE|ychz-;p<3Ql4odj;V5`NQW2DG;_{Za$AW
zPESLl3z%H4;V1oXQA_VYtxzB)q_A&SAEqfe8~!Ckbb=>K%pslCNmOidiweiz3d_~z
zdP{7ZT;9yOuB|?#(2voMQ-E(^D$h|s&5D^IREz)`5=mT}oWbUet*A3AbWVYP`}*5dU>dNg$nL-rJxE9C
zjH=HIVr2L-9m;l`tB|SrkR7>@7xd26=x!dHKqG}5%FdvXjXh7oP-732zP&_LPwl%E
z*7SKUVsqk(sf|mzsO~0|RX8pIMn12=gKuOf7f4iy;N-$dM))-g62?bo`T076JUnpOQagLsVVJ_9;Lmh^1smJj
z@waCN*gbj>3rBH!s)h~iNvv;bMuf9^s5yolxxndjL%AoO>d%=EJn%s7|9;~SvaW4p
zqD-^4R2WOk1r8FX;@Kt_E|v=%B8mvJr|PC~VEW4N)aivo2X(LyO1X&qt(Ys*-L_oJ
zPt23;S=jg4%@p%^!V%j{`G_MaXYFM=&tsH)8oLJ5+GdvM%=;SeS*x&2Xq-4@adt@&
zr64CZGuD8@^%1;2F~ulz0u1;RH8w(ou3!K!{N>-nD>BmvmS$rJ5C4zy9=(Q
z2Sp5)32{N-Rg=?8Z<@kx0
zvIp?+kq(-#Dx-t1UgI*OL|7K~q??0@y_xo^KuLy
zM!nn5+~qBhWTq_VnPuGj4BMP8d|ORmz`b9(O@Dm-mOcaw
zo0?dFU-09`yrM?bH6?{tfQ#$qBDyzrQnBP&D*-4KijqDGEp#zL0;7>z_qB2+wre=U
zmgO;IB)w{yo1?5W#H?}If5(~n8l@v|br}UVnhZ=VGnbB*+OxQ}K?`(}3@0YSq^@QH
znY{drdYorsL6)SHj2KzRm72GrySq=KuQM6F0c{yFWbez(cvmzWdE@Yq~~R#gB#t
zT}}dt)KK%O0u-z&5*lwR0zr_(!Rz6oY(pi+M$V4Yk=4UAjp_B$g;_3G#?oA#`gWO-
z%pulDIhR^nGv%TrTV%nE;Zk-EaURl_EUGTLOi61;gLI5W-HXzsl74g%1lbMP_n?yj
z3MCYyMK7pxUj-t6nF!wy4yxW+C;y;5*m=|DC-I)^eQKx~_8;-{(4E~UZjx?xb37E|
zB(g$4G^K_Z>hw^gn<9^EW=4L9H!nwdZmjdvaR*wu_o{nIMBY664182GZ8AHTeONL_
z)Jc*%1$1A$>lXavmGkgN41_5tlt^p@OkMuR
zl3opInVy^jDwSuBjxO_l%cWBGzyH@ieCWM)>hJxB=tr?&y;r=Z%HNF$a=
zArwpS@UDRyk02s)ur6LF;9v-`;5D>_-(iba4*(X%bC|e5(OpWIsa_;!uFfs7V(U0Vk-_v<6&PLjDezJKR;4~~NFwut
zV<%aQ1{z5ni&RzA6eMR{bdt%E;X*V}7U%b*j%B`=#Mf8rSe{u4(#sLqAORp)EAcQP
z!YpBCvc_#qd*Yk_^Zz~Z3yqemS}fgPaIF*6nllUeJT>cp0tO)iGL$&taT-t>%_Dmu
zAxb0DsD`d|m7hCN^u-GbTx@++K$KGmAwY_(i`Gh%Zy>GAEiDsyt4dC`xcR1d
z5I6U>;FU=VjuaQp)_yVu(3Ka%1eG%rZbAwJdxc~02akO(iADk{jy))xBCMh
z$@sbF(~th)Lp!0{C%9Bx7D^?9s*b%i{YlcR@cIx&`_CiQ(SrQ=IHtDr;tI#l`6^q>
z{36N(F7c`a++?~c5l@hn_hSN(j?yTJ8l72IauAyU)7Q@<-zv#QmB&Ddn>V2}IS-2@
z!)5@?Ocw$fo^P>3h*Dz-Lu6YMyhu`p?n_6>7>#Ts6h83CLr1b7WZTbuy6EqY_s{&Z
z1N%gGJtV0u&>sx?)||Z7vYHx^+}MFiJ5LppEqM0za~%IdWNsw=tSPT9GL)kLP)W!n
z>H>%|;u)HVi$#%Kks$4q0Vc{mF4>e5`I%1A$qZd0u}AgBn*g;xgdKKQv&?)i{_QJLT)XI&x(iQzuZ
z-Bm{I81<_c<>{YgYHT7(uwLcyDZ9R^qXpS^6v_(AGR@Ui#QR$$C_cX5-P@xwLQpl8
zjH4vP!;`wVm9*>8SuR1(rlJ{Uq&>r@W_FJy!X5>OC9=MihY7lt+t`~t@YuJ$|Dlgq
z{le$Sj*H>HcIS_|p)asD6lD8yHZ`1+r?moOFcjjEsO%m=O+hJPk*}*hE!ylJ8ZRS#m}t+O{0pIgGT;$c9@<0HL44u}jjprb``2}?wz8En>N7JCuWCelj>7$vyzb8qoX&m}TR!%)q2Ks}-+$=b
zrQruJ4^K1Ym|7e_>J>p>N4+lxYNph$wtBkYsxu`^{Z7qyG{hnEQb;bK$kYu`msXpR
zrwjRWy{(y9M7c-0h5X@gAu_K=r)g|q8V8-5H*~Po1#(v==N>-w^syr!!-P-vKD*SkM^>{u2b^ZKQp0={YI?!yf1gS085
zR19^Z>8L0gY#}v*jDVT0=&PofnsfqhtpwDg%>+G@wJMX6w5))PiJamJ)U(wx97k>^k1R6@->3s^_)s)!yr^O=pHY
zC?jRytv>KBoll-C6{7{uJ+M2ui5qabTkr?W!RL*BP
z$Lf{BNpyD~V;bl1DP5oX|IYBYY^NYqNhq+B
zDj-KiN>POYLu_M+aSTYt_`t%JgmqiTY7a?!&VBZDcfR*}R+h1iPr5v%nVsqG-+S+S
z-}~PCwGI4^kMPu!BY?L7ra6MZ$il)3gun5lAUF*edA=C~tTAKsx_$T^9tPgxBRsV$
z3)8t7hWUF4gDt#87GZe7o%lvRUue00Hlp7|-_ZfaJ_P;)o{!z`>aB076W$V|&l?(=
zAA%8XiHuylbg2IYtvo`%PCwN7p}-p(k$qN%ATVKA9r}t+2@$!0zd^uD8DqX5-f4N*
zZLHfmhBtY8UIp=Z3ZCbQ5&9Cx1ilY9
z7N;`;p6wvCdtk+fV8@1e>16~=tPOy$z2I0f(Dv}U!qn16(L-OX<6`^4H_WESTx=v
zPcep$6Tw*_E9Z&v0e@%e-^EBxYZ@)ai(}*(@|}DRj07F9jt;m~Q=;wYu^N}-uf>kn
zWVFKBirvS%D@lcZ0rlAj;nz>A0lptaOkk{w_FIU@T=+ClmMspE1%{#gwnc~7bVy61
z?|D_k2=82}iK%mS%q)=TtQuBbycE4j6S0I#P}w}+R}{$geSyB+3Ag(ul3%91$Z)LT
z2U}kY++Wpb8ax8S-Nkn!^0}6O5+S1tgAr&)OCT&!_I*#GDA9BrOW`Xy+i28v!L}Vk
zyBYUyXLYj~PL@)p!-djaN6=p}`oD2-kCuqQ3BGL@->09KIT8t6_;m67^ag
zHX|sRE9FKZOy>w143nP;W4~ph(yU|WgY)?Q!!yX0eKc6kJTE{h=^~wsp~V8-3~RV-
zbO3*U>k14naft|lzthh5i1d^fNOE@iI)0AHlExZAoe{rr>~$NhkT#sXixF^NJ~x&3@t*rrDZDOo>nWw_?a@k{NLyB<2|!zm~=>;aOFK>
zM2E%eRq9Q2XEO-M39)ns-hD+U{_4ZM7+%q#sS%}$t}-GyI@NOf;dFj5GTacu8?R`%
zjaPJsy@U82k+)vqXK0r8t5ISk1YSPhTT%Y{{Cl(*IwEW_Vht`t$c*Kx)=-fFIw1%=
z95~s;m;dV=o;q+A<%Wk$JcjG9T!SlCFQt!NxS{4B<2>S!??_8cOiZky9T2;onc<_*4V=W`K1A
zS$yf1ZFuLk8*R?2@
z5LqVE$t1&vK@NWTaYB8oU}1xia&G5RZ+l5R@lsfi(1WKm!sP=BYst&;fv>4D
zvZc8#HCMhDV&Q7ERM|9|h)3P4lhqwO``iNl^?P}oo%2wv=IK)#U;Oy{@Uf3=BXEd_
zYEfTO(+xtlRxYDl$k9P(@Xep>!Q)5Ak>GtlwQT^O{^PYOU_|&Brb~y#l~XJ;Dq->L
zI|$S@`koHl>Rfi??h9=+Um9mqN)scQMPohZaFSnGYXdm8zNwM?I1KGR%X;pI|1Kv
z(bbW`hc>OpvUD8tRJW7os!SHgCg#1i^rR%^?>Aqz
zip_7Gttn}
z3Ezl?7`^a#%n5HvlUJ~NGb9@>o^KYjv_lfYni@LneKdma}r%Tj{}*moq4gC`e|
zD^}?opNR5NZSYm&`zkr3)F48r@FtlztdyJtw&NCGfUQ`x9FKS_SyEg95fT3!7?8
zxl}~8Qi@cNZ7YN$OiH~L6i5_(#9|3lJs02jP7%uoQaCYI(_HnK=b1!8ol_xX4<0^2
zBSWlATG+m6H9C_i%+Ai^k=>8s(BWTWX8H{F9yyMCcRh`%{2Z#)GUjs?SaiDN^8RBi
zQAC`O;Sb(<6_$0SP@#jy7HT*?K87V3N0HZ}(E_Gl9Vp?t
zEBg?#jz{T5f~8usT}Qu{K-jD-Q!1O_$Q~)44O#AGdz#K
zCF?F98pLR)%YS>7{nxD|p^YqsM?N?+yMSy@A09t&0;%qP%rCHeYs_Mh_1t5+m~LE!
z5E&L{>5Q?{Weg8ykVwWE*$M*JM6H-7@i~amc)!)e%*;t#yo%D8l^_VJH`2tr)M%2@
z4H{K%mL94^GE#2fOMc{$N_D8gVx*P`8tIGgXhgFqQqyJg(8A1Y9((qmMUqpWJqKq|
zV7{3O?Er~*f;aZDw7V1A-nW&}T?Us9Ou9be8DaaXviQm+Lnst0dXHz19>Yw&fK3KqYYZF#}y
z5SL4tlG-e#NLs`Mp;50@F)%oce14t__mr_~wMx5VBHS!r(GjCTP3HXq7g#6-NOxqB
z=Xj`63)Sn<06}VSfWgib`uHLpGHq%|xzqv4K{RKkxIjiIlg8T75zL&M#L$*Ym>wk+
z9fl?4%hz%f2#*B9A5PTPh!WKqRmZ2`14D%tqe7f^t=wA2uZeONfG)RuduGh1}E&6X#e*r>QMuRLf`xbCo1j
zA{of%O1TuN7sAIf97Z~>o{SUDSRCJo5TIntF}mH^ID6h0P8M6Ji-3Vdf=J=2C2i95
z{>;KWo;i37UD-7I<`k~F<|=e|_uyTdH)42z!h~$x@(BBQllnVH)D)R^4d!nFB`UN)
z#EtaTHndD~z@a)pDol+XU4>1{EYU*H@G~18a+3ryvYHNRG)HZYGO}oobA&u3k0nPX
z%3^qLZ$Bd#==&B`kx3)Xw$2tbh|mw1Lucj+Si3Za5*IjEW=~wMql11C<~Nv=RYI=C
z1$B0$R6>6JJ3qs+xiSVB@t_bQXR(LAd?orW8^uDEgv#1HH#>u=vr}|j4*O2cM6+-q
zF*>wfhZ1g~T%j{#YChmZ
zsVHeMXRW%)wK{EO7$EKnYcr==9cr|ryQ^P#t8KIJ%=vkeK-|&DHR#60el^|Mjd&`p
zZc%Z-n}iZ&86+Umxh2ZKf$k)x^A+qrU8fL{8=I&~o5;MZQz6-L{+>+TptCX=8y|n?
z)o9%J3{L*bw=qw3)|gzt%JplQ8YS$1{uD+>2I;UGs;sr+xhf<3LVGJgkVA5q%0bhw
z!RDq|Ak$mYefg@+1YJ^kjdrjMyeQH^UI;NXQu=3swnSav>(xuqSV)SyA1M18W;FB@
zwIRzDu$gU9}2@
zlQTGbU;@RtIqjl8asAa;wc%0}>8Q#10(0BNk?{hSWK%eqD^o5rr=__trC*mhnWOD*
zl2g+Z5!Gl^wfU%%)#KbbDddZA&2)Q*MC52|-=YkaXm1E0O@)kIsj^7BF~?EDGOehD
zxdKrsVRX3=lf#P!%;8G8h8lnR>@jkJ!I>3_s4fPxmOJd7i$p-NyGmgB=t{9;BFvZd
ztw3M@Qe@J-=vp;`?AaNdTA&)FG1K#B$?!9<>C_gxyMyC-h}gB1Qw<88kSW7qfoo&F
zNM3NeAbSO+YL#mf*&EjZq9l5Y!^R~`FJ8>&yz%z!`KV<1!J~qC%k7Cu5F_g_(%NOQ
zHaDB?QBZrUMJFVR2p=^%AxQ~#Y_f?3DljP_28BqSN-gBMepKr)H8Fz{yP>0GVJSx!
zja&qaQq%2V`gHW7Ba^|vK)+UtM!ihI6bYYSkI!M6EIiMbI8nsNP`ASrVKn_fC$Vw^
zX++XeiU=F=m
zC1b`hK3QWk62o(+3aAAMxQc+5{sxF<<3eV_J!RI>D(mV0K4+ouZ};H(HN)())0kbz
z@s(%PI81Cc`0`NTeC!OTA-QT0Em$JNsS8sZOP9sjrdo`y2PffZZ(k>ob;x?Huswce
z*(ww;(6^KtJdO6u`u_7q%S0hK{Da+$;FfsiQq&3)jBZ@>0XprpRA4MddT|0eU8qxJ
zWH5Fvz~RXdMdo*!ku6s$I@;wni{@1%Yek@h`u^;hSv<{2s+65xijbgQQQ`@izcyJ)
zxI`l4g$a&{7qEE9{=(XooSUU=ZDOSSh;cG$kpOv$1nWE!WpKEDu3oSag@kp(cpc&c6kyN
z*3T)7^w}Nh
z;*yB0B6Ujn>1v)!#Dy3_o1%bIPK(6$%<%@EI8jGQ=+lFeN3_`YFrRf-}?+*Gm?ozw-HbQg_EXbvw*W>b*D^7qi*D(>57B40D2xx3fY
zbdq^qOZ7vv86fibqUGzz*$nS|iO~x2Ft}UiSg}>?qL#Eb%1o7^rp(7gss>fm
zxC_Dg9KQMRIqdvtfRhU@A=Wz2>e9}&h^Lqc9D2Jc!#k@jD!8E8xtv0;#5@$n_x(sZ
zr0ARs+tNfTrLCfLc8jx1f$IX(p~SuZaw*PvIMLvsy_4dcm&G#iF<3S`(mhyn(T0e$
z5$;TE-ahscqxHfq^DYKwObm~uu2hjB#3jRoW?1KFrV5W_^why7K6%$^{L{TNIJ(f1
ziMr0OwUv~e262!~QmEci?AT-mF8j@Ld&z5?u&qghz*m)f(WP3{t9NvCFw$8fBc-Tv
z+Dt4;Ou8=_R@iZF(Wc^5Y8~k4j%l<7LDI8}V{5E7QavtTdkr!&%@Ef2>UUmf=ZlQi
zX#2r!O8L$pCmN18wvLRVtnG~LSk(Bx2ZyJ-@weY8;MqAt
z`(v}MvV>S<7+B}xU73xOj6!(?BjP}1Yo94%Nk`x$BlwFjW|RZjtY`Fvbp-`7BCe4a
z>g>vD6)9hAC7d)SX3MPEB@C{*6styt(am--Wd9yAZ+&-|=~3l)xT3_>$vpnhmXB!V
z;05v&KwDqVzLz(eFgJW(w*K-4b9Lp&`!Uz-V#K*u#7%eEo{=uzp{nv_angBF__rt>
zrJRXo_E=UbwBCvl+OkWcyNZbFzC1zXhx#lDfg;Tw9VjFjsCW@RaETO)BskdDk9BL;
zV)=4vb-wQ%7*w*7y{=ZkDi9`ACOhmKwq3uC1h)7r8n*u?tbeP~k>MX5W4fr}{S+Yo
z^EWqOMXy}Y(47cFh6<`}$ke3;t+6hnDSJ?&**z&6ELT1qY@n=tHf>gHJ`fwm27)Oqvdcneq^5?8fy4*j#?l6(ns-^H*StDOu1-qIB19g
zqShGoP#%d85_F^KXp@nuu!asU8z$7*{ZNSLh$Dm&q$)#+v>)meQ~IbF&vlsJiFg`4
ztl240$j_xB>zGm6iC^y3_0bf~Cc*}To&^yhc|HoJbS
z(JvV8OKyyHW#ahCXWoOae)j#0LL%CmmWN+xpkFPi@v^Bd`D*d+9!ph*%BmvW2fq`w
zBo5I{`ap(uz77=y=2Ev)EL9m!Zn7N|DVa_Z866ZiA?
z#P|Ph8wNT>@gdL4Zg)4`a@VWbWaBj)?#4ga7w)}hD}%C&A4fiS({=cx>(=8R@7s(2
zy#JTbtdvKkWDd^77`|-zFt;f|W&cZzaapeeZn((?x^Gl8+M=)1{7%}+Y_^MaI>X_A
zoT9_w0D$sRo;M>h>Z}flt}ZfmCxPPN1J|s=O_z0I%}}PjL5DH!L)_?I_vzR4;OuKM
zS`Nu^{xj-5^UXWx)!Rn~v-tY0Tk)CSUyHx~>UZ(X=>{AQ=p>p(v&zlJPO33ZHJTD}
zPF#e%7|n(}El`PCMVki69IlrH)lH*&7|l3KTq5RbwH(<_);|qQ3JJP3fALCfl9Ox9-O4Jl@n(z^!L?+)S>$otGJrJY97EgHIgBL%*KF
ziHeO~Pwi!ck=E^6*vc0H{pJ0Pi#^SB6V;whl%+Lj-TcZ
z1_z7<&cmEq9xI1>R5lI|^sw3QLLb}4!G3D%3ys9$BbMQA-s5ijnp^J2n>^mqC;Mwp
z?ig{bU<>QfClEouy?cW81O4so;KldtzA-%CK)$dbeP#{DZr0ofoP@j6cpW+WYR6mt
zzcXBTczgb13paN*P{@ps$1bNKS-#IoI>`57d!o_)-yQa`9_4A|e!~d%+41
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/assets/bacth2.svg b/public/assets/bacth2.svg
new file mode 100644
index 0000000..0be0746
--- /dev/null
+++ b/public/assets/bacth2.svg
@@ -0,0 +1,15 @@
+
+
diff --git a/public/assets/bacth3.svg b/public/assets/bacth3.svg
new file mode 100644
index 0000000..3b1839c
--- /dev/null
+++ b/public/assets/bacth3.svg
@@ -0,0 +1,14 @@
+
+
diff --git a/public/assets/crown.png b/public/assets/crown.png
new file mode 100644
index 0000000000000000000000000000000000000000..78a7b2c2e4fb320365e3ae2d292b705f93f7d584
GIT binary patch
literal 1764
zcmV-7d900009a7bBm000XU
z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yP>6kyhGBE0jdy!pV+6T#&$)
z;J^tuAS4bLBz^=!ip8%02|EYi0(gu-f`IS@gAIv2KlV&_PrpCvy&glHOcLk=CH3^1
z?yjouRee?U2&9yiGn2ko8kk~~jZx4q7Q7%mHt}H`i#!b><+YqyiIk
z_~ceAfXxfr5Nt<~$?pX>y9Y$HMY`J;D~+XTA5w?|DTK#epKE|H2%&zl4pPKW8rc9R
zlhK4wk}~`0z$n41Qt7f1LW?kf#yTf5+=7APAj#zOwf&VBnvgAt>Ze97Z#cQc`i|=)Kh{5vrn;tQi7p15k>l5aRSL|9$%zNGUeC-z^+}fMv3k
zOu?^Zi~elxz%T0+>+hXd3AQ@rOdd-+lWn@5JTNr=^e;-$cW2S3m#w%tzcw(K_;i+@
z|Mw$77*7|Gd|rOI;^uEC7?v)RP
z>Bh%*9l9QvRx_Mj`(_iG^^Q>_iO&Z|oo?8v1>2$=G%tV(HzDtr%tzCoK6m7qzx@A=
zYCmI&Pz0jN6sV>N3}WFBq#(`Az*QovSLS@!qo&?}I|{Tc*~A3%q7C=Qou`NJ=s
zr%@c9=G~|!Ift;l4fP9~T1q)37%VNnbad&HmyVpg)ZogS$IDu)6PC3Gn9@Y|@G$0R
z>Ux#-x%;PffoME+NNqf|0E1A+AkN(Ok3+uedBjv<&~7#B>ua-#g`T|rPid!}pV-z_-&O3}Pa?WS>_yY^B=ai{^?jT(l*voOT=@szGgX`s+8E<$@x%wpP
zA}~5+5{k0}i%$?!fw+bbUwd&P>$I!mr>f0eV2qr7qVhDQ^n`iJ7||Ge+fZ>0%%Pg$
z!tp40o(ni6HFX?<(E#Rpz`Pueg&}aVMO+UcI1ja{b*iM$_=DV%_P@55u4evl&-kVO
zcQrl1VUbXA!mcR-0ShOI5+mqX0P9lVo&+IWQX2gm6mFUT>J>n>KSKtsf`dTJ4wdBC
zdpHmS2BQHg0RaYv)+Rb<;WF6;1}kJ9RqfQ(%J3Yu5R4E>1QC=@f)&I5kt0yL{hptd
zi?<*dKLNh+7U~KFBT-3N$LPNY1WgiSRfE*9csZC|9eCpOVpE&0YIcJm#SV+Rlf>LH
z)EGHVc()7PD1v>rPQn%9-3(#l0z|EK%{vY
z5!>e=SbNoS$R?lC#i8-Xo7aqt5gc~Q+Opo{T9VQ6|H05re}zB&{Z8Y|mZRW;tS+Cq
zTot48CA8~n&}r78(`Z0;-(heH2O&H1AK+bVs6hvK6ha(@ef!rHU?R%r?d~lY1+5>x
zu+M|m8X9ZbbRj47SMSfk`seTbq!+i>;Olqq)|g6k9O3ltK(LwUiU3o$brEOSLwwU8iZ>i2oyNClY%3{C0~X5_?<6-kqKAK%CCFSPIKvb%
zO-=uy*oO!s1H(6ij5d(9k*3%NOizNC?LBa8{)#m9Jz6-?32#o!DDaro$P(VC?S_EC~Yh%
zLm^v^06S~dL#-|ea55B3YKbXkO{@-K+Jcw(z`Ua}vE5Jl91
z(fxURRkI1kS4#DwXusDsTDk{L2&Z~AFjqYTYpG75w>dQDqmL>=Sw.ant-menu .ant-menu-item a, :where(.css-dev-only-do-not-override-1uq9j6g).ant-menu-light .ant-menu-item a:hover, :where(.css-dev-only-do-not-override-1uq9j6g).ant-menu-light>.ant-menu .ant-menu-item a:hover{
+ color: #6E6E6E;
+}
+
+
+/* Specific styling for parent menu items (non-selected) */
+.custom-menu .ant-menu-submenu-title {
+ border-bottom: 1px solid #CFCFCF; /* Default border color for parent items */
+ border-radius: 0; /* Remove border-radius for parent items */
+ font-size: 18px;
+ color: #000;
+ font-weight: 700;
+ padding-top: 40px;
+ padding-bottom: 40px;
+ --icon-color: #000; /* Default icon color */
+}
+
+/* Specific styling for selected parent menu items */
+.custom-menu .ant-menu-submenu-selected .ant-menu-submenu-title,
+.custom-menu .ant-menu-submenu-title.ant-menu-submenu-title-selected,
+.custom-menu .ant-menu-submenu-title .ant-menu-submenu-open {
+ color: #ED9545; /* Selected text color for parent items */
+ border-bottom: 1px solid #CFCFCF; /* Selected border color for parent items */
+ --icon-color: #ED9545; /* Selected icon color */
+}
+
+
+
+/* Ensure parent item remains #ED9545 when any child is selected */
+.custom-menu .ant-menu-submenu-open > .ant-menu-submenu-title {
+ color: #ED9545; /* Ensure parent item text color */
+ border-bottom: 1px solid #CFCFCF; /* Ensure parent item border color */
+ --icon-color: #ED9545; /* Ensure parent item icon color */
+}
+
+/* Ensure parent item text color reverts to #000 when submenu is collapsed */
+.custom-menu .ant-menu-submenu-closed > .ant-menu-submenu-title {
+ color: #000; /* Ensure parent item text color */
+ --icon-color: #000; /* Ensure parent item icon color */
+}
+
+
+
+/* For Custom Scrollbar */
+
+/* Custom scrollbar for WebKit browsers */
+::-webkit-scrollbar {
+ width: 3px; /* Width of the scrollbar */
+ }
+
+ ::-webkit-scrollbar-track {
+ background: #fcfcfc; /* Track background */
+ }
+
+ ::-webkit-scrollbar-thumb {
+ background: #CFCFCF; /* Scrollbar color */
+ border-radius: 10px; /* Rounded corners */
+ }
+
+ ::-webkit-scrollbar-thumb:hover {
+ background: #555; /* Color when hovering */
+ }
+/* Firefox scrollbar styling */
+
+.custom-gradient-border {
+ border: 4.32px solid transparent;
+ border-image-source: linear-gradient(159.09deg, #FFFFFF 13.82%, rgba(0, 0, 0, 0) 97.01%);
+ border-image-slice: 1;
+ border-radius: 8px; /* Adjust as needed */
+}
+.ant-tabs-nav {
+ border-bottom: none;
+ color: #EF7A0C;
+}
+
+/* Optional: Style the tab bar ink */
+.ant-tabs-ink-bar {
+ background-color: #000;
+ color: #EF7A0C;
+}
+
+:where(.css-dev-only-do-not-override-1uq9j6g).ant-tabs .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{
+ color: #EF7A0C;
+}
+
+:where(.css-dev-only-do-not-override-1uq9j6g).ant-tabs .ant-tabs-tab {
+ color: #9D9D9D;
+ font-weight: 700;
+ font-size: 18px;
+ padding: 15px 20px;
+
+}
+:where(.css-dev-only-do-not-override-1uq9j6g).ant-tabs .ant-tabs-tab:hover{
+ color: #EF7A0C;
+}
+
+.ant-tabs-tab.ant-tabs-tab-active {
+ border-bottom: 4px solid #EF7A0C;
+ width: 70px;
+ z-index: 2;
+ justify-content: center;
+}
\ No newline at end of file
diff --git a/public/assets/knowledge1.jpg b/public/assets/knowledge1.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3fb7c1fd90b507dc38b46eb518eaab96ae42a656
GIT binary patch
literal 35259
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