The OfferteRadarBot project is an intelligent Telegram bot that automatically monitors multiple Telegram channels dedicated to product deals, transforming chaotic information into personalized notifications for users.
Users can configure custom filters called "watchers" based on product name, brand, price range, and specific features, receiving instant alerts whenever matching deals are detected.
The bot supports real-time monitoring of configured channels, intelligent deal data extraction through artificial intelligence (Google Generative AI), and deduplication to prevent duplicate notifications.
The architecture is based on Python as the main programming language, using Telethon for channel monitoring as a userbot and python-telegram-bot for user interaction.
SQLite handles the persistence of user data and configurations, while Docker and Docker Compose simplify containerized deployment.
The AI extracts structured data from unstructured messages, validating it with Pydantic to ensure accuracy.
Born from the need to simplify deal searching, the project aims to provide an accessible tool for anyone who wants to stay updated on the best opportunities without manually monitoring numerous Telegram channels.
The project allows users to explore and filter Italian municipalities through multiple socio-economic parameters provided by ISTAT: population, area, average income, number of university students, bank branches, resident foreigners, and other demographic indicators.
Users can apply combined filters, search for specific municipalities, or filter by region, viewing the results on an interactive map with geolocated pins.
The architecture is based on a Next.js frontend for the user interface, a Java Spring Boot backend for application logic, PostgreSQL for data persistence, and Redis as a caching layer to optimize performance.
ISTAT data is updated annually through manual import and automated processing.
The website includes an information section showing the reference year of each dataset, accessible in detail for each municipality, as well as a dedicated page for user reports, feedback, and suggestions.
Born from a personal interest in ISTAT open data, the project aims to be an accessible exploration tool for anyone interested in discovering the characteristics of Italian territories.
mimitFuelPy is a Python library for accessing the Mimit Fuel Prices API in Italy. It provides a clean, object-oriented interface for searching fuel stations and retrieving pricing data.
Features include search capabilities by location, brand, and highway, with filtering options for fuel and service types.
The library offers comprehensive access to geographic data (regions, provinces, towns) and detailed service area information.
It supports registry operations for brands, highways, and facilities, with complete documentation and usage examples.
"Grill It" is a Flutter mobile application designed to help users find ideal locations for organizing barbecues in Italy.
The app features an interactive map interface with advanced search and filtering capabilities to discover grill-friendly areas.
Users can locally save their favorite places, filter between free and paid locations, and view detailed information about available amenities such as parking, fountains, playgrounds, and restrooms.
The application uses geolocation services to find nearby spots and includes a reporting system for issues or suggestions of new locations.
It supports both Italian and English languages and integrates with Supabase for data management.
The interface is organized with a three-tab navigation structure: search with map, favorites, and settings.
The project aims to simplify outdoor event organization by providing accurate information about available barbecue locations.
It's designed for families and groups looking for suitable spaces for outdoor recreational activities throughout Italy.
Quiz Maker is a web application that allows users to create and take custom quizzes from JSON files.
The app features two main sections: a quiz player for taking randomized quizzes with immediate feedback, and an editor for creating, modifying, and managing questions.
It supports multiple JSON file uploads, question selection (5, 10, 20, or all questions), and provides search and filtering capabilities in the editor.
Built with standard web technologies (HTML5, CSS, Vanilla JavaScript), it requires no special installation.
The JSON format is structured with multiple-choice questions (4 options), correct answers, and detailed explanations.
fpetranzan.com
2025
Personal portfolio, created with Next.js and Tailwind CSS, with the aim of being simple and functional.
The structure includes a home that tells who I am, a section dedicated to professional experiences, and a showcase of my projects.
Among the features, it offers a choice between light and dark theme and supports two languages (Italian and English) to ensure global usability.
The site is designed as a showcase displaying who I am, my experiences, and my work.
For this reason, I opted for a minimalist style, with essential functionality, to allow for greater focus on content and easier reading.
Advent of Code
2024
The Advent of Code is an annual event featuring a series of programming puzzles posted daily from Dec. 1 to Dec. 25.
It's a perfect opportunity to improve my coding skills, take on logic challenges, and have fun solving increasingly complex problems.
In 2024, I participated using Java as my language, successfully completing the puzzles until December 12.
Each day was an exciting challenge that allowed me to test my skills with new logic and algorithms, pushing me to find efficient and creative solutions.
java-spring-boot-security
2024
This project represents a comprehensive security system, developed using the Spring Boot framework and JSON Web Tokens (JWT) for authentication and authorization management.
Main features implemented include user registration, email verification, login, password recovery, two-factor authentication, and logout.
For data management, I used a MySQL database, while Spring Security was employed to implement role-based permissions.
Passwords are protected through the BCrypt algorithm, ensuring a high level of security.
In addition, I customized unauthorized access management to improve the user experience and strengthen protection.
Java Memory Game
2019
Java Memory Game is my first complex project developed during my studies. It is a digital version of the classic 'Memory' game, implemented in Java 8 using Java Swing.
The game includes several modes (single player, two players, against the computer), difficulty levels (4x4, 6x6, 8x8), and a save/reload system for games.
Additional features such as timed turn management and dynamic scoring make the experience more challenging and addictive.
Although it has some bugs and room for improvement, this project represents an important milestone in my software development journey.
fpetranzan.me - My personal Portfolio © 2025-2026 Francesco Petranzan.