<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>Evan Scherrer - Portfolio</title>
    <link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}" />
    <style>
      #portfolio-container {
        max-width: 640px;
        margin-top: 20px;
        padding: 20px;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-evenly;
        row-gap: 20px;
        padding: 20px 0px;
      }
      .main-panel {
        margin-bottom: 20px;
      }
      p {
        margin-bottom: 0;
      }
    </style>
    {% from 'components/header.html' import header %}
    {% from 'components/footer.html' import footer %}
    {% from 'components/portfolio_item.html' import portfolioItem %}
  </head>
  <body>
    <div class="main-panel">
      {{ header("Project Portfolio", "/") }}
      <p>A small collection of my favorite projects that I've worked on. For the source code (and some more projects), feel free to check out my <a href="https://github.com/Jovan-04" target="_blank">GitHub</a>.</p>
    </div>
    <div class="main-panel" id="portfolio-container">

      {{ portfolioItem("Noita Live Map", "A live-updating map for the video game Noita that reveals and tracks terrain as the player discovers it. Built using Lua, Flask, and Jinja.", "https://github.com/noita-live-map-evan-nick") }}

      {{ portfolioItem("Infrastructure Network Modeling", "A publication I authored that proposes a new technique for modeling how different urban infrastructure networks interact with each other.", "https://doi.org/10.1145/3764926.3771946", "DOI ↗") }}

      {{ portfolioItem("Hangman Client", "A command-line client to play popular whiteboard game Hangman over a network, written in Rust.", "https://github.com/Jovan-04/hangman-client-rust") }}

      {{ portfolioItem("Hangman Server", "A server to host games for my Hangman client, also written in Rust.", "https://github.com/Jovan-04/hangman-server-rust") }}

      {{ portfolioItem("Binary Clock", "A physical clock that tells the time with LEDs displaying binary strings, all with an Arduino microcontroller.", "https://github.com/Jovan-04/binary-clock") }}

      {{ portfolioItem("Minecraft Utility Bot", "A modular bot able to automate various tasks of survival Minecraft, such as farming crops. Built with the Mineflayer Node.js library.", "https://github.com/Jovan-04/utility-bot") }}

      {{ portfolioItem("Audio-Converter", "A short bash script to convert batches of audio files between formats, replicating the directory structure.", "https://github.com/Jovan-04/ffmpeg-converter") }}
      {{ portfolioItem("Recipe Web Scraper", "An ElectronJS application that calculates a recipe's cost based on pricing data scraped from various retailers.", "https://github.com/Jovan-04/recipe-web-scraper") }}

    </div>
    {{ footer("December 2025") }}
  </body>
</html>
