Browse Source

Merge branch 'develop' into release

release
garritfra 4 years ago
parent
commit
7f23274313
  1. 6
      README.md
  2. 5837
      package-lock.json
  3. 20
      package.json
  4. 57
      src/components/projects/ProjectCard/ProjectCard.js
  5. 53
      src/components/projects/ProjectCard/ProjectCard.scss
  6. 68
      src/components/projects/Projects.js
  7. 30
      src/components/projects/assets/projects.js
  8. 4
      src/components/skills/assets/skills.js
  9. 2
      src/home/Home.js

6
README.md

@ -0,0 +1,6 @@
# Garrits Portfolio
## Workflow
**Development** happens on the `develop` branch.
Once a deployment should be rolled out, merge `develop` into `release`

5837
package-lock.json generated

File diff suppressed because it is too large Load Diff

20
package.json

@ -25,28 +25,28 @@
"babel-core": "^6.26.3",
"babel-preset-env": "^1.6.1",
"babel-preset-react": "^6.24.1",
"parcel-bundler": "^1.12.3",
"typescript": "^3.6.3"
"parcel-bundler": "^1.12.4",
"typescript": "^3.9.5"
},
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^1.2.22",
"@fortawesome/free-solid-svg-icons": "^5.10.2",
"@fortawesome/react-fontawesome": "^0.1.4",
"@fortawesome/fontawesome-svg-core": "^1.2.28",
"@fortawesome/free-solid-svg-icons": "^5.13.0",
"@fortawesome/react-fontawesome": "^0.1.10",
"analytics": "^0.1.20",
"analytics-plugin-ga": "^0.1.5",
"animate.css": "^3.7.2",
"animate.min.css": "0.0.3",
"gh-pages": "^1.2.0",
"node-sass": "^4.12.0",
"node-sass": "^4.14.1",
"particles.js": "^2.0.0",
"public": "^0.1.5",
"react": "^16.9.0",
"react-dom": "^16.9.0",
"react-particles-js": "^2.7.0",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-particles-js": "^2.7.1",
"react-typed": "^1.2.0",
"serve": "^10.1.2",
"smoothscroll": "^0.4.0",
"src": "^1.1.2",
"styled-components": "^4.3.2"
"styled-components": "^4.4.1"
}
}

57
src/components/projects/ProjectCard/ProjectCard.js

@ -0,0 +1,57 @@
import React from "react";
import styled from "styled-components";
import "./ProjectCard.scss";
import AnalyticsProvider from "../../../util/AnalyticsProvider";
export default function ProjectCard({ name, description, url, year }) {
return (
<Container
onClick={() =>
AnalyticsProvider.getInstance().logEvent("Project", "clicked", name)
}
>
<NameText className="text">{name}</NameText>
<DescriptionText>{description}</DescriptionText>
</Container>
);
}
const Container = styled.div`
position: relative;
width: fit-content;
height: 10em;
height: fit-content;
align-content: center;
background: linear-gradient(180deg, #ffffff 0%, #fafafa 100%);
box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
border-radius: 20px;
display: flex;
flex-direction: column;
height: auto;
transition-duration: 200ms;
&:hover {
transform: scale(1.1);
}
`;
const NameText = styled.div`
text-align: center;
font-family: "Roboto", sans-serif;
font-weight: 300;
font-size: 18px;
line-height: 21px;
margin: 1em;
`;
const DescriptionText = styled.div`
text-align: center;
font-family: "Roboto", sans-serif;
font-weight: 300;
font-size: 14px;
line-height: 21px;
margin-bottom: 1em;
margin-left: 1em;
margin-right: 1em;
`;

53
src/components/projects/ProjectCard/ProjectCard.scss

