{
    "componentChunkName": "component---src-pages-index-js",
    "path": "/",
    "result": {"data":{"prismicHomepage":{"_previewable":"XoX1FhAAACQAA2rp","data":{"banner_title":{"text":"OSHOLOPA.COM"},"banner_description":{"text":"Web developer from Finland"},"banner_background":{"url":"https://images.prismic.io/osholopa-portfolio/dc51c93d-2a32-4124-8a00-5bec3363acb8_coderz.jpg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50&rect=0%2C0%2C6000%2C3999&w=2000&h=1333"},"body":[{"slice_type":"alternate_grid","id":"cb5eb97b-231f-5f91-a5e2-de12d251a7fd","primary":{"source_url":{"url":"https://github.com/osholopa/foodb"},"source_url_2":{"url":null},"demo_url":{"url":"https://osholopa-foodb.herokuapp.com/"},"description":{"text":"This application utilizes a .NET Core Web api and a React / Redux client to interact with stored data. API supports basic crud-operations , implements simple JWT token authentication made with bcrypt and authorizes endpoints that mutate any data. App has been Dockerized and uses CI/CD to Heroku via Github Actions."},"image_side":"left","image":{"url":"https://images.prismic.io/osholopa-portfolio/b07250eb-0b6a-458f-ad6e-dd429758be52_pexels-fernando-arcos-211122.jpg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"},"title":{"text":"Foodb - Platform for sharing food recipes"}},"items":[{"optional_icon":{"url":"https://osholopa-portfolio.cdn.prismic.io/osholopa-portfolio/ab6797d2-2070-49b0-997b-82317789fa28_icons8-react.svg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"}},{"optional_icon":{"url":"https://osholopa-portfolio.cdn.prismic.io/osholopa-portfolio/4db8e538-4e44-4a54-a5f8-0f2a24267825_icons8-c-sharp-logo.svg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"}},{"optional_icon":{"url":"https://images.prismic.io/osholopa-portfolio/386f2f01-5742-41ba-9795-4488abdbcb8b_icons8-postgresql-48.png?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50&rect=0%2C0%2C48%2C48&w=32&h=32"}},{"optional_icon":{"url":"https://osholopa-portfolio.cdn.prismic.io/osholopa-portfolio/53a90dcc-9738-4a81-8a9d-b1a969ead1dd_icons8-docker.svg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"}}]},{"slice_type":"alternate_grid","id":"8bf2c9ab-5996-5215-a1df-98e1a1815e0f","primary":{"source_url":{"url":null},"source_url_2":{"url":null},"demo_url":{"url":"https://toonika.fi"},"description":{"text":"This project was created during summer 2021 for a client (Toonika Oy) with a small company that I have been co-founding, Kooste Oy. Its a Jamstack-site with Shopify & Prismic APIs and Next.js frontend. It is a good demonstration of my skills on how to bring beautiful designs to life."},"image_side":"right","image":{"url":"https://images.prismic.io/osholopa-portfolio/4bf597a8-9305-4d98-8b71-f7e0e231bef2_toonika.jpg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"},"title":{"text":"Kooste Oy / Toonika.fi (Real project)"}},"items":[{"optional_icon":{"url":"https://osholopa-portfolio.cdn.prismic.io/osholopa-portfolio/19d3b36e-59e0-49f4-908d-33eb8cd529d6_icons8-typescript.svg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"}},{"optional_icon":{"url":"https://osholopa-portfolio.cdn.prismic.io/osholopa-portfolio/ab6797d2-2070-49b0-997b-82317789fa28_icons8-react.svg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"}}]},{"slice_type":"alternate_grid","id":"d1eb9204-662a-5b8f-ba8d-e5ce6da7ecff","primary":{"source_url":{"url":null},"source_url_2":{"url":null},"demo_url":{"url":"https://demo.kooste.fi/"},"description":{"text":"This project is a tennis course enrollment system and has also seen daylight in a real-world production environment by one of our clients at Kooste. I was mainly responsible for the front-end. The project as a whole consists of a React frontend and a python flask backend running inside a Docker container. Data is stored in Firebase firestore and Google calendar."},"image_side":"left","image":{"url":"https://images.prismic.io/osholopa-portfolio/818f44b2-bd20-404d-947d-12e2141ed1d5_tennis.png?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"},"title":{"text":"Kooste Oy / Tennis course enrollment system (Real project)"}},"items":[{"optional_icon":{"url":"https://osholopa-portfolio.cdn.prismic.io/osholopa-portfolio/ab6797d2-2070-49b0-997b-82317789fa28_icons8-react.svg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"}},{"optional_icon":{"url":"https://osholopa-portfolio.cdn.prismic.io/osholopa-portfolio/e0b3c9a6-4024-430d-be9d-b7136395abe0_icons8-material-ui.svg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"}},{"optional_icon":{"url":"https://osholopa-portfolio.cdn.prismic.io/osholopa-portfolio/53a90dcc-9738-4a81-8a9d-b1a969ead1dd_icons8-docker.svg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"}},{"optional_icon":{"url":"https://osholopa-portfolio.cdn.prismic.io/osholopa-portfolio/251b445b-8656-4f24-a4d6-185a015d1385_icons8-flask.svg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"}},{"optional_icon":{"url":"https://osholopa-portfolio.cdn.prismic.io/osholopa-portfolio/0637ecf7-5b32-4ec8-a86e-cf83f663fbcd_icons8-python.svg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"}}]},{"slice_type":"alternate_grid","id":"2cb5f706-f853-5d46-b836-d1f0aea6663a","primary":{"source_url":{"url":"https://github.com/osholopa/newsletter-form"},"source_url_2":{"url":null},"demo_url":{"url":"https://jovial-bell-2f4b94.netlify.app/"},"description":{"text":"A newsletter subscription form made with React and styled with SCSS. It demonstrates my skills on CSS/SCSS and how to create custom styled UI components from scratch. Different components include text fields, checkboxes, buttons, error messages and snackbars inside a responsive form."},"image_side":"left","image":{"url":"https://images.prismic.io/osholopa-portfolio/1e2ad82a-08bf-459a-b754-8608a21152ac_newsletter-form.jpg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"},"title":{"text":"Newsletter form with basic validation messages / snackbar"}},"items":[{"optional_icon":{"url":"https://osholopa-portfolio.cdn.prismic.io/osholopa-portfolio/ab6797d2-2070-49b0-997b-82317789fa28_icons8-react.svg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"}},{"optional_icon":{"url":"https://osholopa-portfolio.cdn.prismic.io/osholopa-portfolio/03e9fbab-6f1d-410a-bd2a-b9a0716e6610_icons8-sass-avatar.svg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"}}]},{"slice_type":"alternate_grid","id":"d0ec8a2c-3bca-56cd-b08b-572e3d9dd4ec","primary":{"source_url":{"url":"https://github.com/osholopa/SnakeJS"},"source_url_2":{"url":null},"demo_url":{"url":"https://osholopa.github.io/SnakeJS/"},"description":{"text":"Vanilla JavaScript Snake game inspired by 90's games. Implements touch event swipe controls for mobile usability and uses Web audio API to play sounds."},"image_side":"right","image":{"url":"https://images.prismic.io/osholopa-portfolio/a77cd1aa-521d-4909-ba9c-85e8d2ff8821_snake_uus.JPG?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"},"title":{"text":"Javascript / HTML Snake game"}},"items":[{"optional_icon":{"url":"https://osholopa-portfolio.cdn.prismic.io/osholopa-portfolio/29b49073-48d2-42d3-ac73-e9c3006d79d8_icons8-html-5.svg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"}},{"optional_icon":{"url":"https://osholopa-portfolio.cdn.prismic.io/osholopa-portfolio/9e33dcc2-2c95-4bc6-a0f6-dc28f8a81f34_icons8-javascript.svg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"}}]},{"slice_type":"alternate_grid","id":"f4a8e074-76ce-5af5-9322-8c117249e86c","primary":{"source_url":{"url":"https://github.com/osholopa/Platformer2D"},"source_url_2":{"url":null},"demo_url":{"url":"https://osholopa.github.io/Platformer2DWebGL/"},"description":{"text":"2D side scroller prototype game made with Unity, C# and built for web with WebGL. Graphics made with Inkscape."},"image_side":"right","image":{"url":"https://images.prismic.io/osholopa-portfolio/2c1a5185-30cb-416f-bbb4-88cc71b21c6a_platformer-1568x882.jpg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"},"title":{"text":"2D Platformer prototype game"}},"items":[{"optional_icon":{"url":"https://osholopa-portfolio.cdn.prismic.io/osholopa-portfolio/845bb6c6-04d9-44fe-a4a0-a462004ace14_icons8-unity.svg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"}},{"optional_icon":{"url":"https://osholopa-portfolio.cdn.prismic.io/osholopa-portfolio/4db8e538-4e44-4a54-a5f8-0f2a24267825_icons8-c-sharp-logo.svg?ixlib=gatsbyFP&auto=compress%2Cformat&fit=max&q=50"}}]}]}},"prismicFooter":{"data":{"copyright":{"text":"© 2022 Oskari Holopainen"},"github_link":{"url":"https://github.com/osholopa"},"linkedin_link":{"url":"https://www.linkedin.com/in/oskari-holopainen-0b4995191/"},"mailto_link":{"url":"mailto:oskariholopa@gmail.com"}}}},"pageContext":{}},
    "staticQueryHashes": []}