توسعه اختصاصی با لاراول

وقتی نیاز شما سامانه است، نه سایت

یک جایی هست که وردپرس دیگر ابزار درستی نیست: وقتی منطق کسب‌وکارتان قواعد خودش را دارد، وقتی هزاران کاربر هرکدام داده‌ی خودشان را می‌بینند، وقتی باید به سامانه‌های دیگر وصل شوید. آنجا به‌جای دور زدن محدودیت‌های وردپرس با ده افزونه، نرم‌افزار را از پایه می‌نویسیم.

LaravelMySQL / PostgreSQL REST APIQueue & Job Redis Cacheدرگاه پرداخت پنل چندکاربره
قبل از هر چیز

اول ببینیم اصلاً به لاراول نیاز دارید یا نه

لاراول گران‌تر و زمان‌برتر از وردپرس است. اگر مسئله‌ی شما با وردپرس حل می‌شود، همان را پیشنهاد می‌دهیم — حتی اگر پروژه‌ی کوچک‌تری برای ما باشد.

نیاز شماوردپرسلاراول
سایت معرفی، بلاگ، نمونه‌کارکافی استبیش از حد
فروشگاه با محصول و سبد خرید معمولیووکامرس کافی استلازم نیست
اشتراک ماهانه با سطوح دسترسی متفاوتبا چند افزونه، شکنندهمسیر درست
هر کاربر داده و داشبورد مستقل خودش را ببیندسخت و کندمسیر درست
اتصال به چند سامانه بیرونی و همگام‌سازی خودکارمحدودبدون محدودیت
منطق کسب‌وکار خاص (قیمت‌گذاری، تخصیص، گردش تأیید)باید دور زده شودمستقیم پیاده می‌شود
ده‌ها هزار رکورد با گزارش‌گیری سنگیندیتابیس وردپرس کند می‌شودساختار دیتابیس مخصوص خودتان
اپلیکیشن موبایل هم قرار است وصل شودنیاز به لایه اضافهAPI از روز اول
معماری

از پایین به بالا ساخته می‌شود

ترتیب مهم است. اگر از رابط کاربری شروع کنید، دیتابیس را مجبور می‌کنید خودش را با صفحه‌ها تطبیق دهد — و شش ماه بعد هر قابلیت جدیدی گران تمام می‌شود.

01 مدل داده

اول مشخص می‌کنیم چه موجودیت‌هایی وجود دارند و چه رابطه‌ای با هم دارند. جدول‌ها، کلیدها، ایندکس‌ها و مهاجرت‌ها (migration) نوشته می‌شوند تا ساختار دیتابیس نسخه‌بندی‌شده و قابل بازگشت باشد.

02 منطق و API

قواعد کسب‌وکار در سرویس‌های جداگانه نوشته می‌شوند، نه پخش‌شده لای کد صفحه‌ها. کارهای سنگین به صف (queue) می‌روند تا کاربر منتظر نماند، و همه‌چیز از طریق API در دسترس است — پس اپلیکیشن موبایل بعداً بدون بازنویسی وصل می‌شود.

03 رابط و پنل

حالا رابط کاربری روی همان API سوار می‌شود: پنل کاربر، پنل مدیر، گزارش‌ها و سطوح دسترسی. چون منطق زیرش مستقل است، تغییر ظاهر هیچ‌وقت به منطق دست نمی‌زند.

کاربردها

معمولاً چه چیزهایی با لاراول می‌سازیم

SaaS

پلتفرم اشتراکی

سرویسی که کاربر ثبت‌نام می‌کند، پلن می‌خرد و فضای اختصاصی خودش را دارد. صورت‌حساب دوره‌ای، محدودیت پلن، دوره آزمایشی و ارتقا و تنزل پلن.

Panel

پنل سازمانی چندکاربره

چند کاربر زیر یک حساب، هرکدام با نقش و سطح دسترسی مشخص. گردش تأیید داخلی، تاریخچه تغییرات و گزارش فعالیت.

API

API و یکپارچه‌سازی

اتصال به حسابداری، انبار، CRM، پنل پیامک، سامانه مؤدیان یا هر سرویس دیگری — با همگام‌سازی خودکار و مدیریت خطا، نه ورود دستی اطلاعات.

Booking

رزرو و نوبت‌دهی

تقویم شمسی، ظرفیت و بازه‌های زمانی، جلوگیری از رزرو هم‌زمان، یادآوری پیامکی و پرداخت بیعانه.

Report

داشبورد و گزارش مدیریتی