@ -0,0 +1,53 @@
@import url("https://fonts.googleapis.com/css?family=Roboto");
.card {
position: relative;
width: 10em;
height: 10em;
height: fit-content;
align-content: center;
background: linear-gradient(180deg, #ffffff 0%, #fafafa 100%);
box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
border-radius: 20px;
display: flex;
flex-direction: column;
height: auto;
transition-duration: 200ms;
}
.card:hover {
transform: scale(1.1);
}
.text {
text-align: center;
font-family: "Roboto", sans-serif;
font-weight: 300;
font-size: 18px;
line-height: 21px;
}
/* image */
.skill-logo {
margin: 1em;
height: 50px;
max-width: 80px;
align-content: center;
justify-content: center;
align-self: center;
}
.star-container {
display: flex;
margin-bottom: 1em;
justify-content: center;
}
/* Star */
.star {
margin: 3%;
background: #f2c94c;
width: 10px;
height: 10px;
}

68
src/components/projects/Projects.js

@ -0,0 +1,68 @@
import React from "react";
import styled from "styled-components";
import ProjectCard from "./ProjectCard/ProjectCard";
import ProjectSet from "./assets/projects";
export default function Projects() {
return (
<Container id="skills">
<Title>Projects</Title>
{ProjectSet.map(topic => {
return (
<div key={topic.name}>
<TopicHeader>{topic.name}</TopicHeader>
<div key={topic.name}>
<ProjectsContainer>
{topic.projects.map(project => {
return (
<ProjectCardContainer key={project.name}>
<ProjectCard
name={project.name}
description={project.description}
url={project.url}
year={project.year}
/>
</ProjectCardContainer>
);
})}
</ProjectsContainer>
</div>
</div>
);
})}
</Container>
);
}
const Container = styled.div`
margin-bottom: 1em;
padding-top: 2em;
`;
const Title = styled.h1`
text-align: center;
font-family: Montserrat, sans-serif;
font-size: 6em;
color: white;
position: relative;
`;
const TopicHeader = styled.p`
text-align: center;
font-family: Montserrat, sans-serif;
font-size: 2em;
color: white;
position: relative;
`;
const ProjectsContainer = styled.div`
display: flex;
flex-direction: row;
flex-wrap: wrap;
font: inherit;
justify-content: center;
`;
const ProjectCardContainer = styled.div`
margin: 1em;
`;

30
src/components/projects/assets/projects.js

@ -0,0 +1,30 @@
export default [
{
name: "Web",
projects: [
{
name: "Imf & Firus",
description: "Daily challenges for children of work-from-home-parents",
url: "https://imfundfirus.de/",
year: "2020"
}
]
},
{
name: "Systems",
projects: [
{
name: "Ditto",
description: "A simple educational blockchain concept",
url: "https://github.com/garritfra/blockchain-project",
year: "2018"
},
{
name: "Rustfuck",
description: "A brainfuck compiler written in rust",
url: "https://github.com/garritfra/rustfuck",
year: "2018"
}
]
}
];

4
src/components/skills/assets/skills.js

@ -55,7 +55,7 @@ export default [
skills: [
{ name: "Linux", logo: require("./linux.svg"), rating: 5 },
{ name: "Docker", logo: require("./docker.svg"), rating: 3 },
{ name: "Kubernetes", logo: require("./kubernetes.svg"), rating: 2 },
{ name: "Kubernetes", logo: require("./kubernetes.svg"), rating: 3 },
{ name: "Google Cloud", logo: require("./google-cloud.svg"), rating: 3 }
]
},
@ -84,7 +84,7 @@ export default [
name: "Misc",
skills: [
{ name: "Python", logo: require("./python.svg"), rating: 3 },
{ name: "Rust", logo: require("./rust.svg"), rating: 2 },
{ name: "Rust", logo: require("./rust.svg"), rating: 3 },
{ name: "Go", logo: require("./go.svg"), rating: 3 },
{ name: "LaTeX", logo: require("./latex.svg"), rating: 4 }
]

2
src/home/Home.js

@ -5,6 +5,7 @@ import Skills from "../components/skills/Skills";
import "./Home.scss";
import config from "./particleConfig";
import Landing from "../landing/Landing";
import Projects from "../components/projects/Projects";
export default function Home() {
return (
@ -13,6 +14,7 @@ export default function Home() {
<Navbar />
<Landing />
<Skills />
<Projects />
</div>
);
}

Loading…
Cancel
Save