sprite of running Super Mario
profile picture of Christian Eckardt

Christian Eckardt

Fullstack Engineer

  • 5+ years of experience in web development and eCommerce
  • Specialized in Nuxt/Vue framework
  • This website serves as a portfolio for my hobby projects
  • Looking for a collaboration? Contact me on GitHub or LinkedIn
screenshot triggerscore

Triggerscore

On this movie rating portal users can rate old movies based on how much these trigger viewers today. I designed and built the fullstack application myself, using Nuxt 4 (recently migrated from Nuxt 3), Vercel Serverless Functions connected to MongoDB for saving and receiving user ratings. Movie data I fetch via TMDB api. To improve performance I added github actions triggered via a cronjob to fetch movie data and update my own database once a month. Besides that I also developed a small movie quiz using data of movies rated on Triggerscore.
Nuxt
Typescript
NodeJS
MongoDB
Tailwind
Netlify
screenshot school fight

School Fight

This game offers turn based battles with different characters and ten levels, including three mini games, a boss fight and a shop system. Additionally the game includes six trophies and three hidden characters to unlock. The game is mobile friendly and currently playable on itch.io with already 1.300+ browser plays.
Javascript
CSS3
HTMLCanvas
screenshot commit combat

Commit Combat

Commit Combat is a retro arcade style versus game. Players have shields based on their amount of recent commits on github. For this fullstack application I fetch github data via my Flask backend hosted on Pythonanywhere. To fetch userdata I use GraphQL. The frontend is static html using Pixijs to display graphics.
Flask
Python
GraphQL
PixiJS
screenshot shooter

JS Shooter Game

This game was my second hobby project ever. Over the years I added a lot of features and refactored code. Today the game has 16 levels, an online highscore list, particle effects, power ups and a CRT filter for the perfect retro look. The game is written in plain Javascript using HTML Canvas. Highscores are saved in a MongoDB. A serverless backend is hosted on Vercel to serve/receive highscores.
HTMLCanvas
Javascript
NodeJS
MongoDB
Vercel
screenshot mealplanner

Vue Mealplanner

This application offers a meal and grocery planner. In the Vue Mealplanner users can add their own recipes and manage a list of grocery items. Ingredients can be added to the grocery list right from the recipe. Data is saved in local storage. Alternatively users can create a unique ID and save their lists in a MongoDB. The mealplanner is also provided as PWA.
Vue 3
Typescript
NodeJS
MongoDB
Vercel