پروژه باز
ترکیبی از قیمت و کیفیت اهمیت دارد.انجام پروژه با نست جی اس و ربیت ام کیو
ایجاد شده توسط
ساخت سیستمی برای صدور فاکتور و گزارش فروش روزانه
مهارتهای مورد نیاز:
NestJS
MongoDB
RabbitMQ
Cron Jobs
RESTful APIs
ارسال ایمیل
تست (واحد و یکپارچه)
سناریو:
شما باید سیستمی بسازید که کاربران بتوانند فاکتورهای مربوط به تراکنشهای فروش را ایجاد کنند. این سیستم به صورت خودکار یک گزارش خلاصه فروش روزانه را در ساعت ۱۲ ظهر هر روز تولید کرده و از طریق RabbitMQ به صف ارسال کند. یک سرویس جداگانه مصرفکننده این پیامها را دریافت کرده و ایمیل حاوی گزارش را ارسال میکند.
جزئیات تسک
1. سرویس ایجاد فاکتور:
راهاندازی پروژه:
یک پروژه NestJS جدید ایجاد کنید.
MongoDB را برای ذخیره دادهها ادغام کنید.
طراحی اسکیمای MongoDB:
مدل فاکتور را بر اساس فیلدهای زیر طراحی کنید:
customer (رشته): نام یا شناسه مشتری
amount (عدد): مبلغ کل فاکتور
reference (رشته): کد مرجع فاکتور
date (تاریخ): تاریخ ایجاد فاکتور
items (آرایهای از آبجکتها): هر آیتم شامل:
sku (رشته): شناسه یکتا برای آیتم
qt (عدد): تعداد آیتم
توسعه REST API:
ایجاد اندپوینتهای زیر:
POST /invoices: برای ایجاد یک فاکتور جدید
GET /invoices/:id: دریافت جزئیات یک فاکتور بر اساس ID
GET /invoices: دریافت لیست تمام فاکتورها (با امکان فیلتر براساس محدوده زمانی)
تست:
نوشتن تستهای واحد برای منطق ایجاد و بازیابی فاکتور
نوشتن تستهای یکپارچه برای اندپوینتهای REST API با استفاده از Supertest
2. گزارش خلاصه فروش روزانه:
راهاندازی Cron Job:
یک Cron Job برای اجرای روزانه در ساعت ۱۲ ظهر پیادهسازی کنید.
عملکرد Cron Job:
محاسبه فروش کل روز
محاسبه تعداد کل فروختهشده از هر آیتم (براساس SKU)
آمادهسازی یک گزارش خلاصه
ادغام RabbitMQ:
گزارش خلاصه فروش روزانه را به صفی به نام daily_sales_report در RabbitMQ ارسال کنید.
پیام شامل اطلاعات زیر باشد:
مجموع مبلغ فروش
خلاصه فروش هر آیتم (SKU و تعداد کل فروختهشده)
3. سرویس مصرفکننده برای ارسال ایمیل:
ایجاد سرویس جداگانه (email-sender):
RabbitMQ را برای مصرف پیامها از صف daily_sales_report تنظیم کنید.
عملکرد مصرفکننده:
دریافت گزارش خلاصه فروش
ارسال ایمیل شامل گزارش (میتوانید ارسال ایمیل را شبیهسازی کنید یا از سرویسهایی مثل SendGrid استفاده کنید)
تست:
نوشتن تستهای واحد برای پردازش پیام و ارسال ایمیل
نیازمندیهای فنی:
سرویس ایجاد فاکتور:
طراحی صحیح اسکیمای MongoDB و REST API
Cron Job برای تولید گزارش روزانه
RabbitMQ برای ارسال گزارش خلاصه فروش
سرویس مصرفکننده (ارسال ایمیل):
RabbitMQ برای پردازش گزارشها
پیادهسازی شبیهسازیشده یا واقعی ارسال ایمیل
عمومی:
استفاده از Docker یا Docker Compose برای تنظیم و اجرای ساده هر دو سرویس
مدیریت خطاها و لاگنویسی مناسب در هر دو سرویس
پوششدهی کامل تستها برای عملکردهای کلیدی و شرایط خاص
این پروژه روی گیتهاب بخشیش انجام شده میتونید همون رو کمک کنید تکمیلش کنیم
جاوا اسکریپت (JavaScript)
الگوریتم
زمان باقیمانده برای ارسال پیشنهاد
پیشنهادها1
زمان باقیمانده برای ارسال پیشنهاد
بودجه کارفرما
پیشنهادها1
فریلنسرهایی که در این پروژه پیشنهاد ارسال کردهاند
آخرین پروژه های توسعه نرمافزار و آیتی
projects