From f3b098a82e3d6fdebea6a75b7b75380cc2281abc Mon Sep 17 00:00:00 2001 From: goldmonkey777 Date: Thu, 26 Feb 2026 13:12:52 +0100 Subject: [PATCH 1/6] done --- src/main.jsx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main.jsx b/src/main.jsx index 54b39dd..27067bf 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -1,10 +1,13 @@ -import React from 'react' -import ReactDOM from 'react-dom/client' -import App from './App.jsx' -import './index.css' +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import App from './App.jsx'; +import './index.css'; +import { BrowserRouter as Router } from 'react-router-dom'; ReactDOM.createRoot(document.getElementById('root')).render( - + + + , ) From 7c1e85f1ea13d64fb6237051bf9dd4711e95a69d Mon Sep 17 00:00:00 2001 From: goldmonkey777 Date: Thu, 26 Feb 2026 13:13:38 +0100 Subject: [PATCH 2/6] done --- src/App.jsx | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/App.jsx b/src/App.jsx index 1b51d87..d725c56 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,9 +1,26 @@ -import "./App.css"; +import { useState } from 'react'; +import './App.css'; +import { Routes, Route } from 'react-router-dom'; +import companiesData from './companies.json'; +import technologiesData from './technologies.json'; +import Navbar from './components/Navbar'; +import HomePage from './pages/HomePage'; +import CompanyPage from './pages/CompanyPage'; +import TechnologyPage from './pages/TechnologyPage'; function App() { + const [companies] = useState(companiesData); + const [technologies] = useState(technologiesData); + return (
-

LAB | React Stack Tracker

+ + + + } /> + } /> + } /> +
); } From 86557502d3afc25feac7f471cf9bca6b4bbc2e3b Mon Sep 17 00:00:00 2001 From: goldmonkey777 Date: Thu, 26 Feb 2026 13:15:00 +0100 Subject: [PATCH 3/6] done --- src/components/Navbar.jsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/components/Navbar.jsx b/src/components/Navbar.jsx index 09e2806..568b3f0 100644 --- a/src/components/Navbar.jsx +++ b/src/components/Navbar.jsx @@ -1,5 +1,13 @@ +import { Link } from 'react-router-dom'; + function Navbar() { - return ; + return ( + + ); } export default Navbar; From 429e02824f5c75655df549b998d7faa599c1721b Mon Sep 17 00:00:00 2001 From: goldmonkey777 Date: Thu, 26 Feb 2026 13:15:57 +0100 Subject: [PATCH 4/6] done --- src/pages/HomePage.jsx | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/pages/HomePage.jsx b/src/pages/HomePage.jsx index e97e7de..a2d9781 100644 --- a/src/pages/HomePage.jsx +++ b/src/pages/HomePage.jsx @@ -1,7 +1,20 @@ -function HomePage() { +import { Link } from 'react-router-dom'; + +function HomePage({ companies }) { return ( -
-

HomePage

+
+

StackTracker: Discover Tech Stacks Used by Top Companies

+ +
+ {companies && companies.map((company) => ( + +
+ {company.companyName} + {company.companyName} +
+ + ))} +
); } From 9c59fad6410b90be04d7b797d87535a2d12c49c6 Mon Sep 17 00:00:00 2001 From: goldmonkey777 Date: Thu, 26 Feb 2026 13:16:38 +0100 Subject: [PATCH 5/6] done --- src/pages/CompanyPage.jsx | 43 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/src/pages/CompanyPage.jsx b/src/pages/CompanyPage.jsx index cc5903c..f234a22 100644 --- a/src/pages/CompanyPage.jsx +++ b/src/pages/CompanyPage.jsx @@ -1,7 +1,44 @@ -function CompanyPage() { +import { useParams, Link } from 'react-router-dom'; + +function CompanyPage({ companies }) { + const { companySlug } = useParams(); + + const company = companies && companies.find((c) => c.slug === companySlug); + + if (!company) { + return ( +
+

Company Profile

+

Company not found.

+ Back to Home +
+ ); + } + return ( -
-

CompanyPage

+
+

Company Profile

+ +
+ {company.companyName} +

{company.companyName}

+

Website: {company.website}

+ {company.description &&

{company.description}

} + +

Tech Stack

+
+ {company.techStack && company.techStack.map((tech) => ( + +
+ {tech.name} + {tech.name} +
+ + ))} +
+ + +
); } From daf2dfe32dc81d9ad8c61e00b8ab8c70e22c89ba Mon Sep 17 00:00:00 2001 From: goldmonkey777 Date: Thu, 26 Feb 2026 13:17:19 +0100 Subject: [PATCH 6/6] done --- src/pages/TechnologyPage.jsx | 40 +++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/src/pages/TechnologyPage.jsx b/src/pages/TechnologyPage.jsx index 30f9414..a67dd2c 100644 --- a/src/pages/TechnologyPage.jsx +++ b/src/pages/TechnologyPage.jsx @@ -1,7 +1,41 @@ -function TechnologyPage() { +import { useParams, useSearchParams, Link } from 'react-router-dom'; + +function TechnologyPage({ technologies }) { + const { slug } = useParams(); + const [searchParams] = useSearchParams(); + const companySlug = searchParams.get('company'); + + const technology = technologies && technologies.find((t) => t.slug === slug); + + if (!technology) { + return ( +
+

Technology Details

+

Technology not found.

+ Back to Home +
+ ); + } + return ( -
-

TechnologyPage

+
+

Technology Details

+ +
+ {technology.name} +

{technology.name}

+

{technology.description}

+ + {companySlug ? ( + + + + ) : ( + + + + )} +
); }