-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- implement Project component and use it on the main page (ProjectList) and the things page
- Loading branch information
1 parent
7032432
commit f1b9887
Showing
9 changed files
with
238 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
{ | ||
"Pie-Hub": { | ||
"relevancy": [ | ||
"fe", | ||
"be" | ||
], | ||
"date": { | ||
"start": 2021 | ||
}, | ||
"tech": [ | ||
"Raspberry Pi 4", | ||
"General Purpose I/O", | ||
"I2C", | ||
"Python", | ||
"Bash", | ||
"UNIX services", | ||
"Node.js", | ||
"TypeScript" | ||
], | ||
"summary": "React app with back end running on a Raspberry Pi. Shows useful information in one place including: room temperature and humidity, task list from Notion, and time.", | ||
"description": [ | ||
"React app hosted on a single-board computer (RPi) along with a RESTful API written with Express.js", | ||
"Wrote a proxy service for Notion (the app then displays a task list)", | ||
"Connected an indoor temperature and humidity sensor", | ||
"Wired up a relay board to control appliances through software" | ||
] | ||
}, | ||
"Rychly Portfolio": { | ||
"tech": [ | ||
"React" | ||
], | ||
"date": { | ||
"start": 2023, | ||
"ongoing": true | ||
}, | ||
"summary": "Responsive React app that shows off who I am as a professional and a bit more.", | ||
"description": [ | ||
"The 'Fast' Portfolio ([What does Rychly mean?](https://translate.google.com/details?sl=cs&tl=en&text=rychl%C3%BD&op=translate))", | ||
"Responsive design, uses Material UI and React Router", | ||
"Content can be easily updated through YAML configuration files", | ||
"Main page filters content based on the selected type of developer" | ||
] | ||
}, | ||
"Game Development in Haskell": { | ||
"relevancy": [ | ||
"fe", | ||
"be" | ||
], | ||
"date": { | ||
"finish": "May 2021" | ||
}, | ||
"tech": [ | ||
"Haskell", | ||
"apecs (Entity Component System)" | ||
], | ||
"summary": "Bachelor's thesis exploring the limits of functional programming when used in realtime applications, specifically games.", | ||
"description": [ | ||
"Bachelor's thesis exploring the limits of functional programming when used in realtime applications, specifically games." | ||
] | ||
}, | ||
"pure-asteroids": { | ||
"date": { | ||
"finish": "Apr 2021" | ||
}, | ||
"tech": [ | ||
"Haskell", | ||
"SDL2" | ||
], | ||
"summary": "An atempt at a purely functional game engine focusing on type safety and clarity.", | ||
"description": [ | ||
"An atempt at a purely functional game engine focusing on type safety and clarity." | ||
] | ||
}, | ||
"hAsteroids": { | ||
"date": { | ||
"finish": "Apr 2021" | ||
}, | ||
"tech": [ | ||
"Haskell", | ||
"SDL2" | ||
], | ||
"summary": "Game in Haskell built using the apecs library.", | ||
"description": [ | ||
"Game in Haskell built using the apecs library." | ||
] | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
Pie-Hub: | ||
relevancy: [fe, be] | ||
date: | ||
start: 2021 | ||
tech: | ||
- Raspberry Pi 4 | ||
- General Purpose I/O | ||
- I2C | ||
- Python | ||
- Bash | ||
- UNIX services | ||
- Node.js | ||
- TypeScript | ||
summary: "React app with back end running on a Raspberry Pi. Shows useful information in one place including: room temperature and humidity, task list from Notion, and time." | ||
description: | ||
- React app hosted on a single-board computer (RPi) along with a RESTful API written with Express.js | ||
- Wrote a proxy service for Notion (the app then displays a task list) | ||
- Connected an indoor temperature and humidity sensor | ||
- Wired up a relay board to control appliances through software | ||
|
||
|
||
Rychly Portfolio: | ||
tech: | ||
- React | ||
date: | ||
start: 2023 | ||
ongoing: true | ||
summary: Responsive React app that shows off who I am as a professional and a bit more. | ||
description: | ||
- The 'Fast' Portfolio ([What does Rychly mean?](https://translate.google.com/details?sl=cs&tl=en&text=rychl%C3%BD&op=translate)) | ||
- Responsive design, uses Material UI and React Router | ||
- Content can be easily updated through YAML configuration files | ||
- Main page filters content based on the selected type of developer | ||
|
||
Game Development in Haskell: | ||
relevancy: [fe, be] | ||
date: | ||
finish: May 2021 | ||
tech: | ||
- Haskell | ||
- apecs (Entity Component System) | ||
summary: Bachelor's thesis exploring the limits of functional programming when used in realtime applications, specifically games. | ||
description: | ||
- Bachelor's thesis exploring the limits of functional programming when used in realtime applications, specifically games. | ||
|
||
pure-asteroids: | ||
date: | ||
finish: Apr 2021 | ||
tech: | ||
- Haskell | ||
- SDL2 | ||
summary: An atempt at a purely functional game engine focusing on type safety and clarity. | ||
description: | ||
- An atempt at a purely functional game engine focusing on type safety and clarity. | ||
|
||
hAsteroids: | ||
date: | ||
finish: Apr 2021 | ||
tech: | ||
- Haskell | ||
- SDL2 | ||
summary: Game in Haskell built using the apecs library. | ||
description: | ||
- Game in Haskell built using the apecs library. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1 @@ | ||
import { LandingPage } from './LandingPage' | ||
|
||
export { LandingPage } | ||
export { LandingPage } from './LandingPage' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
import { Card, CardProps, Typography } from '@mui/material' | ||
import { ListFromMd } from '../../components/ListFromMd' | ||
import _ from 'lodash' | ||
import { SpanFromMd } from '../../components/SpanFromMd' | ||
|
||
|
||
// TODO flag for projects that are displayed on the landing page vs only on the things page | ||
type ProjectDetails = { | ||
name: string | ||
summary: string | ||
description: string[] | ||
tech: string[] | ||
date: { | ||
start?: string | number | ||
finish?: string | number | ||
ongoing?: boolean | ||
} | ||
} | ||
|
||
type ProjectProps = { | ||
details: ProjectDetails | ||
summary?: boolean | ||
} & CardProps | ||
|
||
export const Project = ({ details, summary, ...props }: ProjectProps) => ( | ||
<Card {...props}> | ||
<Typography variant="h5">{details.name}</Typography> | ||
<Typography variant="overline"> | ||
{[ | ||
details.date.start, | ||
details.date.ongoing ? 'Ongoing' : details.date.finish, | ||
].filter(_.identity).join('–')} | ||
</Typography> | ||
{summary | ||
? <Typography><SpanFromMd markdown={details.summary} /></Typography> | ||
: <ListFromMd items={details.description} /> | ||
} | ||
</Card> | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,37 @@ | ||
import { Box, Typography } from '@mui/material' | ||
import { Todo } from '../../components/Todo' | ||
import rawProjects from '../../configs/projects.json' | ||
import { unKeyBy } from '../../utils' | ||
import { useMemo } from 'react' | ||
import { Project } from './Project' | ||
import { Section } from '../../components/Section' | ||
|
||
|
||
export const Things = () => ( | ||
<Box> | ||
<Typography>I like people. They are what matters.</Typography> | ||
<Typography>But as an engineer I like <em>things</em> even more. Designing them. Making them.</Typography> | ||
<Typography>Here are some of my favorite things I have made, including software and hardware.</Typography> | ||
<Todo name="My projects in details" /> | ||
</Box> | ||
) | ||
export const getProjects = () => unKeyBy(rawProjects, 'name') | ||
|
||
export const Things = () => { | ||
const projects = useMemo(getProjects, []) | ||
|
||
return ( | ||
<Box> | ||
<Typography variant="body1">I like people. They are what matters.</Typography> | ||
<Typography variant="h4"> | ||
But as an engineer I like<br/> | ||
<Typography | ||
variant="h1" | ||
color="primary" | ||
sx={{ fontWeight: 700 }} | ||
component="span" | ||
> | ||
Things | ||
</Typography> | ||
<br/>even more | ||
</Typography> | ||
<Typography variant="body1" sx={{ mt: 3 }}> | ||
I enjoy designing them, making them, and improving them. | ||
</Typography> | ||
<Typography>Here are some of my favorites that I have made, including software and hardware.</Typography> | ||
<Section> | ||
{projects.map((project, i) => <Project details={project} key={i} />)} | ||
</Section> | ||
</Box> | ||
)} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
export { Things } from './Things' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters