پیوست الزامات فنی قرارداد:

 

توجهات مهم:

  • طراحي مفهومي داده ها (فيلدها، مقادير مجاز و ...) در بخش Data Object هاي BPMN مشخص شده است.
  • پيمانكار بايستي آشنايي كامل با لينوكس، گيت و سرويس هاي apache، nginx و MariaDB داشته باشد و كارفرما تعهدي براي پاسخگويي به سوالات و كمك به پيمانكار در راه اندازي بستر توسعه، دمو و اجراي نرم افزار ندارد.

بخش اول: پایگاه داده

  1. طراحی منطقی پایگاه داده بایستی با Microsoft Visio (مدل Crow’s foot) انجام شده و فایل آن به نماینده مرکز فاوا داده شود. این طراحی پیش از پیاده شدن در پایگاه داده باید به تایید مرکز فاوا برسد ⟮برخی جداول ممکن است از قبل در سامانه ها موجود باشند که در این صورت استفاده از داده های آنها به شکل api در سطح برنامه یا view در سطح پایگاه داده ⟮بنا به تشخیص مرکز فاوا⟯ خواهد بود.

تبصره: نوشتن api تستی در محیط development بر عهده پیمانکار است

  1. پایگاه داده مورد استفادهMariaDb    نسخه 10.1 به بالا
  • استاندارد نام گذاری: نام جداول یک پیشوند سه حرفی یا چهار حرفی با حروف بزرگ سپس یک _ پس از آن نام انگلیسی با مفهوم برای آن جدول. اگر نام جدول یک کلمه ای باشد همه حروف کوچک باشد و اگر چند کلمه ای باشد، حرف اول هر کلمه بزرگ و بقیه کوچک باشد.
  • انجین جداول باید InnoDB باشد ⟮در موارد خاصی که نیاز باشد نوع دیگری در نظر گرفته شود، با ذکر دلایل، حتما باید تاییدیه مرکز فاوا گرفته شود⟯
  • هرگونه تغییر در پیکره بندی پیش فرض MariaDB، بایستی با ذکر دلایل بوده و تاییدیه مرکز فاوا را داشته باشد.
  • تولید داده های تستی بر عهده پیمانکار است. با این وجود در شرایط خاص ممکن است کارفرما داده­هایی را به منظور تست در اختیار پیمانکار قرار دهد، این داده­ها مشمول تعهدنامه عدم افشای اطلاعات بوده و نبایستی در هیچ کجا انتشار یابد.

بخش دوم: بخش Back-End برنامه

  • برنامه بایستی بر روی سرویس nginx و phpfpm توسعه داده و تست شود.
  • هر گونه تغییر در تنظیمات پیش فرض nginx و php با ذکر دلایل آن، باید از مرکز فاوا تایید گرفته شود.
  • Api ها به صورت RestFull با زبان PHP و فریم ورک Slim نسخه 3 به بالا یا NodeJS و ماژول Express نوشته شود.
  1. رعایت الزامات ذكر شده در مستندات مركز فاواي دانشگاه فردوسي برای فریمورک Slim (در بخش انتشارات در سايت مركز فاواي دانشگاه فردوسی)
  2. ارتباط با بانک اطلاعاتی تنها از طریق کلاس (PdoDataAccess) انجام شود (رجوع به مستند مربوطه) در صورت استفاده از NodeJS بایستی الزامات کلاس یاد شده نیز پیاده شود (شامل ثبت log کوئری ها، audit و ...)
  3. ممیزی (Audit) مناسب به ازای هر اقدام کاربر با شرح مناسب و کامل  (توسط متد مربوطه در کلاس اتصال به پایگاه داده)
  4. Authentication   بر مبنایAPI   ارایه شده از طرف مرکز فاوا
  5. Authorization   بر مبنای API ارایه شده از طرف مرکز فاوا
  6. کدها مستند سازی شده باشد.(بر روی کد)
  7. تست کیس های لازم به ازاء هرAPI  ایجاد شود.

بخش سوم: بخش Front-End برنامه

