From 088adb134dff32e0b6eaf18d264e498ada2564a8 Mon Sep 17 00:00:00 2001 From: Roman Necas Date: Mon, 20 Apr 2026 22:20:47 +0200 Subject: [PATCH] add readme.md for navigation and structure description --- README.md | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..d061c36 --- /dev/null +++ b/README.md @@ -0,0 +1,162 @@ +# University Projects — Roman Nečas + +Coursework from the **Bachelor of Information Technology** programme at the **Faculty of Information Technology, Brno University of Technology (FIT VUT)**, 2023–2026. + +This repository is a portfolio snapshot — for each course, the version of the project that was submitted and graded. Some projects are team efforts (co-authors credited in the relevant directory); the rest are solo work. + +## Repository layout + +``` +projects/ +├── 1BIT/ # Year 1 (2023/2024) +│ ├── winter-semester/ +│ └── summer-semester/ +├── 2BIT/ # Year 2 (2024/2025) +│ ├── winter-semester/ +│ └── summer-semester/ +└── 3BIT/ # Year 3 (2025/2026) + ├── winter-semester/ + └── summer-semester/ +``` + +## Highlights + +If you only have time to look at a few projects, start with these: + +- **ISA — ICMP Covert Channel** *(C, OpenSSL)* — encrypted file transfer tunneled through ICMP Echo packets. +- **IJA — Advance Wars clone** *(Java 21, JavaFX, 93 JUnit tests)* — turn-based strategy game with two AI opponents and a replay system. Team lead. +- **IIS — Winery Management System** *(Laravel 12, Tailwind 4, Docker)* — full-stack web app with 20+ migrations and role-based access control. +- **IMP — ESP32 Heart-Rate Monitor** *(C, ESP-IDF, FreeRTOS)* — photoplethysmography with a Kalman filter, sampled at 500 Hz. +- **IPK — L4 Port Scanner** *(C, raw sockets)* — TCP/UDP scanner for IPv4 and IPv6, benchmarked against Nmap. +- **INP — 8-bit CPU in VHDL** — synthesisable CPU that executes a BrainFuck-like instruction set. + +## Year 3 (2025 / 2026) + +### Winter semester + +**ISA — Network Applications and Management** +File transfer through an ICMP covert channel. A C client/server that hides arbitrary files inside ICMP/ICMPv6 Echo-Request/Reply payloads, encrypts them with AES before transmission, and reassembles them on the listening side. Includes a custom on-top-of-ICMP framing protocol, a manpage, and a PDF design document. + +**IIS — Information Systems** +Winery management web application. Grape varieties, vineyard rows, harvests, wine production, purchases, events, and customer reservations. Laravel 12, Tailwind CSS 4, Vite; role-based access control via Laravel Policies; Dockerised for dev and prod. + +**IMP — Microprocessor and Embedded Systems** +ESP32 heart-rate monitor using an optical PulseSensor and an I²C OLED display. 500 Hz ADC sampling on a hardware timer, Kalman-filtered signal, threshold-crossing beat detection. Written in C on ESP-IDF v5.5.1 with FreeRTOS. + +**IMS — Modelling and Simulation** +Ski resort discrete-event simulation in C++/SIMLIB. Analyses lift capacity, queue lengths, and throughput under varying skier arrival rates. Team of 2. + +**IZV — Data Acquisition, Processing and Visualization** +Three Python assignments covering web scraping, statistical analysis of a real-world dataset, and visualization. + +### Summer semester + +**IJA — Java Programming Language** +*Advance Wars* clone in Java 21 / JavaFX. Grid-based tactical combat with terrain costs, multiple unit types, economy, two AI opponents (random and heuristic), and a step-through replay. Architecture uses MVC (engine cleanly separated from GUI), Command pattern with full undo/redo, Factory, and Observer. Dijkstra pathfinding. 93 JUnit 5 tests across 15 test classes. + +**ITS — Software Testing and dynamic analysis** +Test design exercises: BDD/Gherkin scenarios, test case documentation, and coverage reports. + +## Year 2 (2024 / 2025) + +### Winter semester + +**INP — Computer System Design** +- *Project 1:* 8-bit CPU in VHDL that interprets a BrainFuck-like instruction set (synthesisable, simulated in ModelSim). +- *Project 2:* Vigenère cipher implemented in MIPS64 assembly. + +**ISS — Signals and Systems** +Digital signal processing assignment in Python (Jupyter notebook): spectral analysis, filtering, and frequency-domain manipulation of audio signals. + +**ITU — User Interface Design** +UI/UX project — mockup, clickable prototype, and a final documentation PDF. + +**IAL — Algorithms** +Classic data structures in C across two homework sets: linked lists, stacks, queues, binary trees (both recursive and iterative traversal), and hash tables. + +### Summer semester + +**IPK — Computer Communication and Networks** +- *Project 1 (OMEGA):* L4 port scanner in C supporting TCP and UDP scanning over IPv4 and IPv6; evaluated against Nmap. +- *Project 2 (IPK25-CHAT):* Chat client implementing the IPK25-CHAT application protocol with both TCP and UDP transport variants, authentication, and channel semantics. + +**IPP — Principles of object-oriented programming** +Two-part compiler project for the SOL25 language. +- *Part 1:* Python 3.11 parser using the Lark library; produces an XML AST after lexical, syntactic, and static semantic analysis. +- *Part 2:* PHP 8 interpreter for SOL25, built object-oriented with clean Model / Expression / Statement / Values namespaces. + +**IDS — Database Systems** +Library management database in Oracle SQL. Four-part team project (ER model → relational schema → DML and queries → triggers, procedures, materialized view, analytical queries). Team of 2. + +**IBS — Information System Security** +Security assignments covering authentication, access control, and common vulnerability classes. + +**IZU — Fundamentals of Artificial Intelligence** +Four assignments on classical AI: uninformed and informed search, heuristics, and game-tree algorithms. + +**ITY — Typography and Publishing** +Five LaTeX typesetting assignments of progressively increasing complexity — from basic documents to mathematical papers and bibliographies. + +## Year 1 (2023 / 2024) + +### Winter semester + +**Keyfilter** — C project implementing interactive prefix-based filtering over a keyword list. + +**Maze** — C project implementing right-hand / left-hand rule maze solving on a triangular-cell maze. + +**IEL — Electronics for Information Technology** +DC / AC circuit analysis project with Dia schematics and a written report. + +### Summer semester + +**IJC — Programming in C** +- *Project 1:* Sieve of Eratosthenes built on a custom bitset data structure, plus a `no-comment` preprocessor that strips C-style comments. +- *Project 2:* Generic hash-table library with string interning, used to implement `tail` and `wordcount` clones. + +**IOS — Operating Systems** +- *Project 1:* Bash shell scripting for log processing and filesystem traversal. +- *Project 2:* Process synchronization in C using POSIX shared memory and semaphores. + +**INC — Digital Design** +Digital logic assignment (schematic / VHDL level). + +**IZLO — Fundamentals of Logic** +Two assignments combining propositional / predicate logic theory with a small C implementation. + +## Course code reference + +| Code | Course (English) | +| --- | --- | +| IJC | Programming in C | +| IOS | Operating Systems | +| INC | Digital Design | +| IZLO | Fundamentals of Logic | +| IEL | Electronics for IT | +| IAL | Algorithms | +| INP | Computer System Design | +| ISS | Signals and Systems | +| ITU | User Interface Design | +| IBS | Information System Security | +| IDS | Database Systems | +| IPK | Computer Communication and Networks | +| IPP | Principles of object-oriented programming | +| ITY | Typography and Publishing | +| IZU | Fundamentals of Artificial Intelligence | +| ISA | Network Applications and Management | +| IMS | Modelling and Simulation | +| IMP | Microprocessor and Embedded Systems | +| IIS | Information Systems | +| IZV | Data Acquisition, Processing and Visualization | +| IJA | Java Programming Language | +| ITS | Software Testing and dynamic analysis| + +## Notes + +- All projects were developed for FIT VUT courses and graded by the respective instructors. They are published here as a portfolio snapshot; the faculty's academic integrity rules apply to anyone considering reuse. +- Team projects list co-authors inside the relevant project directory (e.g., `IDS/xnecasr00_xpribik00/`). +- Binary build artefacts and third-party dependencies are generally excluded; follow each project's build instructions to rebuild from source. + +## Contact + +Roman Nečas — [LinkedIn](https://linkedin.com/in/roman-necas) [roman@necas.me](roman@necas.me)