Skip to content

Commit 65d0151

Browse files
committed
feat: add Project section
1 parent 599f7ed commit 65d0151

File tree

10 files changed

+59
-61
lines changed

10 files changed

+59
-61
lines changed

src/components/ContentElement.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import Card from "react-bootstrap/Card";
22
import Button from "react-bootstrap/Button";
33
import "./ContentElement.css";
44

5-
export function ContentElement({ image, title, description, link, hashtags }) {
5+
export function ContentElement({ image, title, description, link, hashtags, buttonText }) {
66
return (
77
<Card className="content-element">
88
<Card.Img variant="top" src={image} alt={title} className="img-thumbnail" />
@@ -14,7 +14,7 @@ export function ContentElement({ image, title, description, link, hashtags }) {
1414
<div className="card-footer">
1515
{link && (
1616
<Button href={link} target="_blank" rel="noopener noreferrer">
17-
Read More
17+
{buttonText || "Read More"}
1818
</Button>
1919
)}
2020
<div className="content-hashtags">

src/components/Navbar.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@ export function WebsiteNavbar() {
2525
<Nav.Link className={`Nav-link ${location.pathname === "/tech-articles" ? "active" : ""}`} href="/#/tech-articles">
2626
Tech Articles
2727
</Nav.Link>
28+
<Nav.Link className={`Nav-link ${location.pathname === "/projects" ? "active" : ""}`} href="/#/projects">
29+
Projects
30+
</Nav.Link>
2831
<Nav.Link className={`Nav-link ${location.pathname === "/speaking" ? "active" : ""}`} href="/#/speaking">
2932
Speaking
3033
</Nav.Link>
31-
{/* <Nav.Link className={`Nav-link ${location.pathname === "/space-projects" ? "active" : ""}`} href="/#/space-projects">
32-
Space Projects
33-
</Nav.Link> */}
3434
<Nav.Link className={`Nav-link ${location.pathname === "/contact" ? "active" : ""}`} href="/#/contact">
3535
Contact
3636
</Nav.Link>

src/images/projects/index.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import settle from './settle.png';
2+
import volcano from './volcano.png';
3+
import website from './website.png';
4+
5+
export { settle, volcano, website };

src/images/projects/settle.png

283 KB
Loading

src/images/projects/volcano.png

100 KB
Loading

src/images/projects/website.png

800 KB
Loading

src/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import ReactDOM from 'react-dom/client';
33
import { HashRouter, Routes, Route } from "react-router-dom"; // Change BrowserRouter to HashRouter
44
import './index.css';
55
import reportWebVitals from './reportWebVitals';
6-
import { Home, About, SpaceProjects, TechArticles, Speaking, Contact} from "./pages";
6+
import { Home, About, Projects, TechArticles, Speaking, Contact} from "./pages";
77

88
const root = ReactDOM.createRoot(document.getElementById('root'));
99
root.render(
@@ -12,9 +12,9 @@ root.render(
1212
<Routes>
1313
<Route path="/" element={<Home />} />
1414
<Route path="/about" element={<About />} />
15-
{/* <Route path="/space-projects" element={<SpaceProjects />} /> */}
16-
<Route path="/speaking" element={<Speaking />} />
1715
<Route path="/tech-articles" element={<TechArticles />} />
16+
<Route path="/projects" element={<Projects />} />
17+
<Route path="/speaking" element={<Speaking />} />
1818
<Route path="/contact" element={<Contact />} />
1919
</Routes>
2020
</HashRouter>

src/pages/Projects.js

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import { ContentElement, WebsiteNavbar } from "../components";
2+
import * as images from "../images/projects";
3+
4+
export function Projects() {
5+
return (
6+
<div className="PageContainer">
7+
<WebsiteNavbar />
8+
<div className="PageContent">
9+
<div className="intro-text">
10+
<p>
11+
Here I showcase projects I have worked on recently.<br/> Other projects, contributions, and stats can be found on <a href="https://github.com/mgrinstein" target="_blank">my GitHub page</a>. <br />
12+
</p>
13+
</div>
14+
15+
<div className="content-grid">
16+
<ContentElement
17+
title="SETTLE - Satellite Element Tracking via TLE"
18+
description="Visualising calculated satellite positions on an interactive map"
19+
image={images.settle}
20+
link="https://github.com/mgrinstein/SETTLE"
21+
hashtags={["Python", "CelesTrack", "sgp4"]}
22+
buttonText="Source Code"
23+
/>
24+
<ContentElement
25+
title="Satellite Image Analysis"
26+
description="Processing and analyzing satellite images using the 2024 Kīlauea volcano eruption as an example"
27+
image={images.volcano}
28+
link="https://github.com/mgrinstein/volcano-image-processing"
29+
hashtags={["Python", "JupyterNotebook", "GeoTIFF", "EarthObservation"]}
30+
buttonText="Source Code"
31+
/>
32+
<ContentElement
33+
title="Portfolio Website"
34+
description="Déjà vu? Building this webpage"
35+
image={images.website}
36+
link="https://github.com/mgrinstein/mgrinstein.github.io"
37+
hashtags={["JavaScript", "React", "GitHubActions", "CustomDomain"]}
38+
buttonText="Source Code"
39+
40+
/>
41+
</div>
42+
</div>
43+
</div>
44+
);
45+
}

src/pages/SpaceProjects.js

Lines changed: 0 additions & 52 deletions
This file was deleted.

src/pages/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
export * from "./Home";
22
export * from "./About";
33
export * from "./TechArticles";
4-
export * from "./SpaceProjects";
4+
export * from "./Projects";
55
export * from "./Contact";
66
export * from "./Speaking";

0 commit comments

Comments
 (0)