گزارش روی داده‌ی واقعی کسب‌وکار با فیلترهای دلخواه، خروجی اکسل و نمودارهایی که برای تصمیم‌گیری ساخته شده‌اند نه برای زیبایی.

Internal

سامانه داخلی سازمان

هر فرایندی که الان با اکسل و واتساپ اداره می‌شود: ثبت درخواست، مسیر تأیید، تخصیص کار، بایگانی و جست‌وجو.

مطالعه موردی

vCNFC — از یک ایده تا یک پلتفرم اشتراکی

به‌جای فهرست‌کردن قابلیت‌ها، یک پروژه‌ی واقعی را باز می‌کنیم تا ببینید جنس کار چیست.

کارت ویزیت دیجیتال vCNFC

vcnfc.com
پلتفرم SaaS — سال ۱۴۰۵

مسئله: کاربر باید بتواند بدون هیچ دانش فنی، یک کارت ویزیت دیجیتال بسازد، آدرس اختصاصی بگیرد، محصولاتش را بفروشد و نوبت بدهد — و همه‌ی این‌ها زیر یک اشتراک ماهانه، با امکان اینکه یک شرکت چند کارت برای کارکنانش داشته باشد.

64قالب صنفی آماده
SaaSاشتراک ماهانه و سالانه
NFCاتصال به تراشه فیزیکی
Multiپنل سازمانی چندکاربره

چه چیزی ساخته شد

  • سیستم اشتراک با پلن ماهانه و سالانه، ارتقا و تنزل پلن
  • آدرس اختصاصی برای هر کارت و سئوی مستقل هر صفحه
  • فروشگاه واتساپی با سبد خرید، بدون نیاز به درگاه برای هر فروشنده
  • رزرو نوبت با تقویم شمسی و یادآوری پیامکی
  • آنالیتیکس بازدید هر کارت، مستقل از گوگل آنالیتیکس
  • QR سفارشی و اتصال به تراشه NFC فیزیکی

چالش فنی اصلی

پنل سازمانی. یک شرکت باید بتواند چند کارت برای کارکنانش بسازد، هر کارمند فقط کارت خودش را ببیند و ویرایش کند، ولی مدیر بتواند همه را مدیریت کند و صورت‌حساب یکجا باشد.

این نوع نیاز با افزونه‌های آماده اصلاً حل نمی‌شود؛ باید در لایه‌ی سیاست دسترسی (Policy) و ساختار دیتابیس از روز اول دیده شده باشد. برای همین مرحله‌ی مدل داده در این پروژه سه برابر معمول طول کشید — و در عوض، افزودن قابلیت‌های بعدی بسیار سریع پیش رفت.

LaravelMySQL درگاه پرداختتقویم شمسی پنل چندکاربره
کیفیت کد

کدی که تیم بعدی هم بتواند بخواندش

فرض ما این است که روزی ممکن است شما توسعه را به تیم دیگری بسپارید. کد طوری نوشته می‌شود که آن روز، برای شما هزینه نداشته باشد.

STRUCTURE

ساختار

  • پیروی از قراردادهای رسمی لاراول — نه ساختار اختراعی خودمان
  • منطق کسب‌وکار در سرویس‌های جداگانه، نه داخل کنترلرها
  • مهاجرت‌های نسخه‌بندی‌شده برای دیتابیس، با امکان بازگشت
  • کد روی git با تاریخچه‌ی معنادار
SECURITY

امنیت

  • بررسی سطح دسترسی در لایه‌ی سیاست (Policy)، نه فقط پنهان‌کردن دکمه
  • اعتبارسنجی همه‌ی ورودی‌ها پیش از رسیدن به منطق
  • محافظت در برابر CSRF، XSS و تزریق SQL به‌صورت پیش‌فرض
  • ثبت لاگ عملیات حساس برای پیگیری
PERFORMANCE

کارایی

  • ایندکس‌گذاری درست و پرهیز از کوئری‌های تودرتو (N+1)
  • کش لایه‌ای برای گزارش‌ها و داده‌های پرتکرار
  • کارهای سنگین در صف، تا کاربر منتظر نماند
  • صفحه‌بندی و بارگذاری تدریجی برای فهرست‌های بزرگ
HANDOVER

تحویل

  • کد منبع کامل روی مخزن خودتان
  • مستندات نصب، پیکربندی و متغیرهای محیطی
  • مستندات API برای تیم موبایل یا سرویس‌های دیگر
  • جلسه انتقال دانش با تیم فنی شما، اگر داشته باشید
