رفتن به درس اول
آموزش محاسب ۳۶۵ ورود به پنل

محاسب ۳۶۵ را در ده دقیقه بفهم

این صفحه برای کسی است که می‌خواهد بداند این سامانه چطور چیده شده — نه برای برنامه‌نویس. هیچ اصطلاح فنی‌ای بدون توضیح نمی‌آید.

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

محاسب ۳۶۵ چیست

محاسب ۳۶۵ یک سامانه‌ی مدیریت کسب‌وکار است که ما به کسب‌وکارهای دیگر می‌فروشیم. انبار، فروش، صندوق، حسابداری، حقوق و دستمزد، سایت فروشگاهی — همه در یک جا.

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

هر کسب‌وکاری که از محاسب استفاده می‌کند یک «مستأجر» است — مثل مستأجرِ یک ساختمان. ساختمان یکی است، واحدها جدا.

امروز دو مشتری واقعی روی آن هستند: گنج دانش (فروشگاه لوازم‌التحریر و کتاب) و عینک‌سازی حسین‌زاده. خودِ محاسب ۳۶۵ هم مستأجرِ خودش است و حساب‌وکتاب کسب‌وکارش را در همین سامانه نگه می‌دارد.

درس ۲

روی سرور چه خبر است

تصور رایج این است که هر مشتری یک پوشه روی سرور دارد که کدِ خودش داخلش است. این‌طور نیست، و همین جایی است که بیشتر آدم‌ها گم می‌شوند.

روی سرور، «یک مشتری» یعنی یک دیتابیس. نه یک پوشه‌ی کد.

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

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

ساختار سرور محاسب ۳۶۵ یک سرور که داخلش دو بخش دارد: کد که یک نسخه است و همه‌ی مشتری‌ها از آن می‌خوانند، و بخشی که به‌ازای هر مشتری جداگانه ساخته می‌شود — دیتابیس و پوشه‌ی فایل همیشه، و وب‌روت سایت و کلید API فقط در صورت نیاز. بیرون از سرور، سایتِ خودِ مشتری با کلید API از سرور می‌خواند. سرور پارس‌پک — یک ماشین 62.3.41.19 کد یک نسخه، مشترک هر مشتری از همین مشتری تازه = صفر فایل تازه به‌ازای هر مشتری دیتابیس اختصاصی — همیشه پوشه‌ی فایل — همیشه وب‌روت سایت — فقط دسته‌ی کامل کلید API — فقط با سایتِ خودش سایتِ خودِ مشتری با کلید API از ما می‌خواند
یک سرور، یک نسخه کد، و به‌ازای هر مشتری یک انبار جدا
جدا بودنِ انبارها فقط یک قاعده در کد نیست — در خود دیتابیس هم اجرا می‌شود. کاربرِ دیتابیسِ هر کسب‌وکار حتی نام دیتابیس کسب‌وکار دیگر را نمی‌بیند.
درس ۳

سه دسته‌ی مشتری

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

سه دسته‌ی مشتری محاسب ۳۶۵ سه کارت کنار هم: دسته‌ی کامل با پنل و API و سایت روی سرور ما که امروز گنج دانش و عینک‌سازی مشتریانش هستند؛ دسته‌ی اتصالی و دسته‌ی گزیده که هر دو پنل و API دارند و سایتشان جای دیگری است. دسته‌ی دوم و سوم از نظر کد یکی‌اند و فقط فهرست ماژولشان فرق دارد. ۱ — کامل ERP و سایت، هر دو از ما پنل ERP API سایت روی سرور ما همه‌ی ماژول‌ها گنج دانش · عینک‌سازی ۲ — اتصالی ERP و کلید API پنل ERP API سایت خودش، جای دیگر همه‌ی ماژول‌ها هنوز هیچ‌کس ۳ — گزیده فقط چند ماژول پنل ERP API سایت خودش، جای دیگر فقط خریده‌ها هنوز هیچ‌کس از نظر کد یکی‌اند — فقط طول فهرست ماژول فرق دارد
دسته‌ی دوم و سوم از نظر فنی یکی‌اند؛ فقط فهرست ماژولشان فرق دارد

فقط دسته‌ی «کامل» منابع سرور را واقعاً مصرف می‌کند. دو دسته‌ی دیگر یک دیتابیس می‌گیرند و بس.

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

