162 lines
8.1 KiB
Markdown
162 lines
8.1 KiB
Markdown
# 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](mailto:roman@necas.me)
|