Skip to main content

Projects

·1546 words·8 mins

I enjoy exploring different programming languages by reimplementing popular technologies and building fun projects that no one really needs. Most of my personal programs are CLI-based, although recently I’ve been convincing myself to build more GUI applications as well. At university I mainly work with Java, while my personal projects give me the opportunity to experiment with other technologies. In my most recent personal project, I focused on golang.

Lorem Ipsum generator
#

New repo!

The LoremIpsum is a Java program that allows users to generate placeholders in text form, using Lorem Ipsum. This tool is ideal for creating dynamic and customizable text for various documentation or design needs.

Book cryptor
#

Book-Cryptor is CLI tool for encrypting and decrypting book based ciphers. It allows users to encrypt and decrypt text using classic book cipher techniques, where a specific book or text is used as the key. The tool currently supports beale cipher, and offers an easy to use cobra interface for both beginners and classic cryptography enthusiasts.k

Github language statistics
#

This R script collects programming language usage statistics for a given GitHub account via the GitHub API and generates a visual summary showing the overall share of each language across all repositories.

Capture the flag writeups
#

This repository contains write-ups for various Capture the Flag challenges. All materials are organized in a clear directory structure for easy navigation. Alongside the Markdown write-ups, you’ll also find supporting scripts, payloads, notes, and other helpful resources used during the solving process. Currently, 34 challenges have been completed.

HTML to wordlist
#

“html2wordlist” is a simple Perl program that processes HTML files and generates a list of words based on rendered content. The program allows filtering words by length and saving the output to a file or printing it to the console.

Readme reports generator
#

This repo provides a script that automatically generates clean, structured README file based on existing CTF write-ups. It recursively scans a directory containing challenge solutions, extracts descriptive information, and collects various statistics such as categories, difficulty levels, and platforms.

Ciphers implementation in Java
#

JCipher is a cryptographic tool that implements algorithms for encryption, decryption and key generation. The program is based on symmetric as well as asymmetric algorithms. The tool is still being developed, gradually adding new algorithms.

Key value database implementation
#

Kivi is a single-file database written in Ruby that utilizes a hash table (key-value) structure. Data is stored on disk in binary format and compressed using gzip (zlib). Kivi offers a simple yet functional interaction with data, making it a great solution for small projects. Currently, Kivi supports the following types for keys and values: Integer, Float, and String.

Web scraper for Otodom.pl
#

This bot is developed in Python, with the main library used being Selenium. The scraper collects real estate data and stores it in an SQLite database, with database files located in the db directory. The .db file and all its tables are automatically generated based on the selected filters.

Title review sentiment classifier
#

This repository contains a sentiment classification model designed to analyze and classify product title reviews from various e-commerce platforms. The model utilizes various data processing techniques and machine learning algorithms to determine the sentiment of reviews, achieving an accuracy of 0.91.

Draft for game Stellar Explorer
#

This is a 2D platformer prototype currently in early development using the Godot engine. The game has basic mechanics such as idle, jump, fly, run and collision detection with objects.

Small prime and semiprime dataset generator
#

This repository contains three command-line programs designed for generating and working with prime and semiprime numbers. The primary goal of this project was to practice C language and create a tool for participating in CTF’s challenges that involve number theory and cryptography.

Banking database system
#

This project contains SQL Server (T-SQL) and Oracle (PL/SQL) database scripts for a banking application, developed as part of SBD course at PJATK.

Algorithms and data structures implementation
#

The repository contains the implementation of algorithms and data structures covered in the ASD course at PJATK.

Password manager
#

NullPass is a desktop application designed to simplify the way you handle your passwords. Unlike traditional password managers, this application operates entirely on your local machine. Importantly, it does not store any passwords physically on your disk. Instead, it generates passwords on-the-fly based on a master password and a set of user-defined parameters. This means that your passwords are never saved in a retrievable format, significantly reducing the risk of unauthorized access or data breaches. As a result of this design, there is no backups and synchronization between devices.

Enigma machine
#

This is a C++ implementation of an Enigma machine, inspired by the historical cipher machine used during World War II. It mimics the encryption process using rotors, plugboards, and a reflector. The program takes an input message (-t), encrypts it using the settings provided by the user (-s), and outputs the encrypted message. The values used for machine components are based on the settings used in the early models of the “Enigma I”.

Automation of spatial order evaluation
#

This repository contains 9 scripts designed to automate various spatial calculations, all based on the QGIS Python API. Each script features a simple GUI for entering the required data. The code is intended to run smoothly on QGIS 3.16 and later versions.

Password Generator
#

The Password Generator is a Java library designed to create random passwords with flexible rules and customization options. It allows you to specify the length of the password, set length ranges, and define the percentage distribution of character types (upper case, lower case, numbers, and special characters). The library also allows the inclusion and exclusion of selected characters.

Distributed averaging system
#

This application implements a Distributed Averaging System (DAS). It operates in a network environment, where multiple instances of the application communicate over UDP to calculate and share an average value. The system works in two modes: Server and Client, with automatic mode selection based on the current system state. Project was developed as part of the SKJ course at PJATK.

Centralized computing system
#

The CCS application is a computation server implemented in Java that provides three main functionalities: service discovery (UDP), client communication (TCP), and statistics reporting. A client application discovers the server via broadcast, then connects and request arithmetic operations. The server processes these requests and returns results or error messages. Project was developed as part of the SKJ course at PJATK.

Least significant bit steganography
#

LSB Steganography is a program for image steganography that hides messages by modifying the least significant bit of RGB (and optionally Alpha) values. The program supports .bmp and .ppm file formats. Project was developed as part of the PJC course at PJATK.

Toolset for managing permissions
#

Ice IX is a command-line toolset for managing file and directory permissions. It allows you to “freeze” permissions by saving them to a mapping file, and later “melt” them to restore the original settings. With options for recursive operations and directory inclusion, ice nine provides a simple way to revert permissions across your file system.

File quality Excel plugin
#

The foundation of the plugin involves preparing template file, which is then converted to .xlcg format in the final stage. During the preparation process, both unchangeable (hard) values and values that can be disregarded by macros can be added.

Wiktor Szczepanik
Author
Wiktor Szczepanik