Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
5,182 changes: 5,182 additions & 0 deletions client/package-lock.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"@vercel/analytics": "^1.2.2",
"@vercel/speed-insights": "^1.0.10",
"axios": "^1.6.5",
"client": "file:",
"dotenv": "^16.3.1",
"firebase": "^10.7.2",
"pdf-lib": "^1.17.1",
Expand Down
2 changes: 2 additions & 0 deletions client/src/App.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import QuestionPage from "./components/QuestionPage/QuestionPage";
import QuestionNotifcation from "./components/QuestionPage/QuestionNotification";
import AnswerPage from "./components/QuestionPage/AnswerPage";
import MasterPage from "./MasterPage";
import HomePage from "./components/HomePage/HomePage";

function App() {
return (
Expand All @@ -27,6 +28,7 @@ function App() {

<Route path="/" element={<MasterPage/>}>
<Route index element={<Dashboard />}/>
<Route path="/homepage" element={<HomePage/>}/>
<Route path="/notifications" element={<Notifcation />} />
<Route path="/questionNotifications" element={<QuestionNotifcation />} />
<Route path="/upload/:requestId" element={<UploadPage />} />
Expand Down
2 changes: 1 addition & 1 deletion client/src/components/Dashboard/Dashboard.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ const Dashboard = () => {
useEffect(() => {
const token = localStorage.getItem("token");
if (!token) {
navigate("/login");
navigate("/homepage");
}
axios
.get(`${import.meta.env.VITE_BASE_URL}/user/get`, {
Expand Down
36 changes: 9 additions & 27 deletions client/src/components/Footer/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { useSelector } from "react-redux";

const Footer = () => {

const langKey=useSelector((store)=>store.config.lang)
const langKey = useSelector((store) => store.config.lang);

return (
<footer className="bg-white dark:bg-gray-900">
Expand All @@ -20,52 +20,34 @@ const Footer = () => {
</Link>
<ul className="flex flex-wrap items-center mb-6 text-sm font-medium text-gray-500 sm:mb-0 dark:text-gray-400">
<li>

<Link to="/about" className="hover:underline me-4 md:me-6">
About
</Link>

<a href="/about" className="hover:underline me-4 md:me-6">
{lang[langKey].About}
</a>

</Link>
</li>
<li>
<Link
to="/privacy-policy"
className="hover:underline me-4 md:me-6"
>
Privacy Policy
{lang[langKey].PrivacyPolicy}
</Link>
</li>
<li>
<Link to="/licensing" className="hover:underline me-4 md:me-6">
Licensing
{lang[langKey].Licensing}
</Link>
</li>
<li>
<Link to="/contact" className="hover:underline">
Contact
</Link>
{lang[langKey].PrivacyPolicy}
</a>
</li>
<li>
<a href="/licensing" className="hover:underline me-4 md:me-6">
{lang[langKey].Licensing}
</a>
</li>
<li>
<a href="/contact" className="hover:underline">
{lang[langKey].Contact}
</a>
</Link>
</li>
</ul>
</div>
<hr class="my-6 border-gray-200 sm:mx-auto dark:border-gray-700 lg:my-8" />
<span class="block text-sm text-gray-500 sm:text-center dark:text-gray-400">
© {new Date().getFullYear()}
<Link to="/" class="hover:underline">
<hr className="my-6 border-gray-200 sm:mx-auto dark:border-gray-700 lg:my-8" />
<span className="block text-sm text-gray-500 sm:text-center dark:text-gray-400">
© {new Date().getFullYear()}
<Link to="/" className="hover:underline">
ExamTime
</Link>
. All Rights Reserved.
Expand Down
50 changes: 50 additions & 0 deletions client/src/components/HomePage/HomePage.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import React from 'react';

function HomePage() {
return (
<div className="bg-gray-100 min-h-screen">
<header className="bg-blue-600 text-white p-6">
<h1 className="text-4xl font-bold text-center">Welcome to ExamTime</h1>
<p className="text-lg text-center mt-2">Your ultimate exam preparation platform</p>
</header>

<main className="p-10">
<section className="mb-8">
<h2 className="text-3xl font-semibold text-blue-600 mb-4">Features</h2>
<ul className="space-y-4">
<li className="bg-white p-4 shadow rounded-lg">
<h3 className="text-2xl font-bold text-gray-800">Create and Organize Notes</h3>
<p className="text-gray-600 mt-2">Easily create, edit, and organize your notes for different subjects and topics.</p>
</li>
<li className="bg-white p-4 shadow rounded-lg">
<h3 className="text-2xl font-bold text-gray-800">Download Notes as PDF</h3>
<p className="text-gray-600 mt-2">Download your notes in PDF format to study offline or share with friends.</p>
</li>
<li className="bg-white p-4 shadow rounded-lg">
<h3 className="text-2xl font-bold text-gray-800">Collaborate with Peers</h3>
<p className="text-gray-600 mt-2">Share your notes and collaborate with your classmates for better preparation.</p>
</li>
<li className="bg-white p-4 shadow rounded-lg">
<h3 className="text-2xl font-bold text-gray-800">Track Your Progress</h3>
<p className="text-gray-600 mt-2">Keep track of your study progress and be well-prepared for exams.</p>
</li>
</ul>
</section>

<section>
<h2 className="text-3xl font-semibold text-blue-600 mb-4">Why Choose ExamTime?</h2>
<p className="text-gray-700">
ExamTime is designed to make exam preparation easier and more efficient. Whether you're studying alone or with friends,
ExamTime provides the tools you need to organize your notes, track your progress, and succeed in your exams.
</p>
</section>
</main>

<footer className="bg-blue-600 text-white p-6 text-center">
<p>&copy; 2024 ExamTime. All rights reserved.</p>
</footer>
</div>
);
}

export default HomePage;
2 changes: 1 addition & 1 deletion client/src/components/Navbar/Navbar.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ const Navbar = () => {
const [requests, setRequests] = useState([]);

const handleSignout = () => {
navigate("/login");
navigate("/homepage");
localStorage.removeItem("token");
setUser(null);
};
Expand Down
2 changes: 1 addition & 1 deletion client/src/components/OtpVerificationPage/verifyOtp.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const VerifyOtp = () => {
useEffect(() => {
const token = localStorage.getItem("token");
if (!token) {
navigate("/login");
navigate("/homepage");
}
axios
.get(`${import.meta.env.VITE_BASE_URL}/user/sendotp`, {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ const QuestionNotifcation = () => {

useEffect(() => {
if (!user) {
navigate("/login");
navigate("/homepage");
}
setLoading(false);
}, [user, navigate]);
Expand Down
Loading