logo

Flappy Bird Escape

Flappy Bird Escape is a game I developed using JavaFX, a game based on the popular Flappy Bird, everyone was playing it in 2014. The game is a simple game where the player controls a bird that flies through a series of pipes. Additional to the original game the bird can drop eggs and possesses a gun allowing it to kill enemies on along the path. The game is divided into 3 levels, with increasing difficulty. After the 3rd level the game ends and the number of points is returned to the player. Missing a shot will set a penalty on the final score. This game was developed using the MVC design pattern and it was my first real project. I had the chance to propose my own idea for the exam and I was very happy the professor liked it so much he showcased it in the next year course. Creating this game was challenging because I had to learn a lot of things like how to do the horizontal scrolling, how to handle the physics of the bird, how to implement the gun, how to handle bullets trajectories and the randomness of the enemies spawns as well as columns spawns.

Micropayments Off-Chain: FastTx

FastTx is a system I created for the Bachelor Thesis. The idea behind the project is the fact that Ethreum, as well as other blockchains, make small transactions impossible to do. To keep the blockchain running, every transaction has a minimum amount of gas (fee for the system), so if the amount is too low, you end up paying a fee bigger than the transaction amount. To solve this problem, we designed a system where a user can buy packages of tokens, each worth a fixed amount of money. When a user buys a package, they are assigned the corresponding package of coins off-chain. The user can then spend their tokens off-chain, with transactions being validated off-chain through hash verifications used as receipts. When a package expires, the smart-contract will check the receipts and verify the amount the user has spent and then will assign the corresponding Ether amount to the owner of the business and the amount not spent back to the user. The project involved using Solidity to create the smart-contracts and NodeJS to create the off-chain service, Ganache to test the smart-contracts, and Truffle to deploy the smart-contracts. On the right you can see an example of execution.

Authentication and Integrity verification system for medical data: SafeMedicine

SafeMedicine is an NFT-based framework using Ethereum Blockchain for managing medical data in a secure way. It is important to recognize that the current healthcare system struggles with secure and efficient management of Electronic Medical Records (EMR). Issues like data breaches, unauthorized access, and compromised data integrity are relevant security concerns. To address these issues, we proposed a solution involving the use of the Blockchain with the help of NFTs. An NFT is a unique digital asset that represents ownership of a specific item or data. In our case, each NFT will represent a the identity of someone in the hospital network. Linked to each NFT, we have a set of permissions, valid for a certain hospital of the network, rappresented with bytes, since storing complex data is not possible and would require a lot of gas. To address the problem of data integrity, we worked with Merkle Trees, a data structure that allows us to store the Merkle Root on-chain, so to check the integrity you would need to compute the merkle root off-chain and then compare it with the one stored on-chain. The project involved using Solidity to create the smart-contracts and Truffle to deploy them, NodeJS and Express as backend and simple HTML, CSS and vanilla JavaScript for the frontend. On the right an example of creating an NFT, assigning permissions, validate access to secured rooms and adding a new EMR to the system.

LaPiroga: the web app for my parents business

After I graduated in cybersecurity, a passion of mine was to create a big web application and expand on the topic of web development. At the same time I thought it would be a good idea to create a web app for my parents business, LaPiroga, a restaurant/pizzeria in Capodimonte, an app that would adapt to the needs of a real business, just like a work for a client. This is my biggest and most complex project, which involved a lot of research and work, but with passion everything is possible. The app is a full stack application in which I used NextJS, a popular framework for building server-side rendered (SSR) React applications, TypeScript, TailwindCSS, Shadcn/UI, Supabase as database, authentication provided by Clerk, upstash as rate limiter, Zustand as state manager, and Stripe for payments and it includes logging with Pino and Error Handling too! Through the app users can register, place orders, manage their orders, earn points as they order and claim rewards as they level up! Admin users can manage products, item options for each product, set limit of orders for each cateogories (like a max of 10 pizzas each hour) and so on. If you want to try it out: go to lapiroga.it. I also made it that whenever an order is confirmed, an api call gets triggered to send the order list to the thermal printer at the restaurant, so they have the items list with the order number instantly. My dad's idea!. At the moment Stripe in production is disabled, cause we want to test the app with only pay at the restaurant option, showing the QR code of the order, but we plan to make it available soon.