فرایند

پروژه‌ی بزرگ را تکه‌تکه تحویل می‌دهیم

یک سامانه‌ی شش‌ماهه که تا روز آخر چیزی از آن نبینید، ریسک بزرگی برای شماست. کار را به بازه‌های دو تا سه هفته‌ای می‌شکنیم و پایان هر بازه، بخشی قابل استفاده روی نسخه آزمایشی بالا می‌آید.

01

کشف و تحلیل

جلسه‌های عمیق برای فهمیدن فرایند واقعی کسب‌وکار — نه آنچه روی کاغذ نوشته شده. اینجا معلوم می‌شود کدام بخش‌ها واقعاً لازم‌اند و کدام فقط «خوب است باشد».

02

سند فنی و برآورد

مدل داده، فهرست قابلیت‌ها با اولویت، معماری و زمان‌بندی به‌صورت مکتوب. هزینه بر همین سند بسته می‌شود. تا اینجا هیچ تعهدی برای شما ایجاد نشده است.

03

توسعه در بازه‌های کوتاه

هر دو تا سه هفته یک بخش قابل استفاده روی نسخه آزمایشی بالا می‌آید و شما همان‌جا بازخورد می‌دهید — نه شش ماه بعد.

04

تست و انتقال داده

تست با داده واقعی، بررسی سطوح دسترسی و سناریوهای خطا. اگر سامانه‌ی قبلی دارید، انتقال داده هم همین‌جا انجام و بازبینی می‌شود.

05

انتشار و آموزش

استقرار روی سرور، پیکربندی بکاپ و پایش، آموزش تیم شما و تحویل کد منبع و مستندات.

06

نگهداری و توسعه بعدی

رفع ایراد، به‌روزرسانی وابستگی‌ها و افزودن قابلیت‌های تازه — با همان تیمی که سامانه را می‌شناسد.

سوالات

پرسش‌های رایج درباره پروژه‌های لاراول

هزینه یک پروژه لاراول چقدر است؟
بازه‌اش بسیار گسترده است و دادن عدد بدون شناخت پروژه، فریب دادن شماست. یک پنل داخلی ساده با یک پلتفرم SaaS چندکاربره قابل مقایسه نیست. روال ما این است: جلسه کشف رایگان، بعد سند فنی با فهرست قابلیت‌ها و برآورد مکتوب. شما بعد از دیدن عدد تصمیم می‌گیرید و تا آن لحظه هیچ هزینه‌ای نداده‌اید.
چقدر طول می‌کشد؟
پروژه‌های کوچک ۴ تا ۸ هفته، پروژه‌های متوسط ۳ تا ۶ ماه. چون کار در بازه‌های دو تا سه هفته‌ای تحویل می‌شود، از هفته‌های اول چیزی برای دیدن و بازخورد دادن دارید.
کد مال کیست؟
مال شماست. کد روی مخزن خودتان قرار می‌گیرد و در پایان پروژه با مستندات کامل تحویل داده می‌شود. هیچ قفل، هیچ لایسنس سالانه و هیچ وابستگی اجباری به سرور یا سرویس ما وجود ندارد.
اگر بعداً بخواهم توسعه را به تیم دیگری بسپارم؟
مانعی نیست و کد طوری نوشته می‌شود که این کار برایتان هزینه نداشته باشد: قراردادهای رسمی لاراول، مستندات، و تاریخچه‌ی معنادار روی گیت. این را از ابتدا شفاف می‌گوییم چون معتقدیم قفل‌کردن مشتری، مدل کسب‌وکار سالمی نیست.
اپلیکیشن موبایل هم می‌سازید؟
خودمان اپلیکیشن نیتیو نمی‌سازیم، ولی API را طوری طراحی می‌کنیم که تیم موبایل شما بدون هیچ بازنویسی‌ای به آن وصل شود. مستندات API هم بخشی از تحویل است.
سامانه روی سرور شما بالا می‌آید یا سرور ما؟
هر کدام که ترجیح بدهید. اگر زیرساخت خودتان را دارید، روی همان مستقر می‌کنیم. اگر ندارید، سرور آلمان یا ایران ما در دسترس است — با پیکربندی مخصوص لاراول، نه هاست اشتراکی معمولی.
شروع کنیم

مسئله را بگویید، نه راه‌حل را

لازم نیست بدانید لاراول لازم دارید یا وردپرس. کافی است بگویید الان چه کاری را دستی یا با اکسل انجام می‌دهید که دوست دارید سامانه خودش انجام دهد.