Swap the fabricated case studies (Atlas/Sentinel/etc. with invented metrics) for the four real shipped products, each linking to its live site: - Hamkadr (hamkadr.ir) - healthcare staffing marketplace - Meezi (meezi.ir) - cafe/restaurant management SaaS - Barge Vasat (bargevasat.ir) - online Hokm card game - Flatrender (flatrender.ir) - AI video/image studio Cards are now external links (2x2 grid), no invented numbers or clients. Regenerated the purged Tailwind bundle for the new classes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+22
-31
@@ -195,52 +195,43 @@
|
||||
<div class="mx-auto max-w-6xl">
|
||||
<div class="sec-head">
|
||||
<h2>@(fa ? "نمونهکارهای منتخب" : "Selected work")</h2>
|
||||
<p class="lede">@(fa ? "گزیدهای از پروژههای واقعی در حوزهی هوش مصنوعی، داده و موبایل." : "A selection of real engagements across AI, data, and mobile.")</p>
|
||||
<p class="lede">@(fa ? "محصولاتی که طراحی و ساختهام. روی هر کارت بزنید تا نسخهی زنده را ببینید." : "Products I have designed and built. Tap any card to open the live site.")</p>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-3">
|
||||
<div class="grid grid-cols-1 gap-5 sm:grid-cols-2">
|
||||
@{
|
||||
var projects = fa ? new[]{
|
||||
("atlas-rag","اطلس - پلتفرم RAG سازمانی","بانک ردیفاول","۲۰۲۵","دستیار دانش روی بیش از ۴ میلیون سند داخلی؛ بازیابی ترکیبی با pgvector و reranker.",new[]{"RAG","pgvector","Vertex AI"},new[]{("۴M+","سند نمایهشده"),("۳۸ms","تأخیر p95"),("۹۲٪","دقت پاسخ")}),
|
||||
("sentinel-agents","Sentinel - اتوماسیون Ops عاملمحور","SaaS scale-up","۲۰۲۵","پاسخ خودکار به حوادث با ترکیب n8n و LangGraph؛ عاملهای قابل ممیزی که alert تریاژ میکنند.",new[]{"n8n","LangGraph","Agents"},new[]{("۷۰٪","کاهش MTTR"),("۲۴/۷","پوشش on-call"),("۱۵۰+","جریان خودکار")}),
|
||||
("vertex-vision","Vertex Vision - استنتاج بینایی بلادرنگ","زنجیره خردهفروشی","۲۰۲۴","استنتاج بینایی بلادرنگ روی GKE با Triton و Vertex AI برای تحلیل قفسه و جریان مشتری.",new[]{"Vertex AI","GKE","Triton"},new[]{("۱.۲B","استنتاج ماهانه"),("۳۰۰+","فروشگاه"),("۶۰٪","کاهش هزینه")}),
|
||||
("mirage-mobile","Mirage - مجموعه هوش مصنوعی on-device","محصول مصرفی","۲۰۲۴","اپلیکیشن Flutter با استنتاج کاملاً آفلاین با Gemini Nano و LiteRT.",new[]{"Flutter","Gemini Nano","LiteRT"},new[]{("۰","وابستگی شبکه"),("<80ms","پاسخ"),("۴.۸★","امتیاز کاربران")}),
|
||||
("flux-stream","Flux - مش داده رویدادمحور","پلتفرم لجستیک","۲۰۲۳","ستون استریمینگ روی Kafka و NATS روی Kubernetes؛ ۴۰+ میکروسرویس با الگوهای پایداری.",new[]{"Kafka","NATS","Go"},new[]{("۴۰+","میکروسرویس"),("۲M/s","رویداد بر ثانیه"),("۹۹.۹٪","uptime")}),
|
||||
("oracle-forecast","Oracle - موتور پیشبینی تقاضا","زنجیره تامین","۲۰۲۳","پایپلاین پیشبینی سری زمانی روی BigQuery و dbt با بازآموزی خودکار.",new[]{"BigQuery","dbt","MLOps"},new[]{("۲۳٪","کاهش ضایعات"),("۸۹٪","دقت پیشبینی"),("روزانه","بازآموزی")}),
|
||||
("hamkadr","همکادر","hamkadr.ir","بازاری که کادر درمان را برای شیفت و استخدام به بیمارستانها و کلینیکها وصل میکند؛ با پروفایل، فیلتر، تقویم هفتگی و اپ موبایل.",new[]{"Marketplace","Healthcare","Mobile"}),
|
||||
("meezi","میزی","meezi.ir","سامانهی یکپارچه برای کافه و رستوران: سفارش با QR، صندوق فروش، انبار، کارکنان و تحلیل فروش، روی زیرساخت داخلی.",new[]{"SaaS","POS","Analytics"}),
|
||||
("bargevasat","برگ وسط","bargevasat.ir","بازی آنلاین حکم بهصورت بلادرنگ مقابل بازیکنان واقعی یا رباتهای هوشمند؛ با لیگ، رتبهبندی، جایزهی روزانه و همگامسازی چنددستگاهه.",new[]{"Realtime","Multiplayer","Game"}),
|
||||
("flatrender","فلترندر","flatrender.ir","استودیوی هوش مصنوعی که بیش از ۱۲۰۰ قالب را در چند دقیقه به ویدیو و تصویر آمادهی انتشار تبدیل میکند؛ بر پایهی ثانیهی رندر. در نسخهی بتا.",new[]{"AI","Video","SaaS"}),
|
||||
} : new[]{
|
||||
("atlas-rag","Atlas - Enterprise RAG Platform","Tier-1 bank","2025","A knowledge assistant over 4M+ internal documents. Hybrid retrieval with pgvector and a reranker, sub-40ms serving.",new[]{"RAG","pgvector","Vertex AI"},new[]{("4M+","docs indexed"),("38ms","p95 latency"),("92%","answer accuracy")}),
|
||||
("sentinel-agents","Sentinel - Agentic Ops Automation","SaaS scale-up","2025","Autonomous incident response combining n8n and LangGraph. Auditable agents that triage alerts and self-heal.",new[]{"n8n","LangGraph","Agents"},new[]{("70%","MTTR cut"),("24/7","on-call cover"),("150+","automated flows")}),
|
||||
("vertex-vision","Vertex Vision - Realtime Vision Inference","Retail chain","2024","Real-time vision inference on GKE with Triton and Vertex AI for shelf analytics and customer flow across 300+ stores.",new[]{"Vertex AI","GKE","Triton"},new[]{("1.2B","inferences / mo"),("300+","stores"),("60%","GPU cost cut")}),
|
||||
("mirage-mobile","Mirage - On-device AI Suite","Consumer product","2024","A Flutter app with fully offline inference via Gemini Nano and LiteRT. Streaming response UX with zero network dependency.",new[]{"Flutter","Gemini Nano","LiteRT"},new[]{("0","network deps"),("<80ms","response"),("4.8★","user rating")}),
|
||||
("flux-stream","Flux - Event-Driven Data Mesh","Logistics platform","2023","Streaming backbone on Kafka and NATS over Kubernetes. 40+ microservices with resilience and exactly-once delivery.",new[]{"Kafka","NATS","Go"},new[]{("40+","microservices"),("2M/s","events / sec"),("99.9%","uptime")}),
|
||||
("oracle-forecast","Oracle - Demand Forecasting Engine","Supply chain","2023","Time-series forecasting pipeline on BigQuery and dbt with automated retraining, reducing inventory waste significantly.",new[]{"BigQuery","dbt","MLOps"},new[]{("23%","waste cut"),("89%","forecast accuracy"),("daily","retraining")}),
|
||||
("hamkadr","Hamkadr","hamkadr.ir","A marketplace connecting healthcare staff with hospitals and clinics for shifts and hiring, with profiles, filters, weekly scheduling, and a mobile app.",new[]{"Marketplace","Healthcare","Mobile"}),
|
||||
("meezi","Meezi","meezi.ir","An all-in-one SaaS for cafes and restaurants: QR ordering, POS, inventory, staff, and sales analytics, hosted in Iran.",new[]{"SaaS","POS","Analytics"}),
|
||||
("bargevasat","Barge Vasat","bargevasat.ir","A real-time multiplayer Hokm card game against people or AI bots, with leagues, rankings, daily rewards, and cross-device play.",new[]{"Realtime","Multiplayer","Game"}),
|
||||
("flatrender","Flatrender","flatrender.ir","An AI studio that turns 1,200+ templates into platform-ready videos and images in minutes, billed by render-seconds. In beta.",new[]{"AI","Video","SaaS"}),
|
||||
};
|
||||
}
|
||||
@foreach (var (pid, ptitle, pclient, pyear, psummary, ptags, pmetrics) in projects)
|
||||
@foreach (var (pid, pname, pdomain, pdesc, ptags) in projects)
|
||||
{
|
||||
var initial = char.ToUpperInvariant(pid[0]);
|
||||
<article class="card card-link reveal overflow-hidden">
|
||||
<a href="https://@pdomain" target="_blank" rel="noopener" class="group card card-link reveal block overflow-hidden">
|
||||
<div class="cover flex aspect-[16/9] items-center justify-center bg-zinc-100" aria-hidden="true">
|
||||
<span class="font-display text-5xl font-bold text-zinc-300">@initial</span>
|
||||
<span class="font-display text-6xl font-bold text-zinc-300">@initial</span>
|
||||
</div>
|
||||
<div class="p-5">
|
||||
<div class="p-6">
|
||||
<div class="mb-3 flex flex-wrap gap-1.5">
|
||||
@foreach (var tag in ptags) { <span class="chip">@tag</span> }
|
||||
</div>
|
||||
<h3 class="text-[1.05rem] font-semibold @(fa ? "font-fa" : "")">@ptitle</h3>
|
||||
<p class="mt-1 text-[.8rem] text-zinc-500">@pclient · @pyear</p>
|
||||
<p class="mt-3 text-[.88rem] leading-relaxed text-zinc-600">@psummary</p>
|
||||
<div class="mt-4 grid grid-cols-3 gap-3 border-t border-zinc-200 pt-4">
|
||||
@foreach (var (mv, ml) in pmetrics)
|
||||
{
|
||||
<div>
|
||||
<div class="font-display text-base font-bold text-zinc-900">@mv</div>
|
||||
<div class="mt-0.5 text-[.68rem] leading-tight text-zinc-500">@ml</div>
|
||||
<h3 class="text-[1.15rem] font-semibold @(fa ? "font-fa" : "")">@pname</h3>
|
||||
<p class="mt-1 text-[.8rem] text-zinc-500" dir="ltr">@pdomain</p>
|
||||
<p class="mt-3 text-[.9rem] leading-relaxed text-zinc-600">@pdesc</p>
|
||||
<span class="arrow-link mt-4">
|
||||
@(fa ? "مشاهدهی سایت" : "Visit site")
|
||||
<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M7 17 17 7"/><path d="M8 7h9v9"/></svg>
|
||||
</span>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
</a>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user