Add new projects to portfolio: HoolIt, TGSS, TBDel, MQTT Logger, CatsOfMastodon Bot, and VDR

This commit is contained in:
2026-07-19 22:53:59 +03:30
parent 2fc75eeab1
commit 4c8b23b894
2 changed files with 226 additions and 0 deletions
+80
View File
@@ -240,6 +240,86 @@ const portfolioFa: PortfolioData = {
],
category: "freelance",
},
{
name: "HoolIt",
description:
"یک پروژه اوپن‌سورس که جایگزین ساده و سبک dweet.io برای اشتراک‌گذاری داده در IoT فراهم می‌کنه.",
links: [
{
label: "GitHub",
to: "https://github.com/mmahdium/HoolIt",
icon: "i-mdi-github",
},
],
icons: ["i-logos-dotnet", "i-logos-docker-icon"],
status: "فعال",
opensource: true,
category: "public",
},
{
name: "TGSS (Telegram to RSS)",
description:
"API تبدیل کانال تلگرام به RSS — با دادن آیدی یک کانال عمومی، آخرین پست‌ها رو به فرمت RSS برمی‌گردونه.",
links: [
{
label: "GitHub",
to: "https://github.com/mmahdium/TGSS",
icon: "i-mdi-github",
},
],
icons: ["i-logos-go", "i-logos-gin"],
status: "فعال",
opensource: true,
category: "public",
},
{
name: "TBDel (To Be Deleted)",
description:
"ابزار خط فرمانی ساده برای مدیریت فایل‌ها و پوشه‌های علامت‌گذاری‌شده برای حذف. روی AUR هم موجوده.",
links: [
{
label: "GitHub",
to: "https://github.com/mmahdium/TBDel",
icon: "i-mdi-github",
},
],
icons: ["i-logos-dotnet"],
status: "فعال",
opensource: true,
category: "public",
},
{
name: "MQTT Logger",
description:
"اپلیکیشن Go که به topic‌های MQTT وصل میشه و تمام پیام‌ها رو برای تحلیل و مانیتورینگ توی فایل CSV ذخیره می‌کنه. اول به‌عنوان ابزار داخلی شرکت ساخته شد و بعد اوپن‌سورس شد. ممکنه خارج از ایران به خاطر محدودیت‌های اینترنت و دیتاسنتر قابل دسترسی نباشه.",
links: [
{
label: "Git (ممکنه خارج از ایران قابل دسترسی نباشه)",
to: "https://git.mahdium.ir/mahdium/MQTTLogger",
icon: "i-mdi-link",
},
],
icons: ["i-logos-go", "simple-icons:mqtt"],
status: "فعال",
opensource: true,
category: "public",
},
{
name: "VDR (VirtualDDNSRouter)",
description:
"روتر DNS پویای سبک با معماری کلاینت-سرور — برای دسترسی به سرویس‌هایی با IP پویا از طریق آدرس‌های ثابت.",
links: [
{
label: "GitHub",
to: "https://github.com/mmahdium/VDR",
icon: "i-mdi-github",
},
],
icons: ["i-logos-dotnet"],
status: "فعال",
opensource: true,
category: "public",
},
],
};
+146
View File
@@ -192,6 +192,7 @@ export const portfolio: PortfolioData = {
{ label: "C", icon: "i-logos-c", to: "https://en.wikipedia.org/wiki/C_(programming_language)", type: "Language" },
{ label: "C++", icon: "i-logos-c-plusplus", to: "https://en.wikipedia.org/wiki/C%2B%2B", type: "Language" },
{ label: "Arduino", icon: "simple-icons:arduino", to: "https://www.arduino.cc/", type: "Tool" },
{ label: "MQTT", icon: "simple-icons:mqtt", to: "https://mqtt.org/", type: "Protocol" },
],
},
],
@@ -425,6 +426,151 @@ export const portfolio: PortfolioData = {
],
category: "freelance",
},
{
name: "TGSS (Telegram to RSS)",
description:
"A Telegram channel to RSS feed API that takes a public channel ID and returns its most recent posts in RSS format.",
context:
"A hands-on Go project to refine problem-solving and systems skills. Built core components from scratch rather than relying on heavy third-party solutions or ready-made AI generated code.",
role: "Full backend development — custom rate limiter, smart caching layer, and image proxy from scratch.",
features: [
"Custom-built rate limiter",
"Smart caching for repeated requests",
"Image proxy for media-rich feeds",
"Public Telegram channel RSS output",
],
stack: ["Go", "Gin", "gotd", "fx", "zap"],
outcome:
"A performant RSS gateway that showcases custom infrastructure work and deep Go proficiency.",
links: [
{
label: "GitHub",
to: "https://github.com/mmahdium/TGSS",
icon: "i-mdi-github",
},
],
icons: ["i-logos-go", "i-logos-gin"],
status: "Active",
opensource: true,
category: "public",
},
{
name: "TBDel (To Be Deleted)",
description:
"A simple command-line tool for managing a list of files and directories marked for deletion.",
context:
"A practical CLI utility for organizing and executing bulk file removal, available on AUR for easy Linux installation.",
role: "Design and implementation of the CLI, deletion logic, and AUR packaging.",
features: [
"Add, remove, and list pending deletions",
"Execute batch deletion of marked entries",
"Available on AUR",
],
stack: ["C#", ".NET"],
outcome:
"A focused CLI tool solving a real workflow need, distributed via AUR.",
links: [
{
label: "GitHub",
to: "https://github.com/mmahdium/TBDel",
icon: "i-mdi-github",
},
],
icons: ["i-logos-dotnet"],
status: "Active",
opensource: true,
category: "public",
},
{
name: "MQTT Logger",
description:
"A Go application that subscribes to MQTT topics and logs all messages to CSV files for analysis and monitoring.",
context:
"Originally built as an internal tool to fulfill a real operational need, then open-sourced for broader use. May not be accessible outside Iran due to infrastructure restrictions.",
role: "Design and development of the subscription engine, CSV logging pipeline, and connection monitoring.",
features: [
"Subscribe to one or multiple MQTT topics",
"CSV logging with timestamp, topic, and message",
"MQTT authentication support",
"Configurable logging levels",
"Connection status monitoring",
],
stack: ["Go", "Paho MQTT"],
outcome:
"A production-proven monitoring tool bridging MQTT telemetry and data analysis.",
links: [
{
label: "Git (may not be accessible outside Iran)",
to: "https://git.mahdium.ir/mahdium/MQTTLogger",
icon: "i-mdi-link",
},
],
icons: ["i-logos-go", "simple-icons:mqtt"],
status: "Active",
opensource: true,
category: "public",
},
{
name: "CatsOfMastodon Bot",
description:
"A moderation bot that curates cat posts from public Mastodon instances and publishes them to a Telegram channel.",
context:
"A self-hosted content curation pipeline with human-in-the-loop approval for a public Telegram channel.",
role: "End-to-end development: Mastodon polling, Telegram integration, and admin moderation workflow.",
features: [
"Monitors catsofmastodon tag across instances",
"Forwards candidates to admin for review",
"Approval/rejection via Telegram",
"Publishes curated posts to a public channel",
],
stack: ["C#", ".NET"],
outcome:
"A running Telegram channel powered by automated Fediverse curation with manual quality control.",
links: [
{
label: "GitHub",
to: "https://github.com/mmahdium/CatsOfMastodonBot",
icon: "i-mdi-github",
},
{
label: "Telegram Channel",
to: "https://t.me/catsofmastodon",
icon: "i-mdi-link",
},
],
icons: ["i-logos-dotnet"],
status: "Active",
opensource: true,
category: "public",
},
{
name: "VDR (VirtualDDNSRouter)",
description:
"A lightweight dynamic DNS router with a client-server architecture for accessing services on dynamic IPs through consistent URLs.",
context:
"A practical networking solution for accessing home-lab and self-hosted services without static IPs.",
role: "Design and implementation of both the IP update client and the reverse-proxy server.",
features: [
"Client updates server with current IP",
"Server reverse-proxies to dynamic backends",
"Consistent URL access for dynamic IPs",
"Lightweight and self-contained",
],
stack: ["C#", ".NET"],
outcome:
"A reliable networking tool enabling stable remote access to dynamic infrastructure.",
links: [
{
label: "GitHub",
to: "https://github.com/mmahdium/VDR",
icon: "i-mdi-github",
},
],
icons: ["i-logos-dotnet"],
status: "Active",
opensource: true,
category: "public",
},
],
};