80 projects

prefood

TypeScript

Full-stack food order complete with user accounts, third-party authentication providers, an API with Swagger docs and online payments using Stripe.

Javaquarium

Java

JavaFX demo app that uses most of the framework's features (available at the time). I also made my own dependency injection and caching framework for this project.

hackupc-2023

Svelte

HackUPC 2023 submission: MongoDB/SvelteKit/Rust/Python app that allows students to share notes and rank them with an AI evaluation.

saund

Svelte

Music guessing game similar to wordle. Connects to the SoundCloud API to play songs, which you have six tries to guess correctly with the help of autocomplete. The sample duration increases each guess.

oispaeliitti-v4

Svelte

2048-style game with tweakable settings and a global leaderboard.

ScalaCraft

Scala

Simple block game being made with Scala and LWJGL.

archlinux-image-builder

Shell

Script to create an Arch Linux disk image that can be deployed on any UEFI system

jumpybird

JavaScript

Classic arcade game with a twist. Also a Progressive Web App demo that auto-updates automatically and works offline.

farm

Java

One of the first games I made, rewritten to modern Java standards. Includes JUnit 5 tests, dependency injection with Guice and native images.

dungeoncrawler

C++

Basic dungeon crawler with collision detection and infinite room generation. Made in C++.

CppCraft

C++

Simple block game being made with C++ and OpenGL.

cloud

PHP

A simple file hosting site that also works as a pastebin. Features include an ip logger, download links, text editing, listing files and temporarily trashing them.

wordle-minimal

JavaScript

Wordle, but it uses HTML-native input elements for you to enter the guesses in. This makes the game more difficult, as you can't see the keyboard with colors.

town-of-lieto

TypeScript

Multiplayer social deduction game similar to mafioso and werewolf. Keeps all the players synchronized with WebSockets. Currently, only a text version is implemented.

birdnest

TypeScript

Reaktor 2022 pre-assignment. Fetches drone data and keeps track of no-fly zone offenders. I forgot to add auto-restart, but it's been running with 0 crashes since 11. December.

eliittilukio-frontend

Svelte

My school's student council's website, made with SvelteKit

Battleship-Client

Java

Another battleships game, this time in Java and JavaFX. It's also one of my first projects, so the code might not be the best.

reverse-powershell

PowerShell

Quickly generate a powershell command for a reverse shell. Use responsibly, at your own liability.

web-chess

Svelte

Play chess against a computer.

textart

JavaScript

Make images from text. Also doubles as a pixel art editor. It's not super complicated, just serializes the text into RGB data that it renders on to a canvas. However, some tricks are involved.

mchat

TypeScript

Completely end-to-end encrypted and anonymous messaging app. The only backend is a Postgres database, so everything works transparently.

ruokavuorot

TypeScript

Quickly tells you your meal times at the school of TSYK. just copy paste your schedule from Wilma, and the site automatically parses it.

arch-rice

Scheme

Automatic colors for everything

ACHook

C++

Binary patching framework for retro game AssaultCube. Made in C++, for educational purposes only.

qTick

Svelte

Time visualizer: renders a clock to help visualize time spent on things every day of the week.

language-model-discord-bot

Rust

Discord bot in Rust that asks instructions from a text-generation-webui API.

fcat

Python

Python Discord bot that says cat facts. Not much else to it. Occasionally says a dog fact.

image-picker

JavaScript

Quickly pick from and sort thousands of images without transitions, so you can see the smallest details. Helps when you need to clean your gallery full of very similar photos.

m-edit

Svelte

A wrapper around the math editor used in Finnish exams that it allows saving and restoring multiple pages, and of course dark mode.

game-of-life

Svelte

Efficient implementation of John Conway's Game of Life, using HTML5 canvas.

worm

JavaScript

Minimalistic but addictive implementation of the classic snake arcade game. Written in pure HTML and JS.

weather

JavaScript

SvelteKit app that gathers and displays weather data from multiple sources, including every city in the world with over 5000 citizens.

wordle-difficulty

JavaScript

See how difficult today's wordle is. Also includes previous days. This webapp hooks to the datamuse.com database for word frequencies in English literature.

trivia-hack

JavaScript

Trivia game. Get a high streak! I made this because all of the others kind of sucked.

supabase-shoutbox

Svelte

Simple shoutbox webapp that allows users to send messages after authenticating with their Github account. Made using Supabase (for comparison with Firebase).

