From 8880e30b7635d0f91f67e8fba2d8c4477438ac6e Mon Sep 17 00:00:00 2001 From: Anshika Guleria Date: Fri, 29 May 2026 10:11:19 +0530 Subject: [PATCH] Add dedicated concept learning pages with curated resources Signed-off-by: Anshika Guleria --- package-lock.json | 11 + src/App.jsx | 23 +- src/components/ConceptPage.jsx | 613 +++++++++++++++++++++++++ src/data/conceptData.js | 804 +++++++++++++++++++++++++++++++++ src/data/storyboards.js | 6 + src/pages/Concepts.jsx | 6 + 6 files changed, 1454 insertions(+), 9 deletions(-) create mode 100644 src/components/ConceptPage.jsx create mode 100644 src/data/conceptData.js diff --git a/package-lock.json b/package-lock.json index b61648b..ec499e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -67,6 +67,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "dev": true, + "peer": true, "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -1255,6 +1256,7 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz", "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==", "dev": true, + "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.2.2" @@ -1300,6 +1302,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1649,6 +1652,7 @@ "url": "https://github.com/sponsors/ai" } ], + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.10.12", "caniuse-lite": "^1.0.30001782", @@ -2270,6 +2274,7 @@ "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -3401,6 +3406,7 @@ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "dev": true, + "peer": true, "bin": { "jiti": "bin/jiti.js" } @@ -3969,6 +3975,7 @@ "url": "https://github.com/sponsors/ai" } ], + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -4180,6 +4187,7 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -4191,6 +4199,7 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -4970,6 +4979,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, + "peer": true, "engines": { "node": ">=12" }, @@ -5161,6 +5171,7 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", "dev": true, + "peer": true, "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", diff --git a/src/App.jsx b/src/App.jsx index 7ee77a4..a734de7 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,20 +1,21 @@ -import './styles/globals.css' import { useEffect } from 'react' -import { Routes, Route, useLocation } from 'react-router-dom' -import Nav from './components/Nav' +import { Route, Routes, useLocation } from 'react-router-dom' +import BackToTopButton from './components/Backtotop' +import ConceptPage from './components/ConceptPage' +import Contribute from './components/Contribute' +import FAQ from './components/FAQ' import Footer from './components/Footer' import Hero from './components/Hero' +import LearningPath from './components/LearningPath' import Marquee from './components/Marquee' +import Mentors from './components/Mentors' +import Nav from './components/Nav' +import OurMission from './components/OurMission' import Pillars from './components/Pillars' -import LearningPath from './components/LearningPath' import Storyboards from './components/Storyboards' -import Mentors from './components/Mentors' import SummerOfAI from './components/SummerOfAI' -import Contribute from './components/Contribute' -import FAQ from './components/FAQ' import Concepts from './pages/Concepts' -import BackToTopButton from './components/Backtotop' -import OurMission from './components/OurMission' +import './styles/globals.css' function ScrollToTop() { const { pathname } = useLocation() @@ -49,6 +50,10 @@ export default function App() { } /> } /> } /> + } +/>