Profile Picture Node.js Icon

مهدی زارعی

من یک بک‌اند دولوپر Node.js هستم که بیشتر از دو سال هست با تکنولوژی‌های مرتبط با بک‌اند کار می‌کنم.یکی از ویژگی‌های متمایز من، رویکرد تحلیلی و آموزشی نسبت به باگ‌هاست و به جای کلافگی از وجود ERROR ها، اون‌ها رو به عنوان فرصتی برای یادگیری و رشد می‌بینم.

مهارت‌های فنی

Node.js۳ سال
Express.js۳ سال
MongoDB۳ سال
Redis۳ سال
MySQL۳ سال
Sequelize۳ سال
TypeScript۲ سال
NestJS۲ سال
PostgreSQL۲ سال
TypeORM۲ سال
GraphQLدر حال یادگیری
WebSocketدر حال یادگیری

سوابق شغلی

فریلنسر | پروژه‌های مستقل

مهر ۱۴۰۰ - تاکنون

  • توسعه پلتفرم‌های وب با Node.js و MongoDB.
  • پیاده‌سازی سیستم‌های پرداخت آنلاین.
  • پیاده‌سازی فروشگاه های آنلاین به همراه سبد خرید و درگاه پرداخت زرین پال و زیبال.
  • پیاده‌سازی سامانه رزو اتاق هتل و مکانیزم جلوگیری از رزرو رقابتی.
  • پیاده‌سازی فروشگاه شرکت فروش فولاد و آهن آلات.
  • پیاده‌سازی فروشگاه شرکت فروش روغن و قطعات یدکی خودرو.
  • پیاده‌سازی سامانه آنلاین رزرو نوبت کلنیک روانشناسی و جلوگیری از رزرو رقابتی.
  • پیاده سازی فروشگاه کافه رستوران به همراه سبد خرید و درگاه پرداخت.

پروژه‌ها و نمونه کار ها

کلینیک روانشناسی (کلیک کنید)

این پروژه یک سامانه مدیریت کلینیک روانشناسی است که هدف،ایجاد بستری کارآمد برای رزرو آنلاین جلسات مشاوره، مدیریت کاربران و روانشناسان، انتشار مقالات روانشناسی، و برقراری ارتباط سریع و امن بین کاربران و روانشناسان می‌باشد.پس از ثبت موفق نوبت مشاوره، پیامک تأیید به کاربر و روانشناس مربوطه ارسال می‌شود تا هماهنگی دقیق‌تری صورت گیرد. این سامانه با پیاده‌سازی مکانیزم جلوگیری از رزرو رقابتی (Prevent Double Booking)، اطمینان می‌دهد که هر بازه‌ی زمانی فقط توسط یک کاربر رزرو شود و از تداخل نوبت‌ها جلوگیری گردد. در این سامانه، کاربران می‌توانند نظرات دیگران درباره روانشناسان را مطالعه کنند.همچنین امکان مشاهده، لایک و ارسال کامنت برای مقالات روانشناسی منتشر شده فراهم گردیده است تا تعامل بیشتری میان کاربران و محتوای علمی برقرار گردد.
تکنولوژی و ابزار ها : Node.js — Express.js — MongoDB(Transactions) — Redis — JWT — Node — Schedule — Joi


فودینو(کلیک کنید)

یک پروژه بک‌اند کاملاً ماژولار و قابل مقیاس برای یک کافه-رستوران آنلاین که با TypeScript و Express.js ساخته شده است. این بک‌اند سیستم پرداخت الکترونیکی کاملی را ارائه می‌دهد که کاربران می‌توانند هم غذا و هم نوشیدنی سفارش دهند، از طریق OTP یا رمز عبور احراز هویت کنند، و با استفاده از درگاه زرین پال آنلاین پرداخت انجام دهند .
تکنولوژی و ابزار ها: Node.js — Express.js — TypeScript — MongoDB — Redis — JWT — Zod


فروشگاه اینترنتی (کلیک کنید)

یک فروشگاه اینترنتی مشابه وبسایت دیجی‌کالا با قابلیت چند فروشندگی، که در آن کاربران می‌توانند از طریق شماره موبایل و دریافت کد یکبار مصرف یا اکانت گوگل احراز هویت شوند. کاربران امکان مشاهده و مطالعه نظرات سایر کاربران و ثبت نظر شخصی برای هر محصول را دارند. همچنین می‌توانند برای محصولات یادداشت‌های خصوصی ثبت کنند؛ قابلیتی که با الهام از وبسایت دیوار طراحی شده است. امکان افزودن محصولات به سبد خرید و پرداخت آنلاین از طریق درگاه زرین‌پال به صورت کامل فراهم شده است.علاوه بر این، کاربران می‌توانند محصولات را با استفاده از فیلترهای پیشرفته و سیستم صفحه‌بندی (Pagination) به راحتی جستجو و دریافت کنند.
تکنولوژی و ابزار ها : Node.js — Express.js — Passport.js — MongoDB — Redis — JWT — Yup


پروژه وبلاگ مقاله نویسی (کلیک کنید)

یک پلتفرم وبلاگ‌نویسی کامل و حرفه‌ای، الهام‌گرفته از Virgool.io، توسعه‌یافته با فریمورک NestJS. این بک‌اند امکاناتی مانند احراز هویت امن با OTP و گوگل، مدیریت مقالات، دسته‌بندی، و قابلیت‌های پیشرفته مربوط به پروفایل کاربری را فراهم می‌کند.
تکنولوژی و ابزار ها: Node.js — Nest.js — Postgresql — Redis — JWT — Multer — Class Validator


نسخه NestJS — سامانه مدیریت کلینیک روانشناسی (کلیک کنید)

این نسخه با NestJS توسعه داده شده و شامل تمام قابلیت‌های نسخه Express.js است، اما با معماری ماژولارتر، ساختاریافته‌تر و حرفه‌ای‌تر. در این نسخه از تراکنش‌های PostgreSQL استفاده شده تا عملیات حساس مانند رزرو جلسات، به‌صورت کاملاً ایمن و اتمیک انجام شود و هیچ‌گونه تداخل یا رزرو همزمان رخ ندهد. برای مدیریت پیامک‌ها، سیستم از صف‌های پردازش (Bull Queue) استفاده می‌کند که امکان ارسال انبوه پیامک و انجام پردازش‌های پس‌زمینه را با کارایی بالا فراهم می‌کند. همچنین یک کرون‌جاب زمان‌بندی‌شده هر ۱۰ دقیقه اجرا می‌شود تا وضعیت رزروهای پایان‌یافته را به‌صورت خودکار به حالت Done تغییر دهد.
تکنولوژی و ابزار ها: NestJS — PostgreSQL (Transactions) — Redis — JWT — Bull Queue — Cron Jobs — TypeScript


نسخه NestJS — پروژه کافه‌–رستوران آنلاین (ورژن ۲)

این نسخه، ریفکتور‌شده‌ی کامل پروژه قبلی است که در ابتدا با Express.js + TypeScript توسعه داده شده بود و اکنون با NestJS بازطراحی شده تا به یک سیستم ماژولار، مقیاس‌پذیر و استاندارد تبدیل شود. معماری جدید با استفاده از ساختار لایه‌ای NestJS، خوانایی، توسعه‌پذیری و تست‌پذیری پروژه را به‌طور چشمگیری افزایش می‌دهد. در نسخه NestJS، سیستم پرداخت الکترونیکی، فرآیندهای سفارش، احراز هویت و مدیریت کاربران همچنان وجود دارند اما با زیرساختی حرفه‌ای‌تر. برای دقت بیشتر در عملیات مالی و سفارش‌ها، از تراکنش‌های PostgreSQL استفاده شده تا تمام مراحل سفارش‌گذاری، پرداخت و ثبت نهایی بدون هیچ خطا یا ناسازگاری انجام شوند.کاربران می‌توانند غذای اصلی، نوشیدنی و سایر آیتم‌ها را سفارش دهند، از طریق OTP یا رمز عبور احراز هویت شوند، و پرداخت آنلاین را از طریق درگاه زرین‌پال تکمیل کنند. این نسخه دقیقاً تمامی قابلیت‌های نسخه قبلی را پوشش می‌دهد و در عین حال ساختار و پرفورمنس آن به‌طور کامل بهبود یافته است.
تکنولوژی و ابزار ها: NestJS — PostgreSQL (Transactions) — Redis — JWT — TypeScript


Trendora — بک‌اند فروشگاه لباس (Node.js + Express.js)

Trendora یک بک‌اند کامل برای فروشگاه اینترنتی پوشاک است که با Node.js و Express.js توسعه داده شده و تمامی بخش‌های ضروری یک فروشگاه واقعی را پشتیبانی می‌کند؛ از احراز هویت تا مدیریت محصول، پرداخت، و سبد خرید. احراز هویت کاملاً بدون رمز عبور انجام می‌شود و کاربران با OTP وارد می‌شوند. این کدها در Redis ذخیره شده و امنیت ورود با JWT، رفرش‌توکن امن و گاردهای نقش (RBAC) مدیریت می‌شود. سیستم محصولات شامل بارگذاری تصویر، صفحه‌بندی، و مدیریت موجودی است. کاربران می‌توانند محصولات را به سبد خرید اضافه کرده و پرداخت را از طریق زرین‌پال انجام دهند. اطلاعات سفارش‌ها پس از پرداخت موفق ثبت می‌شوند. برای دقت بیشتر در عملیات حساس سفارش‌گذاری، از تراکنش‌های MySQL (Sequelize) استفاده شده تا مراحل ثبت سفارش و پرداخت کاملاً اتمیک باشند. Redis نیز برای OTP، رفرش‌توکن و داده‌های موقت استفاده شده است.
تکنولوژی‌ و ابزار ها: Node.js — Express.js — MySQL (Sequelize + Transactions) — Redis — Multer — JWT — Joi

راه های ارتباطی