dwysokinski.me/src/features/HomePage/components/Portfolio/Portfolio.js

198 lines
4.8 KiB
JavaScript
Raw Normal View History

2021-01-17 08:31:50 +00:00
import React from 'react';
import { useStaticQuery, graphql } from 'gatsby';
2020-07-13 17:04:46 +00:00
2021-01-17 08:31:50 +00:00
import { makeStyles } from '@material-ui/core/styles';
import { Typography, Container } from '@material-ui/core';
import Section, { BG_COLOR } from '@components/Section';
import Project from './Project';
2020-07-13 17:04:46 +00:00
const useStyles = makeStyles(theme => ({
2020-07-13 17:04:46 +00:00
section: {
2021-01-17 08:31:50 +00:00
transform: 'skewY(-7deg)',
padding: '8rem 0',
margin: '6rem 0',
'& > *': {
transform: 'skewY(7deg)',
},
2021-01-17 08:31:50 +00:00
[theme.breakpoints.down('sm')]: {
margin: '3rem 0',
2020-07-13 17:04:46 +00:00
},
},
projects: {
2021-01-17 08:31:50 +00:00
'& > *:not(:last-child)': {
marginBottom: theme.spacing(2),
},
},
2021-01-17 08:31:50 +00:00
}));
2020-07-13 17:04:46 +00:00
2021-01-17 08:31:50 +00:00
export const SECTION_ID = 'portfolio';
function Portfolio() {
2021-01-17 08:31:50 +00:00
const classes = useStyles();
const data = useStaticQuery(graphql`
{
allCoverImages: allFile(
filter: { absolutePath: { regex: "/projects/" } }
) {
edges {
node {
relativePath
childImageSharp {
id
fluid(maxWidth: 1000) {
...GatsbyImageSharpFluid
}
}
}
}
}
}
2021-01-17 08:31:50 +00:00
`);
2020-07-13 17:04:46 +00:00
return (
<Section
id={SECTION_ID}
className={classes.section}
bgColor={BG_COLOR.PRIMARY}
>
2020-07-13 17:04:46 +00:00
<Container>
<Typography variant="h2" align="center" gutterBottom>
My work
2020-07-13 17:04:46 +00:00
</Typography>
<div className={classes.projects}>
{projects.map((project, index) => {
2021-01-17 08:31:50 +00:00
let fluid = undefined;
if (project.fluid) {
const edge = data.allCoverImages.edges.find(
img => img.node.relativePath === project.fluid
2021-01-17 08:31:50 +00:00
);
if (edge) {
2021-01-17 08:31:50 +00:00
fluid = edge.node.childImageSharp.fluid;
}
}
return (
<Project
key={project.title}
{...project}
fluid={fluid}
reverse={(index + 1) % 2 === 0}
/>
2021-01-17 08:31:50 +00:00
);
})}
</div>
2020-07-13 17:04:46 +00:00
</Container>
</Section>
2021-01-17 08:31:50 +00:00
);
2020-07-13 17:04:46 +00:00
}
const projects = [
{
2021-01-17 08:31:50 +00:00
title: 'TWHelp',
description:
2021-01-17 08:31:50 +00:00
'A stat tracking and tools website, scripts, a public GraphQL API and a Discord bot for the browser-based game Tribal Wars.',
technologies: [
2021-01-17 08:31:50 +00:00
'GraphQL',
'Golang',
'gqlgen',
'Gin',
'discordgo',
'robfig/cron',
'Redis',
'PostgreSQL',
'TypeScript',
'React',
'Gatsby',
'Material-UI',
'Create React App',
'Apollo',
'Parcel',
'Docker',
'Traefik',
],
2021-01-17 08:31:50 +00:00
github: 'https://github.com/tribalwarshelp',
fluid: 'projects/twhelp.png',
live: 'https://tribalwarshelp.com/',
},
{
2021-01-17 08:31:50 +00:00
title: 'Zdam Egzamin Zawodowy',
description:
2021-01-17 08:31:50 +00:00
'A mobile and web app for practising the theoretical part of the vocational exam.',
technologies: [
2021-01-17 08:31:50 +00:00
'GraphQL',
'Golang',
'gqlgen',
'Echo',
'PostgreSQL',
'React',
'Next.JS',
'Material-UI',
'Apollo',
'React Native',
],
2021-01-17 08:31:50 +00:00
github: '',
fluid: 'projects/zdam.png',
live: 'https://zdamegzaminzawodowy.pl/',
},
{
2021-01-17 08:31:50 +00:00
title: 'matura-z-informatyki.pl',
description: '',
technologies: ['React', 'Next.JS', 'Bulma', 'Ghost'],
github: 'https://github.com/Kichiyaki/matura-z-informatyki.pl',
live: 'https://matura-z-informatyki.pl/',
fluid: 'projects/maturazinf.png',
},
{
2021-01-17 08:31:50 +00:00
title: 'dwysokinski.me',
description: '',
technologies: ['React', 'Gatsby', 'Material-UI'],
github: 'https://github.com/Kichiyaki/dwysokinski.me',
live: 'https://dwysokinski.me',
fluid: 'projects/dw.png',
},
{
2021-01-17 08:31:50 +00:00
title: 'OLX Crawler',
description: 'An app written in Go to observe olx.pl ads.',
technologies: [
2021-01-17 08:31:50 +00:00
'Golang',
'Colly',
'SQLite3',
'Echo',
'React',
'Material-UI',
],
2021-01-17 08:31:50 +00:00
fluid: 'projects/olx.png',
github: 'https://github.com/Kichiyaki/olx-crawler',
},
{
2021-01-17 08:31:50 +00:00
title: 'Instaling.pl Bot',
description: 'A bot that solves the instaling.pl vocabulary test for you.',
technologies: ['Golang', 'Lorca'],
fluid: 'projects/instaling.png',
github: 'https://github.com/Kichiyaki/Instaling-Bot',
},
{
2021-01-17 08:31:50 +00:00
title: 'Margonem Mini Bot',
description:
2021-01-17 08:31:50 +00:00
'A bot for the mobile client of the browser-based MMORPG game Margonem.',
technologies: ['Golang', 'Colly'],
fluid: 'projects/margonem.png',
github: 'https://github.com/Kichiyaki/margonem-mini-bot',
},
{
2021-01-17 08:31:50 +00:00
title: 'Akademia Młodego Inżyniera',
description: '',
technologies: ['HTML', 'CSS', 'Bootstrap'],
live: 'https://dwysokinski.me/preview/akademia/',
fluid: 'projects/amz.png',
},
{
2021-01-17 08:31:50 +00:00
title: 'Freshline',
description: '',
technologies: ['Wordpress', 'CSS', 'Bootstrap'],
live: 'http://fresh-line.pl/',
fluid: 'projects/freshline.png',
},
2021-01-17 08:31:50 +00:00
];
2021-01-17 08:31:50 +00:00
export default Portfolio;