Files
company-site/app/project/page.tsx
T
2026-09-16 08:47:12 +03:30

295 lines
16 KiB
TypeScript

'use client';
import React from "react";
import { motion } from "framer-motion";
import Header from "@/components/shared/header";
import Footer from "@/components/shared/footer";
import {
ExternalLink,
CheckCircle2,
Terminal
} from "lucide-react";
interface ProjectItem {
id: number;
title: string;
category: string;
description: string;
highlights: string[];
techStack: string[];
status: string;
image?: string; // آدرس تصویر پروژه
}
const projectsData: ProjectItem[] = [
{
id: 1,
title: "مرکز تماس هوشمند",
category: "هوش مصنوعی و تحلیل داده‌های صوتی",
description: "پلتفرم تحلیل مکالمات صوتی مرکز تماس مبتنی بر STT و LLM جهت ارزیابی خودکار عملکرد کارشناسان، سنجش احساسات مشتری و استخراج KPIهای سازمانی.",
highlights: [
"تبدیل خودکار و دقیق گفتار به متن (Speech-to-Text) با پشتیبانی تخصصی از زبان فارسی",
"ارزیابی خودکار شاخص‌های عملکردی (KPI)، لحن، ادب و پایبندی به اسکریپت سازمانی",
"تحلیل احساسات (Sentiment Analysis) و خلاصه‌سازی هوشمند مکالمات جهت ثبت در CRM",
"یکپارچه‌سازی کامل با زیرساخت‌های VoIP / Asterisk و پایپ‌لاین‌های پردازش صوت"
],
techStack: [
"Python",
"FastAPI",
"Whisper / STT",
"LLM / LangChain",
"PostgreSQL",
"Redis",
"Docker"
],
status: "Production / AI Solution",
image: "/image/aicall2.png" // مسیر تصویر دلخواه خود را اینجا وارد کنید
},
{
id: 2,
title: "پلتفرم هوشمند تمرینات ورزشی نیوفیت",
category: "سلامت، فیتنس و تحلیل داده‌های ورزشی",
description: "سامانه جامع و هوشمند صدور برنامه‌های تمرینی اختصاصی مبتنی بر ارزیابی دقیق فاکتورهای بیومتریک و سبک زندگی کاربران، همراه با سیستم زمان‌بندی داینامیک و ارائه‌دهنده محتوای چندرسانه‌ای آموزشی.",
highlights: [
"موتور ارزیابی و پروفایلینگ پیشرفته کاربر (قد، وزن، سابقه تمرینی، سطح استرس، شاخص فعالیت روزانه و اهداف فردی)",
"تولید خودکار و هوشمند برنامه‌های تمرینی شخصی‌سازی‌شده متناسب با محیط تمرین (خانه / باشگاه) و اهداف ورزشی",
"سیستم زمان‌بندی منعطف و تقویم داینامیک جهت مدیریت روزها، ساعات و فازبندی جلسات تمرینی",
"طراحی هوشمند متغیرهای تمرین شامل ساختار ست‌بندی، الگوهای بارگذاری و توصیه‌های تکنیکی و بیومکانیکی هر حرکت",
"پایگاه داده چندرسانه‌ای بهینه‌سازی‌شده برای استریم روان ویدیوهای آموزشی اجرای صحیح حرکات و نکات کلیدی"
],
techStack: [
"Flutter / React Native",
"FastAPI / Python",
"PostgreSQL",
"Redis",
"Object Storage / CDN",
"Docker"
],
status: "Production / Mobile Application",
image: "/image/neo.png" // مسیر تصویر دلخواه خود را اینجا وارد کنید
},
{
id: 3,
title: "دستیار هوشمند فروش و پشتیبانی",
category: "هوش مصنوعی، RAG و عامل‌های هوشمند (AI Agents)",
description: "سامانه دستیار هوشمند سازمانی مبتنی بر معماری RAG و عامل‌های گفتگومحور؛ مسلط به کل محتوای وب‌سایت، محصولات و مستندات جهت افزایش نرخ تبدیل فروش و کاهش ۷۰ درصدی تیکت‌های پشتیبانی.",
highlights: [
"پیاده‌سازی معماری پیشرفته RAG (Retrieval-Augmented Generation) با سینک خودکار کاتالوگ و صفحات",
"عامل هوشمند فروش (Sales Agent) جهت هدایت رفتار کاربر به سبد خرید و افزایش Conversion Rate",
"کاهش بیش از ۷۰ درصدی بار تیکت‌های پشتیبانی با پاسخ‌دهی بلادرنگ، بدون Hallucination و مستند به داده‌های سازمان",
"یکپارچه‌سازی از طریق Webhook / API با سیستم‌های انبارداری و سفارشات (Live Stock / Order Status)",
"نصب و تعبیه بسیار سریع در وب‌سایت‌ها تنها از طریق یک Script Tag سبک"
],
techStack: [
"Python",
"FastAPI",
"LangChain / LlamaIndex",
"Qdrant / Vector DB",
"OpenAI / Local LLMs",
"Redis",
"Docker"
],
status: "Production / AI Solution",
image: "/image/payai.png" // مسیر تصویر دلخواه خود را اینجا وارد کنید
},
{
id: 4,
title: "معلم و دستیار آموزشی هوشمند",
category: "هوش مصنوعی، RAG و فناوری‌های آموزشی (EdTech)",
description: "پلتفرم جامع آموزش تعاملی و یادگیری شخصی‌سازی‌شده مبتنی بر معماری RAG و پردازش صوت دوطرفه؛ مسلط بر کتب درسی رسمی جهت رفع توهم هوش مصنوعی (Zero Hallucination)، طراحی آزمون، تصحیح خودکار و تولید درسنامه.",
highlights: [
"پیاده‌سازی معماری RAG بر روی متون کتب درسی رسمی با ارجاع دقیق به سرفصل‌ها و پاراگراف‌ها جهت جلوگیری از Hallucination",
"موتور هوشمند تولید آزمون‌های تستی و تشریحی در سه سطح دشواری با سناریوهای شب امتحان",
"تصحیح تحلیلی پاسخ‌های تشریحی دانش‌آموز با تحلیل گام‌به‌گام و ارائه فیدبک مفهومی مبتنی بر رفرنس کتاب",
"تعامل صوتی دوطرفه (Voice-Enabled) با موتورهای تبدیل متن به گفتار (TTS) و گفتار به متن فارسی (STT)",
"ماژول خلاصه‌سازی خودکار فصول، تولید درسنامه‌های ساختاریافته و استخراج نکات کلیدی شب امتحان",
"معماری مقیاس‌پذیر و ماژولار جهت مدیریت پیک ترافیک و درخواست‌های همزمان در ایام امتحانات"
],
techStack: [
"Python",
"FastAPI",
"LangChain / LlamaIndex",
"Qdrant / Milvus (Vector DB)",
"Whisper / STT & TTS",
"OpenAI / Local LLMs",
"PostgreSQL",
"Redis",
"Docker"
],
status: "Production / AI Solution",
image: "/image/student2.png" // مسیر تصویر دلخواه خود را اینجا وارد کنید
}
];
export default function ProjectsPage() {
return (
<div dir="rtl" className="flex min-h-screen flex-col bg-gray-950 text-gray-200 font-sans selection:bg-indigo-500/30 selection:text-indigo-200">
<Header />
<main className="flex-1 overflow-hidden relative">
{/* پترن گرید ۲۴ پیکسلی */}
<div className="absolute inset-0 bg-[linear-gradient(to_right,#1f29371f_1px,transparent_1px),linear-gradient(to_bottom,#1f29371f_1px,transparent_1px)] bg-[size:24px_24px] pointer-events-none" />
{/* بخش هدر صفحه */}
<section className="relative px-6 pt-32 pb-16 text-center">
<motion.div
initial={{ opacity: 0, y: -20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.6 }}
className="mx-auto max-w-3xl"
>
<h1 className="mb-5 text-3xl font-extrabold tracking-tight text-white md:text-5xl pt-20">
معماری نرم‌افزار <span className="text-transparent bg-clip-text bg-gradient-to-r from-indigo-400 via-cyan-400 to-emerald-400">سامانه‌های سازمانی</span>
</h1>
<p className="text-sm md:text-base text-gray-400 leading-relaxed max-w-2xl mx-auto">
نمونه‌ای از سیستم‌های تحت وب، میکروسرویس‌ها و پایپ‌لاین‌های مقیاس‌پذیر با تمرکز بر امنیت
</p>
</motion.div>
</section>
{/* تایم‌لاین پروژه‌ها */}
<section className="relative mx-auto max-w-7xl px-6 py-10 mb-20">
<div className="absolute left-1/2 top-0 hidden h-full w-[1px] -translate-x-1/2 bg-gradient-to-b from-transparent via-gray-800 to-transparent lg:block" />
<div className="flex flex-col gap-20 lg:gap-28">
{projectsData.map((project, index) => {
const isEven = index % 2 === 0;
return (
<div
key={project.id}
className={`relative flex flex-col items-center gap-10 lg:flex-row lg:justify-between ${
isEven ? "lg:flex-row" : "lg:flex-row-reverse"
}`}
>
{/* نشانگر تایم‌لاین وسط صفحه */}
<div className="absolute left-1/2 top-1/2 hidden -translate-x-1/2 -translate-y-1/2 lg:flex">
<div className="relative flex h-11 w-11 items-center justify-center rounded-full border border-gray-700 bg-gray-900 shadow-xl shadow-black/80">
<span className="text-xs font-mono font-bold text-indigo-300">0{project.id}</span>
<div className="absolute inset-0 -z-10 animate-ping rounded-full bg-indigo-500/20" />
</div>
</div>
{/* ستون متن و توضیحات */}
<motion.div
initial={{ opacity: 0, x: isEven ? 40 : -40 }}
whileInView={{ opacity: 1, x: 0 }}
viewport={{ once: true, margin: "-80px" }}
transition={{ duration: 0.6 }}
className="w-full lg:w-[46%]"
>
<div className="space-y-4 text-right">
<div className="flex items-center gap-2">
<span className="text-xs font-mono font-medium text-indigo-400 bg-indigo-950/60 border border-indigo-800/40 px-2.5 py-0.5 rounded-md">
{project.category}
</span>
<span className="text-xs font-mono text-gray-500">
{project.status}
</span>
</div>
<h2 className="text-2xl font-bold text-gray-100 md:text-3xl">
{project.title}
</h2>
<p className="text-sm leading-relaxed text-gray-400">
{project.description}
</p>
<div className="space-y-2 pt-2">
{project.highlights.map((highlight, idx) => (
<div key={idx} className="flex items-start gap-2 text-xs text-gray-300">
<CheckCircle2 className="w-4 h-4 text-indigo-400 shrink-0 mt-0.5" />
<span>{highlight}</span>
</div>
))}
</div>
<div className="flex flex-wrap gap-2 pt-3">
{project.techStack.map((tech, idx) => (
<span
key={idx}
className="text-[11px] font-mono px-2.5 py-1 rounded bg-gray-900/90 border border-gray-800 text-gray-300 hover:border-gray-700 transition-colors"
>
{tech}
</span>
))}
</div>
</div>
</motion.div>
{/* ستون تصویر سیستم */}
<motion.div
initial={{ opacity: 0, x: isEven ? -40 : 40 }}
whileInView={{ opacity: 1, x: 0 }}
viewport={{ once: true, margin: "-80px" }}
transition={{ duration: 0.6 }}
className="w-full lg:w-[46%]"
>
<div className="relative rounded-2xl border border-gray-800 bg-gray-900/50 p-6 backdrop-blur-md shadow-2xl hover:border-gray-700 transition-colors">
{/* هدر پنجره */}
<div className="flex items-center justify-between border-b border-gray-800/80 pb-3 mb-4">
<div className="flex items-center gap-1.5">
<div className="w-2.5 h-2.5 rounded-full bg-rose-500/80" />
<div className="w-2.5 h-2.5 rounded-full bg-amber-500/80" />
<div className="w-2.5 h-2.5 rounded-full bg-emerald-500/80" />
</div>
<div className="text-[11px] font-mono text-gray-500 flex items-center gap-1">
<Terminal className="w-3.5 h-3.5 text-indigo-400" />
<span>preview://node.svc_0{project.id}</span>
</div>
</div>
{/* قاب تصویر پروژه */}
<div className="relative w-full aspect-[16/10] overflow-hidden rounded-xl border border-gray-800/60 bg-gray-950/80 group">
{project.image ? (
<img
src={project.image}
alt={project.title}
className="w-full h-full object-cover object-center transition-transform duration-500 group-hover:scale-105"
/>
) : (
<div className="w-full h-full flex flex-col items-center justify-center text-gray-600 font-mono text-xs gap-2">
<Terminal className="w-6 h-6 text-gray-700" />
<span>No Preview Available</span>
</div>
)}
</div>
</div>
</motion.div>
</div>
);
})}
</div>
</section>
{/* بنر فراخوان نهایی */}
<section className="relative px-6 pb-20">
<div className="mx-auto max-w-5xl rounded-2xl border border-gray-800 bg-gradient-to-b from-gray-900/80 to-gray-950 p-8 md:p-12 text-center relative overflow-hidden shadow-2xl">
<div className="absolute top-0 right-0 w-64 h-64 bg-indigo-500/10 rounded-full blur-3xl pointer-events-none" />
<div className="relative z-10 max-w-2xl mx-auto space-y-4">
<h3 className="text-2xl md:text-3xl font-bold text-white">
آماده پیاده‌سازی و توسعه سیستم‌های پیچیده
</h3>
<p className="text-xs md:text-sm text-gray-400 leading-relaxed">
اگر نیاز به مشاوره معماری نرم‌افزار، مقیاس‌پذیری سرویس‌ها یا پیاده‌سازی ماژول‌های اینترانت و سازمانی دارید
</p>
<div className="pt-2">
<a
href="/contact"
className="inline-flex items-center gap-2 px-6 py-2.5 rounded-lg bg-indigo-600 hover:bg-indigo-500 text-white text-xs font-semibold shadow-lg shadow-indigo-600/30 transition-all hover:scale-105"
>
<span>شروع همکاری فنی</span>
<ExternalLink className="w-3.5 h-3.5" />
</a>
</div>
</div>
</div>
</section>
</main>
<Footer />
</div>
);
}