Projects developed for the Computers and Telematics Engineering BSc + MSc at the University of Aveiro
I'd like to express my gratitude towards the colleagues who developed these projects with me over the course of our 5 year BSc + MSc degree, namely:
Alexandre Abreu, Alexandre Lourenço, André Alves, Daniel Correia, Eduardo Coelho, Eurico Dias, Gonçalo Perna, João Trindade, Jorge Silva, Pedro Valério, Ricardo Carvalho, Rita Amante, and Tomás Martins
Thanks for all the hours and dedication.
-
[LABI] AP1 - LaTeX Report about LaTeX Functionalities
Grade: 18.9/20
A +5,000 word report on LaTeX Functionalities developed in LaTeX with Jorge C. Silva in 2017 The project objective was to demonstrate ability in LaTeX and Git
-
[LABI] Proj1 - Static Website about LaTeX
Grade: 16.0/20
A multi-page static website on LaTeX Functionalities developed with Jorge C. Silva in 2018 The project objective was to demonstrate ability in HTML, CSS, JS and Git
-
[LABI] AP2 - TCP Client for connecting to a remote weather sensor
Grade: 18.5/20
A python TCP client featuring Diffie-Hellman key exchange and AES encription for connecting with and saving data from a remote weather sensor. Developed with Eurico Dias in 2018
The project objective was to demonstrate ability in Python, Encription and hashing, CSV, JSON, and TCP sockets
-
[LSDig] MP1 - FPGA Timer in VHDL
Grade: 20.0/20
A simple timer for use in FPGAs (DE2-115 kit) developed in VHDL with Rita Amante in 2018.
The project objective was to demonstrate ability in VHDL
-
[LSDig] FinalProj - FPGA Calculator implemented with Stack in VHDL
Grade: 19.6/20
A Stack implementation of a calculator for FPGAs (DE2-115 kit) using the integrated LCD.
Developed in VHDL with Rita Amante in 2018
-
[LABI] Proj2 - Comprehensive Web App for editing music in Python
Grade: 19.6/20
A comprehensive web app for creating music by mixing music samples together. It's also possible to check out other user's creations.
- Server & API - Python (CherryPy Framework)
- Database - SQLite3 and Python (for database read/write methods)
- Music Generarion - Python w/Struct module
- Dynamic Website - Vanilla JS w/JQuery and Bootstrap v4
Developed with Eurico Dias, Pedro Valério, and João Trindade in 2018
-
[MPEI] PF - Directory file checker using bloom filter and minhashing
Grade: 19/20
A Java Swing desktop application to check a directory for duplicates and check if a file belongs to a certain directory
- Counting Bloom Filter
- MinHash similarity detection (Jaccard Distance)
- Locality Sensitive Hashing
- Universal hashing algorithm
- Java Swing
Developed with André Alves in 2018
-
[LFA] PF - ANTLR Compiler for a new Robotics-Focused Programming Language
Grade: 17/20
A Compiler for CRAL (CiberRato Agent Language), a new Robotics-Focused programming language developed by us. Outputs C++ code for use in the CiberRato competition promoted by the University of Aveiro and its IEEE Student Branch
- ANTLR4 Grammar for CRAL
- Semantic Analysis and Code Generation (in Java and StringTemplate)
- ANTLR4 Grammar for the Compiler Configuration Language
- Interpreter for the Compiler Configuration Language (in Java)
- Error Handling (in Java)
Developed with Eurico Dias, Pedro Valério, Daniel Correia, and Rita Amante in 2019
-
[FR] MP - Small Business Network Implementation in GNS3
Grade: 20/20
A GNS3 simulation of a small business network
- Public and Private IPv4 Adressing as well as Global IPv6
- OSPF routing protocol on L3 connections
- 6 distinct VLANs with full connectivity (some with DHCP enabled)
- NAT/PAT enabled and full Internet connectivity
- HTTP/HTTPS, DNS, FTP and TFTP servers in a Datacenter VM
- Simple TCP app to send CPU and memory usage from client VM to server VM
Developed with Pedro Valério in 2019
-
[IIA] TPG - Autonomous agent to play the game Bomberman
Grade: 19.8/20
An autonomous agent capable of playing a pygame version of Bomberman writen in Python.
- Pathfinding Algorithms (A*)
- Bomb and Enemy Evasion algorithms
- Game strategy algorithm (State Machine)
Developed with Daniel Correia in 2019
Game code by professor Diogo Gomes
-
[AMS] Proj - Prototype Information System for a Meal Ordering Service akin to Glovo
Grade: 19/20
- Android App
- Flask and PostgreSQL backend
- Project website
- Numerous reports on use-cases, project vision, requirements, QA, and others
- Android App functional tests
Developed with Eurico Dias, Alexandre Lourenço, and Tomás Martins in 2019
-
[SO] SOFS - Critical components of an ext2-based filesystem
Grade: 17.8/20
C++ functions to implement critical components of SOFS19, an ext2-based filesystem
Developed with Eurico Dias, Pedro Valério, João Trindade, and Rita Amante in 2019
-
Grade: 19/20
- Sensing Unit planning and construction using multiple off-the-shelf sensor modules and the Pycom LoPy microcontroller
- MicroPython project code for acquiring information from said sensors and securily transmitting it to the Gateway
- Python project code for a Raspberry Pi based MQTT bridge
- Python/Flask API for obtaining sensor data & metadata (InfluxDB), managing system information and managing ABAC-based permissions
- Django Website for various management operations (system metadata, ABAC permissions)
- Grafana based Monitoring and Alerting platform
- Flutter End-User Mobile App. Allows direct access to sensor values and has notification functionality.
- Project Website and Documentation
- Final Project Report
Developed with Eurico Dias, Pedro Valério, João Trindade, Gonçalo Perna, and Ricardo Carvalho in 2020
Supervised by professor Diogo Gomes
-
[AR] Proj - Complete Business Network Implementation in GNS3
Grade: 20/20
Developed with Pedro Valério in 2020
-
[BD] Proj - MSSQL database for managing GLUA and respective WPF UI
Grade: 18/20
- MSSQL DDL Schema and Table creation (w/Constraints)
- MSSQL DML Queries
- MSSQL DML Stored Procedures, Views, and User Defined Functions
- MSSQL Triggers
- MSSQL Indexes
- C# WPF UI elements
Developed with Gonçalo Perna in 2020
-
[IHC] Proj - Flutter App for Personal Finances Management; UI/UX Analysis
Grade: Very Good (Qualitative Grade)
Developed with Pedro Valério and Gonçalo Perna in 2020
-
[ARA] Proj - Multi-ISP Network Implementation in GNS3
Grade: 19.5/20
- 2 ISP networks (1 transit AS, 1 non-transit AS)
- BGP functionality at ISP Border and Internet Core
- MPLS VPN to ensure Corporate Networking Services
- OSPF and MPLS LDP ISP Core Networking
- CDN PoC with bind9 ACL
- SIP Proxy Servers (Asterisk) with PoC PSTN integration
- SIP Clients (Linphone)
- SDN PoC with Open vSwitch, OpenFlow 1.3, and the Ryu Controller
- Extra: Project implementation using a separate computer for each ISP
Developed with Ricardo Carvalho in 2021
-
Grade: 17/17
- Parallel VHDL implementation of a CRC8 encoder using 37 2:1 XOR gates (4 levels of propagation delay).
- Bit-serial VHDL implementation of a CRC8 checker.
Developed with Ricardo Carvalho in 2020
-
[ACA] Assignment2 - Optimization of a Cyclic Cross Correlation CUDA workload
Grade: 16/17
Developed with Ricardo Carvalho in 2021
-
[EDC] TP1 - Movie and TV-Show Information Django Website based on XML and related technologies
Grade: 17/20
- Django Website
- XML dataset parser (w/ XPATH)
- BaseX interaction
- XML Schema Validation
- XSLT transformations
- XQuery CRUD operations
- RSS feed integration
Developed with Pedro Valério and João Trindade in 2020
-
[EDC] TP2 - Movie and TV-Show Information Django Website based on Semantic Web technologies (RDF)
Grade: 17/20
- Django Website
- XML to N3 RDF dataset conversion
- GraphDB interaction
- SPARQL CRUD operations
- RDFa integrations on all major website pages
- DBPedia SPARQL API integration
Developed with Pedro Valério and João Trindade in 2021
-
[SEG] Proj - Secure, multi-player online domino game in Python
Grade: 20/20
- Python game code featuring TCP communication
- RSA asymmetric cryptography
- AES OFB symmetric cryptography
- Diffie-Hellman key exchange for establishing Server-Client and Client-Client secure sessions
- HMAC-based message integrity and authentication control
- Secure multi-stage deck shuffling and distribution protocol featuring encryption, pseudonymization, side-channel attack avoidance, and more.
- Cheating detection
- Secure point accounting and identity assurance using Portugal's Citizenship Card authentication keys and certificates.
- Certificate Chain Validation
Developed with Pedro Valério, João Trindade and Alexandre Abreu in 2020/2021.
-
[CV] Proj1 - Naive N-Queens Problem Solver Animation in WebGL
Grade: 20/20
- Basic HTML website (w/ Twitter Bootstrap)
- Naive JavaScript algorithm for generating all the steps required to solve the N-Queens problem
- Custom Models for the chessboard and pieces with configurable size
- WebGL Animations
- WebGL Lighting
- Mouse controlled camera interaction
- Multiple Animation & Rendering control options
- N-Queens Completion Problem functionality (featuring the possibility to pre-select a fixed position for 1 of the N queens)
Developed with Pedro Valério in 2020
-
[CV] Proj2 - Chessboard and Chess Pieces detector PoC using OpenCV
Grade: 20/20
- OpenCV image pre-processing
- OpenCV line detection to allow inference of chessboard position
- OpenCV contours detection to find all custom pieces currently on the chessboard and calculate their positions
- Virtual Chessboard generation with OpenCV
Developed with Pedro Valério in 2021
-
[SD] Proj1 - Concurrent solution to the AirLift Problem
Grade: 16/16
Developed with Gonçalo Perna in 2021
-
[SD] Proj2 - Distributed solution to the Airlift Problem based on message passing
Grade: 16/16
Developed with Gonçalo Perna in 2021
-
[SD] Proj3 - Distributed solution to the Airlift problem based on Java RMI
Grade: 16/16
Developed with Gonçalo Perna in 2021
-
[GIRS] Proj - Kubernetes Deployment of an HA Gitlab instance
Grade: 18.6/20
- Full Gitlab Deployment using omnibus EE images (configured differently according to role)
- High-Availability PostgresSQL cluster with read operation load balancing and PgPool-II connection pooling
- High-Availability Redis Clusters
- High-Availability MinIO Object Storage with Sidekick
- CI/CD pipeline execution support with Gitlab Runners
- Prometheus Metric Monitoring with Grafana Visualization and Alertmanager Slack notifications
- ElasticSearch, Fluentd, Logstash, & Grafana Log Monitoring
- Horizontal Pod Autoscaling based on custom metrics
- Readiness & Liveness Checks
- Secret Protection
Developed with Eurico Dias in 2021
-
Grade: 17/20
- VHDL HW Coprocessor for completing an AES-128 Round using the single Lookup Table optimization proposed in the algorithm specification
- MicroBlaze-based Hardware Platform
- SW Encryption and Decryption for validation (in C)
- Direct Memory Access interface between HW and SW components
Developed with Eurico Dias in 2021
-
[ES] LabProj - NASDAQ Stock Checker using Spring Boot and Apache Kafka
Grade: 20/20
Developed with Gonçalo Perna in 2021
-
Grade: 19.4/20
- Apache Kafka
- Spring Boot Kafka Producers
- Quarkus Kafka Consumers and REST/SSE APIs
- InfluxDB data persistence
- React JS Frontend Website
- Jekyll-based documentation website
- TICK stack metric monitoring
- ELK stack log monitoring
- Docker deployment
- Jenkins pipeline for automatic builds, tests, and deployments
Developed with Eurico Dias, João Trindade, Eduardo Coelho, and Alexandre Abreu in 2021
-
[RMI] Assignment 1 - Robotic Agent to solve Mapping, and Planning problems on a maze
Grade: 14.2/20
Developed with Pedro Valério in 2021
-
[RMI] Assignment 2 - Robotic Agent to solve Location, Mapping, and Planning problems on a maze
Grade: 15.5/20
Developed with Pedro Valério in 2022
-
[SOTR] Project - RT Task Management Framework for FreeRTOS
Grade: 17.2/20
- Add tasks to the framework
- Register a tasks's period, phase, and relative deadline information
- Sporadic task support
- Multiple precedence support
- Cyclic dependencies detection for deadlock prevention
- Dynamically update period, phase, and relative deadline information
- ISR based tick handler using a Hardware Timer
- Direct-To-Task Notifications usage as lightweight Event Groups for efficient task synchronization
Developed with Pedro Valério in 2022
-
Grade: 19.4/20
- Scripts to autonomously generate Firefox DoH browsing activity and DNS Tunneling (iodine) file transfers
- Network-level HTTPS packet sniffing
- Grouping of packets in their respective flows and feature extraction
- Model training script for DoH classification based on the Extra Trees Algorithm
- Online detection and classification of DNS Browsing and Tunneling based on a pre-trained model
- Automated blocking of all L3 traffic from offender hosts by dynamically updting iptables rules
- Automated Slack Alerting
Developed with Eurico Dias in 2022
- LABI - Informatics Laboratories (1st and 2nd Semesters, 1st Year)
- LSDig - Digital Systems Laboratories (2nd Semester, 1st Year)
- MPEI - Probabilistic Methods for Computer Science (1st Semester, 2nd Year)
- LFA - Formal Languages and Automata Theory (Compilers) (2nd Semester, 2nd Year)
- IIA - Introduction to Artificial Intelligence (1st Semester, 3rd Year)
- SO - Operating Systems (1st Semester, 3rd Year)
- AMS - Analysis And Modelling Of Systems (1st Semester, 3rd Year)
- FR - Fundamentals of Networks (1st Semester, 3rd Year)
- PEI - Informatics Engineering Project (2nd Semester, 3rd Year)
- AR - Network Architecture (2nd Semester, 3rd Year)
- BD - Databases (2nd Semester, 3rd Year)
- IHC - Human-Computer Interaction (2nd Semester, 3rd Year)
- ARA - Advanced Network Architecture (1st Semester, 4th Year)
- ACA - Advanced Computer Architecture (1st Semester, 4th Year)
- EDC - Data And Knowledge Engineering (1st Semester, 4th Year)
- SEG - Security (1st Semester, 4th Year)
- CV - Visual Computation (1st Semester, 4th Year)
- ES - Software Engineering (2nd Semester, 4th Year)
- SD - Distributed Systems (2nd Semester, 4th Year)
- CR - Reconfigurable Computing (2nd Semester, 4th Year)
- GIRS - Integrated Management of Networks and Systems (2nd Semester, 4th Year)
- RMI - Mobile and Intelligent Robotics (1st Semester, 5th Year)
- SOTR - Real-Time Operating Systems (1st Semester, 5th Year)
- TPR - Network Awareness (1st Semester, 5th Year)