هر سه دسته، داده‌شان روی سرور ما می‌نشیند. در عوض، حقِ بردنِ داده تضمین‌شده است: هر مشتری هر وقت بخواهد می‌تواند یک نسخه‌ی کامل از همه‌ی داده‌اش را تحویل بگیرد.
درس ۴

مشتری تازه چطور ساخته می‌شود

فرض کن فردا یک نانوایی مشتری می‌شود. این شش قدم برای هر سه دسته یکسان است:

  1. یک ردیف در دفتر مرکزی نوشته می‌شود: نامش، دسته‌اش
  2. یک دیتابیس خالی ساخته می‌شود، با کاربری که فقط به همان یکی دسترسی دارد
  3. ساختار جدول‌ها داخلش ریخته می‌شود — امروز ۱۷۴ جدول خالی
  4. یک مدیر اولیه ساخته می‌شود تا بتواند وارد شود
  5. رمز آن دیتابیس جایی بیرون از دسترس مرورگر ثبت می‌شود
  6. یک پوشه برای فایل‌هایش و یک پوشه برای بکاپش

تمام. حالا نانوایی می‌تواند وارد شود و کار کند — بدون اینکه حتی یک فایل کد کپی شده باشد.

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

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

درس ۵

هرکس از کجا وارد می‌شود

یک در وجود دارد و همه از همان وارد می‌شوند: app.mohaseb365.com

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

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

این را دو چیز با هم تضمین می‌کنند: فهرست از روی عضویت‌های همان شخص ساخته می‌شود، و کسب‌وکاری که این نصب اعتبارنامه‌اش را ندارد اصلاً در فهرست نمی‌آید.

یک استثنا هنوز هست: erp.ganjdanesh.com در قدیمی‌ای است که مستقیم به گنج دانش باز می‌شود. قرار است بازنشسته شود تا فقط یک در بماند.
درس ۶

کد کجا زندگی می‌کند

کد در سه جا هست و فقط سه جا:

  1. روی لپ‌تاپ — جایی که نوشته و ویرایش می‌شود
  2. در گاوصندوق — نسخه‌ی امن و تاریخچه‌ی همه‌ی تغییرها
  3. روی سرور — نسخه‌ای که مشتری واقعاً می‌بیند

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

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

برای همین یک آدرس آزمایشی جدا وجود دارد که دقیقاً شبیه سامانه‌ی واقعی است ولی داده‌ی هیچ مشتری‌ای رویش نیست. هر چیزی اول آنجا امتحان می‌شود.

پیوست

واژه‌نامه

کلمه‌هایی که ممکن است جایی بشنوی و یادت نیاید یعنی چه.

مستأجر
یک کسب‌وکار که از محاسب استفاده می‌کند. گنج دانش یک مستأجر است، عینک‌سازی یکی دیگر.
وب‌روت
پوشه‌ای که یک دامنه به آن اشاره می‌کند. فقط چیزی که داخل آن پوشه است از مرورگر دیده می‌شود؛ رمزها و بکاپ‌ها عمداً بیرون از آن نگه داشته می‌شوند.
دیتابیس
انبار داده‌ی یک کسب‌وکار. کالاها، فاکتورها، کارمندان، همه‌چیز. هر مستأجر یکی دارد و به مالِ بقیه دسترسی ندارد.
ماژول
یک بخش از سامانه که جدا فروخته می‌شود: صندوق فروش، انبار، حقوق و دستمزد، صورت‌های مالی. نُه ماژولِ پایه هیچ‌وقت فروخته نمی‌شوند و همیشه بازند، وگرنه صاحب کسب‌وکار از پنل خودش بیرون می‌ماند.
کلید API
یک رمز بلند که به سایتِ خودِ مشتری داده می‌شود تا بتواند از ما اطلاعات بخواند. جای دیتابیس را نمی‌گیرد.
اسلاگ
نام کوتاه انگلیسی هر کسب‌وکار که در نام دیتابیس و مسیر فایل‌هایش می‌نشیند. بعد از ساخته شدن دیگر عوض نمی‌شود.
تنظیمات اولیه
صفحه‌ای که کسب‌وکار تازه اول از همه پر می‌کند: نام، لوگو، آدرس، شماره، شناسه‌ی مالیاتی. ۱۷ تا از این‌ها اجباری‌اند.
نسخه‌ی آزمایشی
یک نصب کامل و جدا از سامانه که برای امتحان کردن کارِ تازه است. داده‌ی هیچ مشتری واقعی‌ای رویش نیست.