diff --git a/client/src/App.jsx b/client/src/App.jsx index e771759..a309540 100644 --- a/client/src/App.jsx +++ b/client/src/App.jsx @@ -14,7 +14,8 @@ import Register from "./pages/public/Register"; import ForgotPassword from "./pages/public/ForgotPassword"; import Contact from "./pages/public/Contact"; import CommunityGuidelines from "./pages/public/CommunityGuidelines"; -import FaqPage from './pages/public/FaqPage'; +import FaqPage from "./pages/public/FaqPage"; +import About from "./pages/public/About"; // ⭐ Added About import import Algorithms from "./pages/algorithms/Algorithms"; import AlgorithmDetail from "./pages/algorithms/AlgorithmDetails"; @@ -73,54 +74,21 @@ const router = createBrowserRouter([ path: "/", element: , children: [ - { - index: true, - element: , - }, - { - path: "contact", - element: , - }, - { - path: "feedback", - element: , - }, - { - path: "moreinfo/:platform", - element: , - }, - { - path: "profile/:username", - element: , - }, - { - path: "algorithms", - element: , - }, - { - path: "algorithms/:slug", - element: , - }, - { - path: "algorithms/proposals/new", - element: , - }, - { - path: "algorithms/proposals/:slug/edit", - element: , - }, - { - path: "algorithms/:slug/contribute", - element: , - }, - { - path: "data-structures", - element: , - }, - { - path: "data-structures/:slug", - element: , - }, + { index: true, element: }, + { path: "about", element: }, // ⭐ Added About route + { path: "contact", element: }, + { path: "feedback", element: }, + { path: "moreinfo/:platform", element: }, + { path: "profile/:username", element: }, + + { path: "algorithms", element: }, + { path: "algorithms/:slug", element: }, + { path: "algorithms/proposals/new", element: }, + { path: "algorithms/proposals/:slug/edit", element: }, + { path: "algorithms/:slug/contribute", element: }, + + { path: "data-structures", element: }, + { path: "data-structures/:slug", element: }, { path: "data-structures/proposals/new", element: , @@ -129,22 +97,13 @@ const router = createBrowserRouter([ path: "data-structures/proposals/:slug/edit", element: , }, - { - path: "proposals", - element: , - }, - { - path: "community-guidelines", - element: , - }, - { - path: "problem-sheets", - element: , - }, - { - path: "problem-sheets/:sheetId", - element: , - }, + + { path: "proposals", element: }, + { path: "community-guidelines", element: }, + + { path: "problem-sheets", element: }, + { path: "problem-sheets/:sheetId", element: }, + { path: "admin/manage-algorithms", element: ( @@ -217,30 +176,13 @@ const router = createBrowserRouter([ ), }, - { - path: "faq", - element: , - }, - { - path: "blogs", - element: , - }, - { - path: "blogs/new", - element: , - }, - { - path: "my-posts", - element: , - }, - { - path: "blogs/:slug", - element: , - }, - { - path: "blogs/:slug/edit", - element: , - }, + + { path: "faq", element: }, + { path: "blogs", element: }, + { path: "blogs/new", element: }, + { path: "my-posts", element: }, + { path: "blogs/:slug", element: }, + { path: "blogs/:slug/edit", element: }, { path: "admin/blogs/review", element: ( @@ -258,9 +200,7 @@ function App() { const dispatch = useDispatch(); useEffect(() => { - // Initialize theme on app startup const storedTheme = localStorage.getItem("theme") || "light"; - // console.log("Initializing theme with:", storedTheme); dispatch(setTheme(storedTheme)); const fetchUser = async () => { @@ -313,4 +253,4 @@ function App() { ); } -export default App; \ No newline at end of file +export default App; diff --git a/client/src/pages/public/About.jsx b/client/src/pages/public/About.jsx new file mode 100644 index 0000000..f3f7efd --- /dev/null +++ b/client/src/pages/public/About.jsx @@ -0,0 +1,122 @@ +import React from "react"; +import { + FaCode, + FaUsersCog, + FaLightbulb, + FaChartLine, + FaLayerGroup, + FaCheckCircle, + FaRocket, +} from "react-icons/fa"; + +const About = () => { + return ( +
+ {/* Hero Section */} +
+

+ A Platform Built for{" "} + + Every Developer’s DSA Journey + +

+ +

+ SDEverse brings together DSA concepts, interactive learning, + multi-language coding, interview preparation, and proposal workflows — + everything you need to grow as a Software Development Engineer in one + unified platform. +

+
+ + {/* Features Section */} +
+

+ Why Developers Love SDEverse +

+ +
+ {[ + { + icon: , + title: "Structured DSA Content", + desc: "Topic-wise learning flow aligned with interview expectations and fundamentals.", + }, + { + icon: , + title: "Multi-Language Code", + desc: "Switch between C++, Java, Python & JavaScript effortlessly while studying.", + }, + { + icon: , + title: "Visual Intuition", + desc: "Understand concepts deeply with visual explanations — not just memorization.", + }, + { + icon: , + title: "Community-Driven", + desc: "Designed for contributions — developers help improve SDEverse together.", + }, + { + icon: , + title: "Growth & Practice", + desc: "Sheets, bookmarks & topic progress help track improvement over time.", + }, + { + icon: , + title: "Single Source of Truth", + desc: "No more hopping between videos, notes & repos — everything in one place.", + }, + ].map((feature, i) => ( +
+
{feature.icon}
+

{feature.title}

+

{feature.desc}

+
+ ))} +
+
+ + {/* Proposal Workflow */} +
+

+ Proposal Workflow & Contribution Flow +

+ +
    + {[ + "Contributor shares an idea or topic they want to work on.", + "Proposal is added to workflow sheet with topic and language details.", + "Maintainers review and approve the proposal with suggestions.", + "Contributor implements approved content according to guidelines.", + "Final review → merged into SDEverse 🚀", + ].map((step, i) => ( +
  1. + + {step} +
  2. + ))} +
+
+ + {/* Vision Section */} +
+

Our Vision

+

+ To become the most trusted platform for every aspiring Software + Development Engineer — where learning, practicing and contributing live + together in one ecosystem. +

+ +
+ +
+
+
+ ); +}; + +export default About;