قراره چی بسازم تو دوره؟
همه عکس هایی که میبینی پروژه هایی هستند که توی دوره یاقوت اندروید بهت یاد میدم از یه صفحه سفید بسازی.
- هیچی برنامه نویسی بلد نیستی؟
- دوست داری سریع وارد بازار کار باشی؟
- دنبال یه دوره آپدیت و پرمحتوا هستی؟
اینجا جاییه که باید باشی 🙂
این دوره کاملاا پروژه محوره و هر فصل ما از یک صفحه سفید شروع به زدن پروژه میکنیم و در دل اون پروژه هست که کار با معماری ها و کتابخانه های اندرویدی رو یاد میگیریم.
همچنین یکسری از پروژه های دوره خروجی apk گرفته شده که خیلی راحت میتونی با مراجعه به لینک زیر اون ها رو روی گوشی خودت نصب کنی و کیفیت کار رو ببینی:
کیفیت تدریس به چه صورت هست؟ دموی رایگان دارین؟
ویدیو های دوره با کیفیت Ful HD در اسپات پلیر آپلود شدن که راحت بتونی ببینی.
به شما هم لایسنس دسکتاپ داده میشه که روی ویندوز یا macOs استفاده کنی و هم لایسنس Android داده میشه که در گوشی خودتون ببینی. کیفیت صدای دوره ۱۹۲ kbps هست و کاملا شما رو راضی خواهد کرد.
محتوای دوره شامل ویدیو های اسکرین رکورد – ویدیو ها با حضور خودم – کوییز های آخر هر فصل و تمرین های گروه های پشتیبانی هست و ۸ ماه وقت نیازه که دوره رو تکمیل کنی و بری برا بازار کار. در این دوره به بازار کار خیلیی پرداخته شده و یه بخش کاملا تخصصی ۶ ساعته راجع به بازار کار , رزومه نویسی , قرارداد بستن , فریلنسری , پرداخت درون برنامه ای کافه بازار , و … گذاشته شده که رااااحت بتونی بعد دیدن دوره کسب درآمد کنی.
ویدیو های رایگان دوره (برای دانلود رو هر کدوم کلیک کنید) :
۱. ویدیو کار با collapsing toolbar
آیا این دوره آپدیت میشه؟
آخرین آپدیت دوره برای روز ۱۴۰۳/۰۱/۰۳ هست و این دوره در حال آپدیت و به روز رسانی های مستمر هست.
با ورود به دوره همه آپدیت ها مادام العمر برای تو دوست عزیز رایگان خواهد بود. زمانی که وارد دوره بشی وارد چنل تلگرامی دوره میشی که روزانه اونجا آپدیت های دوره, رفع باگ ها و کلی چیز دیگه به اشتراک گذاشته میشه. بعضی وقتا هم که دلمون میگیره ویس چت میریم.
پشتیبانی این دوره به چه شکلی هست؟
پشتیبانی این دوره کامل داخل تلگرامه و خبری از تیکت سایت و منتظر موندن نیست 🙂
امیرحسین محمدی مدرس دوره به همراه منتور های خوب دوره در خدمتت هستند تا هر سوالی دارین رو پاسخ بدند.
زمانی که در این دوره ثبت نام میکنی داخل یک گروه vip عضو میشی. توی این گروه هفته به هفته تمرین وجود داره براساس ویدیوهایی که در اون هفته میبینی و بهت pdf برنامه ریزی دیدن دوره داده میشه که طبق اون دوره رو ببینی.
بعد یه مدت جذب ۵ گروه پشتیبانی دوره میشی! سطح افراد داخل گروه ها با هم متفاوت هست و تو داخل گروه هم سطح خودت عضو میشی تا هم حس راحتی و انگیزه کنی و هم بتونی با بقیه بچه های دوره صحبت کنی – لینک بشی – تبادل پروژه کنی – تو مسابقات شرکت کنی باهاشون و …
دانشجویان قبلی کجا هستند؟
دوره یاقوت اندروید شما را تا سطح midLevel بالا می آورد و اکثر دانشویان دوره بعد از یادگیری میتوانند راحت وارد بازار کار شوند.
یکسری از بچه ها هم پروژه خارجی گرفته اند – داشتیم تو بچه ها کسایی که کتابخونه توسعه دادن 🙂
دانشجویان یاقوت تیم شدند و در مسابقات MPM دانشگاه شریف که سالانه برگزار میشود درخشیدند و از بین تیم های شرکت کننده به مقام ۶ام کشوری دست یافتند.
این مسابقه با اسپانسری شرکت سِپ و بلوبانک برگزار شد.
آخرین استخدام های دوره:
- برنامه نویس اندروید تیم ایرانسل
- برنامه نویس اندروید تیم کارگزاری آگاه
قراره چی یاد بگیرم و مسیر یادگیری به چه شکله؟
در این دوره مهارت هایی بهت آموزش داده میشه که در شرکت های بزرگ کاربرد داره, فقط کافیه یه سری به آگهی های استخدامی بزنی تا ببینی چقدر مطالب این دوره کمکت میکنه و استخدام رو تسریع میکنه.
ما سعی میکنیم ترند ترین و پرکاربرد ترین مهارت هارو بهت یاد بدیم و اینجا سنگر یادگیری MVVM , MVP , Hilt , Dagger2 Jetpack Compose , Kotlin Flow , RxJava , Coroutines , FireBase Analytics & Crashlytics , Android Components , Jetpack Libraries هستش.
در این دوره api نویسی با Spring Boot هم بهت یاد داده میشه در یاقوت ۱۹ و در فصل های بعدش برا یادگیری MVVM و MVP از همون api هایی استفاده میکنیم که خودمون اون ها رو نوشتیم!
آموزش کامل Sql , آموزش کامل Git , GitHub و دوره تخصصی بازار کار , هدیه های این دوره هستند.
مدرس دوره کیه؟
امیرحسین محمدی مالک سایت دانیجت, مدرس این دوره هست.
امیرحسین ۵ ساله که به صورت تخصصی در حوزه موبایل فعالیت میکنه – هم فریلنسری کرده – هم به عنوان کارمند تو شرکت ها کار کرده – هم کلاس های حضوری داشته و آموزش داده – هم دوره های ویدیو رکورد کرده برا فرادرس و کدآموز , و الان هم زندگیش رو گذاشته برا سایت دانیجت که بتونه به بچه ها کمک کنه و مسیرشون رو تسریع کنه.
رزومه امیرحسین داخل صفحه درباره ما گذاشته شده یه سری بهش بزن.
سرفصل های دوره
اول سرفصل های دوره ما رو با بقیه دوره های موجود مقایسه کن – قیمت هم مقایسه کن – شرایط پشتیبانی و نظرات دانشجویان هم مقایسه کن , تا مطمئن بشی 🙂
- مزیت های اصلی این دوره ؟
- چرا باید اندروید و کاتلین رو یاد بگیرم؟
- لینک گروه vip تلگرام برای پشتیبانی دوره + ریسورس های مورد نیاز سرفصل ها
- برنامه نویسی چیه ؟ کاتلین چیه ؟ چجوری کار میکنه ؟ کامپایلر و مفسر چی هستند ؟
- نصب ۲۰۲۳ intelijj برای یادگیری زبان کاتلین + دستور پرینت در کاتلین
- انواع متغیرها و دیتاتایپ ها
- کار کردن با متغیر ها و دیتاتایپ های مختلف در کاتلین
- نامگذاری درست برای متغیر ها
- کامنت گذاری در کاتلین ( کامنت تک خطی – کامنت چند خطی – داکیومنتیشن نویسی )
- انواع شرط ها در کاتلین به همراه مثال و تمرین ( if – else – else if )
- کار با دستور when برای راحت تر کرن شرط ها
- عملیات مختلف روی متغیر ها
- حلقه for به همراه تمرین عملی
- حلقه while به همراه تمرین عملی
- حلقه do while به همراه تمرین عملی
- کلمات کلیدی break – continue
- حلقه های تو در تو در کاتلین
- تبدیل متغیر ها به هم یا همان type casting در کاتلین + کار با کد های اسکی در کاتلین
- عملیات حرفه ای روی متغیر ها + حل نمونه سوالات الگوریتمیک بخش پذیری در کاتلین
- آرایه و کاربرد آن در برنامه نویسی
- تعریف و استفاده از ارایه در زبان کاتلین
- استفاده از حلقه for برای دسترسی به مقادیر آرایه
- دستور foreEach
- کار با arrayList به صورت کامل
- کار با list به صورت کامل
- کار با mutableList به صورت کامل
- توابع در کاتلین
- تعریف تابع دارای آرگومان ورودی در کاتلین
- گرفتن ورودی از کاربر با دستور readLine()
- حل کردن تمرین های الگوریتمیک با توابع
- فرستادن یک list به ورودی آرگومان یک تابع
- بازگرداندن یک مقدار از تابع به کمک کلمه کلیدی return
- تعریف null
- قابلیت null safety بودن در کاتلین
- سه روش در کاتلین برای چک کردن نال بودن یک متغیر
- Late init var در کاتلین
- مفاهیم شی گرایی در برنامه نویسی
- Inheritance
- Polymorphism
- Encapsulatioin
- Abstraction
- ساخت class و شی در کاتلین
- تعریف کردن صفات مختلف برای یک کلاس
- تعریف کردن متدهای مختلف برای یک کلاس
- فرستادن یک داده به عنوان آرگومان ورودی کلاس در کاتلین
- Visibility modifier در کاتلین
- پیاده سازی ارث بری در کاتلین
- دسترسی به getter و setter در کاتلین
- تعریف کردن ثابت با کلمه کلیدی const val در کاتلین
- مفهوم companion object در کاتلین + static در کاتلین
- تعریف enum class در کاتلین
- Abstract class
- Abstract method
- Interface و کاربرد خاص آن در کاتلین
- Exception handling with try-catch in kotlin
- Generic function in kotlin
- Lambda expression
- Anonymous function
- Extension function
- High order function
- Object declaration
- Delegates properties (lazy)
- Delegates properties (by delegates)
- Delegates Properties (Vetoable)
- دانلود و نصب اندروید استادیو ۲۰۲۳ از سه مرجع معتبر
- Sdk رو از کجا دانلود کنم و کاربردش چیه ؟ (هدیه sdk اختصاصی دوره یاقوت متناسب اندروید ۱۴ به همراه شبیه ساز)
- Gradle کاربردش در برنامه نویسی اندروید چیه ؟
- پروکسی های معتبر برای دور زدن تحریم های اندروید استادیو
- توضیح کامل sdk manager و قسمت های آن
- آموزش ساخت شبیه ساز اندرید با avd manager
- آموزش استفاده از شبیه ساز سبک nox player برای سیستم های ضعیف
- آموزش استفاده از گوشی اندرودی واقعی به عنوان شبیه ساز
- توضیح جامع قسمت های مختلف android studio (پیشرفته)
- ساخت پروژه و توضیحات کلی راجع به پروژه
- مفاهیم xml
- ساختار یک پروژه اندرویدی
- کار کردن با resource های مختلف در اندروید
- آشنایی با gradle
- طراحی رابط کاربری در اندروید و آشنایی با انواع view ها
- کار با constraint layout و تنظیمات مختلف آن مانند (chain – align – … )
- پیاده سازی قسمت بالایی پروژه صفحه پروفایل دیجی کالا
- کار با FrameLayout و مفهوم layout gravity
- کار با Linear Layout و مفهوم Orientation
- کار با Relative Layout در اندروید
- کار با scroll View و Horizontal Scroll View
- پیاده سازی قسمت پایینی پروژه صفحه پروفایل دیجی کالا
- theme در اندروید light and dark
- دانلود سورس کد پروژه صفحه پروفایل دیجی کالا
- ساخت پروژه و توضیحات کلی راجع به پروژه
- مفهوم activity در اندروید و کاربرد آن
- دستور findViewById و کار با آن (قدیمی صرفا برای آشنایی)
- دستور toast و حالت های مختلف آن
- ساخت shape برای بک گراند view ها
- مفهوم viewBinding چیست ؟ (جدید)
- مفهوم intent در اندروید ExplicitIntent – EmplicitIntent
- کار با Grid View
- کار با Table Layout و Table Row
- کار با Edit Text
- و TextInputLayoutو صفات مختلف آن
- تکمیل رابط کاربری پروژه به همراه تم دارک
- مفهوم library در اندروید و نحوه استفاه از آن در پروژه
- تکمیل کدنویسی پروژه
- مفهوم Activity lifeCycler در اندروید (چرخه حیات)
- دانلود سورس کد پروژه ماشین حساب بسیار زیبا به همراه تم دارک
- کیت checkbox
- کیت RadioButton
- کیت RadioGroup
- کیت switch
- ساخت پروژه و توضیحات کلی راجع به پروژه
- آشنایی با انواع permission ها در اندروید
- آشنایی با کتابخانه Picasso و آموزش کار با آن
- آشنایی با کتابخانه Glide و آموزش کار با آن به همراه مقایسه با Picasso
- چک کردن وصل بودن اینرتنت کاربر internet connection
- پیاده سازی رابط کاربری پروژه به صورت کامل
- کدنویسی پروژه به صورت کامل
- دانلود سورس کد پروژه صفحه اکسپلور اینستاگرام
- خروجی گرفتن در اندروید
- نقش R8 و proGourd در اندروید
- حل ارور play protect و شناساندن برنامه خود به گوگل پلی
- آموزش قرار دادن برنامه به صورت کامل در بازار
- توضیحات قسمت های مختلف پنل برنامه نویسان بازار
- ساخت پروژه و توضیحات کلی راجع به پروژه
- معرفی RecyclerView
- اضافه کردن RecyclerView به پروژه
- طراحی ui پروژه به صورت کامل
- اضافه کردن recyclerView
- ساخت item برای recyclerView
- ساخت Adapter
- ساخت View Holder
- ست کردن recyclerView ها و آشنایی با layout manager
- ست کردن setOnClickListener روی آیتم های recyclerView
- استفاده از interface برای تمیز تر شدن کدهای adapter
- ساخت activity لیست برنامه های جدید
- اضافه کردن آیتم جدید به RecyclerView به همراه انیمیشن
- یه الرت دیالوگ اموزشش رو برو
- ادیت کردن یک ایتم در RecyclerView
- حذف کردن یک ایتم از RecylerView با انیمیشن
- دانلود سورس کد پروژه صفحه اصلی اپ بازار
- کار با logCat و ایجاد انواع log
- کار با breakpoint ها و پیدا کردن آن ها در فایل های مختلف
- دیباگ کردن کامل پروژه با breakpoint ها
- انواع فرگمنت ها
- چرخه حیات فرگمنت ها
- روش اول پیاده سازی فرگمنت ها
- روش دوم پیدا سازی فرگمنت ها با کمک ترانزاکشن
- مفهوم بک استک
- تعویض فرگمنت از داخل یک فرگمنت
- ساخت یک فرگمنت درون یک فرگمنت دیگر
- فرگمنت ترنزکشن
- پس ارگومنت به فرگمنت
- دیالوگ فرگمنت
- باتن شیت فرگمنت
- ویو پیجر در اندروید
- گیت چیست
- نصب گیت
- آموزش کار کردن با گیت
- دستورات مختلف گیت
- کامیت زدن
- کار کردن با برنچ ها در گیت
- قرار دادن پروژه اندرویدی در گیت
- استفاده از سایت گیت هاب به عنوان یک ورژن کنترلر اندروید استادیو
- حرفه ای شدن روی مباحث گیت در اندروید استادیو
- آشنایی با Material Design
- کار با Coordinator و Toolbar
- پیاده سازی Navigation Drawer
- پیاده سازی Bottom Navigation
- کار با Material Card View
- طراحی صفحه Explore
- طراحی صفحه Trend
- طراحی صفحه Profile
- کار با انواع Scroll Flags در Toolbar
- کار با Collapsing Toolbar به صورت کامل
- کار با Fab و Extended Fab
- پیاده سازی Detail Activity
- کار با Sweet Alert Dialog
- آموزش SnackBar
- کار با Menu
- ساخت Chip
- طرز کار انیمیشن ها در انرید و چهار روش پیاده سازی آن ها
- Alpha Animation
- Scale Animation
- Translate Animation
- Rotate Animation
- Anim Set
- Lottie Animations
- جابجایی بین صفحات برنامه با انیمیشن های خاص
- استفاده از انیمیشن ها در RecyclerView
- آشنایی با اساس کار سیستم عامل اندروید
- ساخت یک ترد جدید در اندروید
- انجام پردازش های سنگین در ترد های دیگر
- پیاده سازی Ui پروژه
- کدنویسی پروژه
- پایگاه داده چیست
- انواع پایگاه داده های رابطه ای
- انواع RDBMS ها
- آشنایی با Sql
- آشنایی با sql
- آشنایی با ابزار های sql
- آشنایی با mySql
- دستورات show , use , drop
- دستورات Create , alter
- دستورات Insert , delete و update
- دستورات select , where , group by , count , …
- کار با Aggressive Functions
- دستورات Join
- بحث دیتابیس در اندروید
- کار با کتابخانه Room
- پیاده سازی گرفتن اطلاعات در دیتابیس و کوئری زدن
- عملیات Insert در دیتابیس لوکال
- عملیات Update در دیتابیس لوکال
- عملیات Delete در دیتابیس لوکال
- سرچ کردن اطلاعات در دیتابیس
- استفاده از Room به صورت Generic
- پروژه این فصل چیه؟
- طراحی نئومورفیسم چیه؟
- آماده کردن پیش نیاز ها
- طراحی صفحه اول پروژه
- طراحی صفحه دوم پروژه
- رو کد حرفه ای تر بشیم
- کار با Figma (هدیه)
- مفهوم سرور و Http
- این Json چیه خدایی؟
- کار با دیتاکلاس ها و json
- تبدیل json و دیتاکلاس و برعکس
- ساخت json object
- آموزش Retrofit
- رو Retrofit حرفه ای تر بشیم
- استارت پروژه دانی پول
- اوکی کردن تم و رنگ پروژه
- طراحی صفحه Merket
- طراحی صفحه Coin در ۳ جلسه
- از کجا api بگیریم؟
- کار با postman به طور کامل
- کدنویسی قسمت News
- کدنویسی قسمت Coins
- کدنویسی قسمت Statistics
- کدنویسی قسمت About
- دریافت اطلاعات چارت
- تکمیل پروژه
- انگیزه بگیریم 🙂
- این Spring Boot چیه؟
- مفهوم api نویسی
- ایجاد پروژه spring boot
- ایجاد Controller و پیاده سازی MVC
- پروژه اندرویدیمون چیه؟
- پیاده سازی MySql و عملیات Dao
- گرفتن همه اطلاعات از دیتابیس سرور
- ادد کردن یک آیتم جدید
- آپدیت کردن یک آیتم
- پاک کردن یک آیتم
- چجوری پروژه خودمون رو Deploy کنیم؟
- ساخت پروژه جدید و توضیحات آن
- انواع نوتیفیکیشن ها در اندروید
- Notification channel چیست
- ساخت نوتیفیکیش های مختلف به همراه آیکون و تم بندی
- ساخت یک پروژه جدید
- طراحی ui صفحه اصلی برنامه
- اضافه کردن باتن های موزیک قبلی و بعدی و پلی و پاز کردن
- اضافه کردن قابلیت Mute به پروژه
- اضافه کردن Slider
- ساخت پروژه به صورت کامل
- دانلود سورس کد پروژه
- ساخت یک پروژه جدید
- کار با VideoView
- کار با ExoPlayer
- کاستومایز کردن پلیرها
- دانلود سورس کد پروژه
- ساخت پروژه جدید
- مفهوم کار با File ها در برنامه نویسی اندروید
- پرمیژن های اندرویدی برای دسترسی به فایل ها در مکان های مختلف گوشی
- ساخت صفحه اصلی
- اضافه کردن پوشه جدید
- ساخت فایل داخل پوشه
- عملیات فیلتر کردن فایل ها داخل یک پوشه
- افزودن ویژگی Grid و Delete
- طراحی کامل پروژه
- دانلود سورس کد پروژه
- ساخت پروژه و توضیحات آن
- broadCastReceiver چیست و انواع آن
- -Context Registered Broadcast Receivers
- Manifest Declared Broadcast Receiver
- عملکرد سرویس های مختلف در اندروید
- محدودیت های اندروید برای استفاده از سرویس ها
- Background service in android
- Foreground service in android
- اصلا Work manager چیه؟
- ویژگی های اصلی Work Manager
- ورودی-خروجی توی Work Manager
- ایجاد محدودیت در انجام کار ها
- زمان بندی انجام کار ها
- رو Work Manager حرفه ای شیم!
- معماری نرم افزار چیه؟
- چرا باید از معماری استفاده کنیم؟
- معماری MVP چیه؟
- پیاده سازی Mvp
- پروژه عملی – پکیج بندی اولیه
- پروژه عملی – پیاده سازی Contract ها
- پروژه عملی – پیاده سازی Presenter
- پروژه عملی – پیاده سازی View
- رو Mvp حرفه ای تر بشیم 🙂
- راحتی کار با RxJava
- دستورات مختلف کتابخانه RxJava
- توابع فیلتر گذاری اطلاعات در RxJava
- Subscribe کردن به متد های مختلف در RxJava
- ترکیب RxJava و Retrofit
- کار با Create در RxJava
- یادگیری Subject ها در RxJava
- دانلود سورس کد این فصل
- معماری mvvm در اندروید
- ساختار پیاده سازی این معماری در اندروید
- Model
- View
- View-Model
- Mvvm + RxJava
- دانلود سورس کد این فصل
- Navigation component چیست؟
- کار با navController
- پروژه Navigatoin Component
- کار با Nested Graphs
- کار با Deep Link
- تغییر فرگمنت ها با استفاده از navigation component
- ارسال آرگومان با safeArgs
- Android Components
- LifeCycle Aware
- LiveData
- View-Model
- ساخت یک پروژه با Mvvm + Android Component به همراه سرور
- دانلود سورس کدها
- FireBase چیست؟
- مزیت های FireBase برای برنامه نویسان اندروید
- FireBase Analitycs
- پیاده سازی Push Notification
- مزیت های kotlin coroutines نسبت به Rxjava
- تفاوت Coroutine و thread
- Coroutine scope
- Main thread
- Synchronized in coroutines
- Asynchronized in coroutines
- استفاده به همراه Retrofit
- استفاده به همراه ViewModel در MVVM
- تزریق وابستگی چیست ؟
- آموزش تزریق وابستگی با Dagger۲
- آموزش تزریق وابستگی با Koin
- آموزش تزریق وابستگی با Hilt
- این Flow چیه؟
- نحوه ساختن Flow
- بحث lifeCycleAware بودن
- آموزش کامل StateFlow
- انجام کارا رو Dispatcher دیگه
- کار با collectLatest و collectIndexed
- جت پک کامپوز چیست؟
- ساختار یک پروژه کامپوزی
- استفاده از Button در کامپوز
- کار با Modifier
- کار با TextStyle
- کار با Surface
- استفاده از Alignment
- کار با Row
- کار با Column
- ترکیب علممون تا به اینجا 🙂
- پیاده سازی Dynamic Content در کامپوز
- کار با State ها
- کار با DataFlow – EventFlow
- کار با TextFields
- پیاده سازی JetpackCompose به همراه معماری MVVM
- کار با Toolbar و Scafold
- بحث Theme در جت پک کامپوز
- کار با انواع رنگ ها
- کار با انواع shape ها
- کار با Typography
- کار با LazyColumn (همان recyclerView قدیم)
- کار با Coil و لود کردن تصاویر به صورت async
- کار با Navigation compose
- پاس دادن Argument بین صفحات برنامه
- انگیزه بگیریم 🙂
- این پروژه چیه؟
- اضافه کردن کتابخونه ها
- اضافه کردن تم برنامه
- صحبت راجع به ui کلی برنامه و اینکه قراره چی بسازیم؟
- اضافه کردن navigation و تزریق وابستگی
- پیاده سازی صفحه IntroScreen
- پیاده سازی صفحه SignUpScreen
- پیاده سازی فرایند احراز هویت کاربران و آموزش JWT , OAuth2.0
- چک کردن ورودی های کاربر و وصل بودن اینترنت
- پیاده سازی صفحه MainScreen
- پیاده سازی صفحه ProductScreen
- پیاده سازی صفحه ProfileScreen
- پیاده سازی صفحه CartScreen
- پیاده سازی خرید و پرداخت
- پیاده سازی DeepLink و برگشت به برنامه از سمت مرورگر
- دیالوگ نتیجه خرید
- فوت و فن رزومه نویسی
- چیکار کنیم رزومه ما زودتر تایید بشه؟
- سیر تا پیاز مصاحبه شغلی
- انواع مصاحبه برنامه نویسی
- تجربیات مصاحبه من در اسنپ – بله – بیزاپ – ….
حقوق برنامه نویس ها چقدره؟ - فریلنسری از بدو ورود
- سر و کله زدن با کارفرما
- قرارداد بستن
- نمونه قرارداد های مناسب کار pdf