My portfolio website, recreated with React and TypeScript.
Application's front-end is created with create-react-app and uses Skeleton CSS framework.
Back-end contains a simple express.js server.
Resume data is hosted locally and follows generally JSON Resume standard, with the exception of estimated graduation date.
Project data are fetched dynamically from Contentful and the data is cached for two minutes with Redis.
Photographs are fetched from Flickr and the data is also cached for two minutes.
Location is sent from a React Native application that I created to act as a hub. Location is updated approximately every 30 minutes and shows the country and city where my phone is located. Location can also be removed from the application.
Small description about the location is fetched from Wikipedia using DBpedia's SPARQL endpoint.
- Node
- Yarn
- Local redis server (e.g.
brew install redis
)
- Install dependencies in all main directories (root, server, client) with
yarn
- Create
.env
file in server with required parameters defined in.env.template
. - Run
redis-server
with default parameters - Run
yarn run dev
while in root directory
Currently CI runs only linter as no tests are defined. Tests could probably be added for testing redis cache and API calls.
Application is hosted on Heroku, update to master branch will automatically trigger a new deployment. Beta version of the site is available at www.beta.patrikmarin.fi which is based on the dev-branch. Beta site has no SSL configured as it's a different Heroku application.
Simply creating a dyno with attached Heroku Redis add-on and pushing to heroku will work fine.