اپلیکیشن اندرویدی فلشکارت آموزشی ساخت سیستم های Appointment Scheduling Platform Backend با اکسپرس.js
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره ساخت سیستم های Appointment Scheduling Platform Backend با اکسپرس.js
موضوع کلی: برنامه نویسی
موضوع میانی: اکسپرس (Express.js)
📋 سرفصلهای دوره
- 1. مقدمه و آمادهسازی محیط
- 2. معرفی دوره و پروژه نهایی: پلتفرم زمانبندی قرار ملاقات
- 3. مروری بر معماری سیستمهای Backend مدرن
- 4. Node.js چیست و چرا از آن استفاده میکنیم؟
- 5. مروری بر مفاهیم کلیدی جاوا اسکریپت: Asynchronous, Promises, Async/Await
- 6. نصب و راهاندازی Node.js و NPM
- 7. آشنایی با ابزارهای ضروری: VS Code و Postman
- 8. راهاندازی پروژه جدید با `npm init`
- 9. مبانی Express.js
- 10. اکسپرس چیست و چه مشکلاتی را حل میکند؟
- 11. ساخت اولین سرور اکسپرس
- 12. آشنایی با ساختار درخواست (Request) و پاسخ (Response)
- 13. مسیریابی (Routing) مقدماتی: GET, POST, PUT, DELETE
- 14. کار با پارامترهای مسیر (Route Parameters)
- 15. کار با کوئری استرینگها (Query Strings)
- 16. آشنایی با Middleware و کاربردهای آن
- 17. پردازش دادههای JSON با Middleware داخلی اکسپرس
- 18. ساخت یک Middleware سفارشی برای لاگگیری درخواستها
- 19. اتصال به پایگاه داده و مدلسازی دادهها
- 20. مقدمهای بر پایگاههای داده NoSQL و MongoDB
- 21. راهاندازی MongoDB به صورت لوکال یا با MongoDB Atlas
- 22. معرفی Mongoose به عنوان یک ODM
- 23. اتصال به پایگاه داده MongoDB از طریق Mongoose
- 24. طراحی و ساخت Schema و Model برای کاربران (Users)
- 25. طراحی و ساخت Schema و Model برای خدمات (Services)
- 26. طراحی و ساخت Schema و Model برای ارائهدهندگان خدمات (Providers)
- 27. آشنایی با انواع دادهها و اعتبارسنجی (Validation) در Mongoose
- 28. ایجاد ارتباط بین مدلها با Population
- 29. سیستم مدیریت کاربران و احراز هویت
- 30. طراحی ساختار API برای مدیریت کاربران
- 31. کنترلر ثبت نام کاربر جدید (User Registration)
- 32. هش کردن رمزهای عبور با استفاده از `bcrypt`
- 33. کنترلر ورود کاربر (User Login)
- 34. مقایسه رمز عبور وارد شده با رمز هش شده
- 35. مقدمهای بر توکنهای وب JSON یا JWT
- 36. تولید JWT پس از ورود موفق کاربر
- 37. ایجاد Middleware برای محافظت از مسیرهای خصوصی (Protected Routes)
- 38. بررسی و اعتبارسنجی JWT در درخواستهای ورودی
- 39. پیادهسازی قابلیت خروج از سیستم (Logout)
- 40. API دریافت اطلاعات پروفایل کاربر فعلی
- 41. API بهروزرسانی اطلاعات پروفایل کاربر
- 42. مدیریت خدمات و ارائهدهندگان (Providers)
- 43. مدلسازی رابطه بین Provider و Service
- 44. API برای ایجاد یک سرویس جدید (مخصوص ادمین)
- 45. API برای دریافت لیست تمام سرویسها
- 46. API برای بهروزرسانی اطلاعات یک سرویس
- 47. API برای حذف یک سرویس
- 48. API برای مرتبط کردن سرویسها به یک Provider
- 49. API برای یافتن Provider هایی که یک سرویس خاص را ارائه میدهند
- 50. پیادهسازی جستجو و فیلتر برای سرویسها
- 51. منطق اصلی: مدیریت زمانهای در دسترس و رزرو قرار
- 52. طراحی مدل داده برای زمانهای کاری Provider (Availability)
- 53. API برای تنظیم ساعات کاری هفتگی توسط Provider
- 54. API برای تعریف یا حذف یک بازه زمانی خاص به عنوان استثنا
- 55. منطق اصلی: تولید اسلاتهای زمانی قابل رزرو برای یک روز مشخص
- 56. در نظر گرفتن قرارهای رزرو شده قبلی در تولید اسلاتها
- 57. در نظر گرفتن زمان بافر (Buffer Time) بین قرارها
- 58. API برای دریافت اسلاتهای زمانی آزاد یک Provider در یک تاریخ مشخص
- 59. مدیریت مناطق زمانی (Time Zones) در زمانبندی
- 60. طراحی Schema و Model برای قرارها (Appointments)
- 61. مدیریت قرارها (Appointments)
- 62. API برای رزرو یک قرار جدید توسط کاربر
- 63. پیادهسازی منطق اتمیک برای رزرو (ایجاد قرار و اشغال کردن اسلات)
- 64. API برای مشاهده قرارهای آینده و گذشته توسط کاربر
- 65. API برای لغو یک قرار توسط کاربر
- 66. API برای مشاهده برنامه کاری روزانه/هفتگی توسط Provider
- 67. API برای تایید (Confirm) یک قرار توسط Provider
- 68. API برای لغو (Cancel) یک قرار توسط Provider
- 69. پیادهسازی وضعیتهای مختلف برای قرار (در انتظار، تایید شده، لغو شده، انجام شده)
- 70. منطق تغییر زمان قرار (Rescheduling)
- 71. کنترل دسترسی مبتنی بر نقش (Role-Based Access Control)
- 72. مباحث پیشرفته و بهترین شیوهها
- 73. بازطراحی ساختار پروژه: لایههای Service، Controller و Model
- 74. پیادهسازی یک Middleware مرکزی برای مدیریت خطاها
- 75. ایجاد کلاسهای خطای سفارشی (Custom Error Classes)
- 76. اعتبارسنجی ورودیهای کاربر با کتابخانه `express-validator`
- 77. مدیریت متغیرهای محیطی با `dotenv`
- 78. جداسازی تنظیمات برای محیطهای توسعه، تست و پروداکشن
- 79. پیادهسازی صفحهبندی (Pagination) برای لیستهای طولانی
- 80. پیادهسازی مرتبسازی (Sorting) و فیلترینگ پیشرفته در API
- 81. ویژگیهای Real-time و سیستم اطلاعرسانی
- 82. مقدمهای بر ارسال ایمیل با Node.js
- 83. راهاندازی سرویس ایمیل با Nodemailer و SendGrid
- 84. ارسال ایمیل تایید پس از رزرو موفق قرار
- 85. ارسال ایمیل اطلاعرسانی هنگام لغو قرار
- 86. مقدمهای بر WebSockets با Socket.io
- 87. ادغام Socket.io با سرور اکسپرس
- 88. ارسال آپدیتهای آنی به کلاینت (مثال: بهروزرسانی تقویم Provider)
- 89. تستنویسی برای API
- 90. مقدمهای بر اهمیت تست در توسعه نرمافزار
- 91. راهاندازی محیط تست با Jest و Supertest
- 92. نوشتن اولین تست واحد (Unit Test)
- 93. نوشتن اولین تست یکپارچهسازی (Integration Test) برای یک Endpoint
- 94. شبیهسازی (Mocking) توابع و ماژولها در Jest
- 95. راهاندازی پایگاه داده مجزا برای تستها
- 96. تست کردن مسیرهای نیازمند احراز هویت
- 97. محاسبه پوشش تست (Test Coverage)
- 98. استقرار و آمادهسازی برای محیط پروداکشن
- 99. مقدمهای بر کانتینرسازی با Docker
- 100. نوشتن یک `Dockerfile` برای اپلیکیشن اکسپرس
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.