qlet

TypeScript

Scrapes language-to-language dictionaries from Quizlet and the publishing platform Otava, and creates a practise test for them.

python-notebook

Jupyter Notebook

A collection of code and small programs of R and Python I wrote while learning the languages in the form of a Jupyter notebook.

battleships-in-c

C

Singleplayer version of the classic boardgame. Reads a configuration file for ship locations.

firebase-shoutbox

TypeScript

Simple shoutbox webapp that allows users to send messages after authenticating with their Github account. Made using Firebase (for comparison with Supabase).

truth-tabler

JavaScript

Web application that renders truth from a proposition, including the result of that proposition. The logic is implemented in Python and run on the web with Pyodide. Latex is rendered with MathJax.

wireguard-family-gen

Python

Tool to generate scripts to configure a Wireguard server and clients.

countries

Svelte

A globe visualization with clickable countries. Opens up wikipedia for that country.

ocaml-mandelbrot

OCaml

OCaml program to render the mandelbrot fractal (and others). Should be very fast at generating a top-level image. Only dependency is the graphics library.

turku-palaute

Svelte

Displays feedback to the city of Turku from a public API. Includes links to a map that shows the relevant location.

min-chess

Svelte

Play chess against a WebAssembly Stockfish with NNUE evaluation. Stockfish is compiled from C++ with Emscripten.

pop-mat-gen

Rust

Generates a matrix population model based on a text file containing a map draw with ASCII.

libc-reference

HTML

List of C functions including which standard they belong to

secret-santa

Svelte

Can't get everyone together in the same place? Just deploy this to have a deterministic algorithm generate recipients for everyone!

mindmapper

JavaScript

Simple mindmap creator. No ads or login. I also made this one because almost everything requires an account these days.

exposed

TypeScript

Free and open source implementation of a popular social game on the Play Store. Players vote each other (or themselves) on questions of the form "Who will __?" or "Who's the most likely to __?". Powered by Firebase.

influence-tool

Java

Reverse-engineering tool that decrypts and modifies request data for the mobile strategy game "Influence"

opensimplecors

Simple and open-source browser extension that allows localhost to make CORS requests anywhere.

hello-efi

Shell

Smallest example of a complete EFI executable that prints hello world

ansible-wireguard-vpn

Jinja

An ansible playbook that configures a WireGuard VPN on a Debian server.

PNGtext

C++

Converts text to square PNG images and vice versa. Allows custom scaling.

octo-item

Svelte

A super basic app I made to help me remember what to pack for trips. Allows you to save lists and sort the needed items from the saved lists. Uses Cloudflare's KV storage.

asm-excercises

Assembly

Small programs in Assembly (Intel syntax) that do various operations. I wrote these to help me learn the language when I as starting out.

img-scraper

JavaScript

I used this script to replace imgur images with locally hosted ones on my website

urql-codegen-demo

TypeScript

Simple application that demonstrates the use of the urql client with code generation for TypeScript, along with GraphiQL. By doing <code>npm run codegen</code>, all the types should be automatically validated in two ways: The query is correct based on the schema, and the results are accessed correctly in the frontend code.

exposed-cli

JavaScript

Command-line client to the mobile social game "Exposed". Made by reverse-engineering the protocol with mitmproxy.

happypages

JavaScript

Chrome extension to make your pages happy

debaslist

HTML

renders a list of debian programs that have appstream metadata errors

halla-hack

Python

Generates highscore games for oispahalla.com

pss-pusher-discord-bot

TypeScript

Post market and chat messages from PSS into Discord. Supports Docker.

blurring

C

pss-discord-bot-lambda

JavaScript

Nicely format and post fleet recruitement and LFG ads for Pixel Starships

oispaeliitti-v3

Svelte

2048 game and server

dontpanic

Svelte

Backend: https://github.com/nam-vuhoang/fresh-air

eliittilukio-backend

Rust

overthewire

Perl

Battleship-Config

Java

Configuration creator for my battleships game server

discapes

Profile README.md

ansible-honeypot

Jinja

Battleship-Server

Java

Server to host a game of battleships

simple-upload

TypeScript

oispaeliitti-v2

JavaScript

2048 clone with many features! Don't use, old version!

textart-svelte

JavaScript

discapes/textart using svelte.

codespaces-jupyter-sandbox

Jupyter Notebook

vaadin-admin

Java

tsyk-lunch-rss-poster

JavaScript