فرانت اند برنامه بايستي بدون استفاده از فريم وركهاي جاوااسكريپتي و در محيط فریم ورک سدف پياده سازي شده و از كتابخانه Bootstrap براي طراحي استفاده شده باشد. در سدف يك كتابخانه PHP بر مبنای Bootstrp براي توسعه رابط كاربري دارد (لینک) كه پيمانكار مي تواند از آن استفاده كرده و يا به صورت مستقيم از كلاسهاي Bootstrap استفاده كند. مساله مهم در سازگاري ظاهري عناصر، رنگها و طرح بندي صفحات با ساير بخشهاي سدف است.

فراخوانی api های بخش back-end بایستی توسط کتابخانه guzzle در php انجام شود.

نسخه ساده شده ای از فریم ورک سدف برای استفاده در توسعه Front-End برنامه در آدرس زیر وجود دارد:

https://github.com/milanifard/sadaf

بخش چهارم: امنیت

  • سامانه باید به صورت امن نوشته شود و گواهی امنیتی از یک مرکز معتبر دارای مجوز افتا[1] و یا یکی از مراکز همكار مركز مديريت امداد و هماهنگي عمليات رخدادهاي رايانه اي (ماهر)[2] دریافت نماید. هزینه ی این گواهی برعهده ی شرکت پیمانکار خواهد بود و کارفرما هیچگونه حمایت مالی یا معنوی در این خصوص نخواهد داشت.

بخش پنجم: مستندات

  1. مستند سازی API های نوشته در بستر Swagger (برای توضیحات بیشتر می توانید به این لینک مراجعه کنید). فایل YAML مربوط به مستند بایستی به کارفرما تحویل شود و کاملا با سرویسهای پیاده شده تطابق داشته باشد.
  2. مدل پایگاه داده در سه سطح مفهومی، منطقی و فیزیکی توسط نرم افزار Microsoft Visio و با مدل Crow’s foot
  3. فراداده (MetaData) جداول در قالب دیتا دیکشنری شامل شرح جداول و فیلدها، مقادیر شمارشی مورد استفاده و کدینگ مقادیر
  4. راهنمای کاربری سامانه ها (طبق قالب قرار گرفته در قسمت انتشارات سایت مرکز فاوا - لینک)

بخش ششم: مدیریت پروژه

  • کلیه کارهای مرتبط با پروژه از جمله کارهای توسعه ای یا خطاهای اعلام شده، در سامانه مدیریت پروژه و تیکتینگ دانشگاه ثبت و پیگیری می شود. پیمانکار بایستی حساب کاربری برای شرکت خود دریافت کرده و کلیه درخواستها و خطاهای اعلام شده را از همین مسیر پیگیری کند. ثبتهای انجام شده در این سامانه به معنای اعلام رسمی و مکتوب به شرکت تلقی شده و رعیت زمانبندی های قرارداد برای آنها الزامی است.
  • به دلیل اهمیت زمان در انجام پروژه های فاوا، پیمانکار موظف است گزارش پیشرفت ماهانه کار را برای مرکز فاوا ارسال کند. چنانچه تفاوت زمانی قابل ملاحظه­ای بین زمانبندی مورد توافق در قرارداد و پیشرفت کار باشد، به جهت تضییع نشدن حقوق دانشگاه، مرکز فاوا به کارفرما پیشنهاد فسخ قرارداد را خواهد داد.

الزامات فني بخش موبايلي سامانه:

  • استفاده از زبان جاوا و محیط توسعه اندروید استودیو
  • استفاده از معماری mvp یا  mvvm
  • کلید sign برنامه در اختیار مرکز فاوا قرار گیرد
  • استفاده از كتابخانه هاي استاندارد و مورد تایید مرکز فاوا
  • بروزرسانی برنامه بر اساس آخرین نسخه اندروید

 


[1] براي اطلاع از فهرست شركتهاي داراي پروانه افتا مي توانيد به سايت https://sec.ito.gov.ir/ مراجعه كنيد

[2] برای اطلاع از فهرست مراکز همکار به سایت https://cert.ir/partners مراجعه شود