نرم‌افزار سفارشی · شهرداری، امور فرهنگی

رویدادیار شهرداری تهران: رویدادهای فرهنگی 22 منطقه روی یک سامانه

سامانه‌ی یکپارچه‌ی رویدادها و اماکن فرهنگی شهر تهران: زنجیره‌ی تأیید چندمرحله‌ای، اطلس فرهنگی روی نقشه، گزارش میدانی ژئوفنس‌شده و نظرسنجی شهروندی، سه کلاینت وب، موبایل و API روی یک هسته.

کارفرما
شهرداری تهران
حوزه
شهرداری، امور فرهنگی
سال
1404
وضعیت
در حال بهره‌برداری
  • تحلیل و کشف نیاز
  • طراحی تجربه و رابط کاربری
  • معماری نرم‌افزار
  • توسعه فرانت‌اند
  • توسعه بک‌اند و API
  • طراحی پایگاه داده
  • یکپارچه‌سازی با سیستم‌های دیگر
  • استقرار و DevOps
  • تست و تضمین کیفیت
  • پشتیبانی و توسعه مستمر

نتیجه در عدد

22
منطقه‌ی شهر تهران روی سامانه

با نواحی و محلات هر منطقه

3
کلاینت روی یک هسته

وب، اپلیکیشن موبایل و API

چالش

رویدادهای فرهنگی 22 منطقه‌ی تهران در سال به صدها برنامه می‌رسد، و هر برنامه پیش از اجرا از چند دست می‌گذرد: محتوا، بودجه، معاونت، ستاد.

مسئله چهار سر داشت. تأیید جایی گیر می‌کرد که کسی نمی‌دانست کجاست. اماکن فرهنگی. فرهنگسراها، سراهای محله، خانه‌های قرآن، بوستان‌ها، فهرست به‌روزی نداشتند که شهروند بتواند ببیند کجا چه کلاسی برگزار می‌شود. گزارش میدانی قابل استناد نبود: عکسی که معلوم نبود کجا و کِی گرفته شده. و ارزیابی عملاً انجام نمی‌شد، چون گرفتن نظر شهروند از خود برگزاری سخت‌تر بود.

یک محدودیت دیگر هم بود که در طراحی جدی گرفته شد: مأمور میدانی همیشه اینترنت پایدار ندارد، و اپی که با فرض اینترنت آزاد ساخته شود، در میدان می‌شکند.

راه‌حل

رویدادیار ساخته شد: یک بستر با سه کلاینت، پنل وب برای واحد فرهنگی و مناطق و ستاد، اپلیکیشن موبایل برای مأمور میدانی و شهروند، و یک API که هر دو از آن تغذیه می‌شوند.

چرخه‌ی رویداد با ماشین حالت در دل دامنه کنترل می‌شود: پیش‌نویس ← تأیید محتوا ← تأیید بودجه ← معاونت و ستاد ← ابلاغ به مناطق و اجرا ← ارزیابی ← اختتام. برنامه‌ها و زیرفعالیت‌ها نسخه‌بندی می‌شوند و تاریخچه‌ی تغییرات می‌ماند.

کنار آن اطلس فرهنگی عمومی نشست: اماکن با دسته‌بندی، تصاویر، امکانات و مختصات، روی نقشه و بدون نیاز به ورود برای شهروند، با گردش تأیید منطقه‌ای برای هر مکان. خدمات اماکن، کلاس، رزرو سالن و کتابخانه و کارگاه، عضویت کانون، روی همان اماکن سوار شد، با کلید فعال‌سازی جداگانه برای هر مکان.

گزارش میدانی با ژئوفنس و پنجره‌ی زمانی ثبت می‌شود و در صف آفلاین می‌نشیند تا شبکه برگردد؛ سنجش دسترسی روی سرور خودی تنظیم شد تا فیلترینگ سامانه را «آفلاین» گزارش نکند. ارزیابی با بانک سؤال و توکن یک‌بارمصرف انجام می‌شود، با پرسش‌های متفاوت از شهروند و از مجری.

زیر همه‌ی این‌ها یک لایه‌ی دسترسی نشست که در سازمانی با این ابعاد ضروری بود: سلسله‌مراتب جغرافیایی مناطق ← نواحی ← محلات در کنار سلسله‌مراتب سازمانی، مجوزهای مبتنی بر توانمندی. هر نقطه‌ی پایانی با یک توانمندی مشخص، نه با نقش خام، چندمستأجری، و رد حسابرسی روی هر دسترسی.

قابلیت‌های کلیدی

  • زنجیره‌ی تأیید چندمرحله‌ای

    محتوا، بودجه، معاونت و ستاد، با گیت‌چک‌لیست هر مرحله و برگشت با دلیل ثبت‌شده.

  • اطلس فرهنگی روی نقشه

    فرهنگسرا، سرای محله، خانه‌ی قرآن و بوستان با تصویر، امکانات و مختصات، برای شهروند، بدون نیاز به ورود.

  • ثبت‌نام، رزرو و عضویت

    کلاس‌های آموزشی، رزرو سالن و کارگاه و مشاوره‌ی رایگان، و عضویت کانون، قابل فعال‌سازی برای هر مکان.

  • گزارش میدانی ژئوفنس‌شده

    عکس فقط در محل و در پنجره‌ی زمانی رویداد؛ صف آفلاین و همگام‌سازی خودکار.

  • نظرسنجی شهروندی با توکن

    بانک سؤال و طرح‌های ارزیابی، با توکن یک‌بارمصرف و تفکیک مخاطب شهروند و مجری.

  • دسترسی ریزدانه و حسابرسی

    مجوز مبتنی بر توانمندی، دامنه‌ی جغرافیایی و سازمانی، چندمستأجری و رد حسابرسی کامل.

  • تجربه‌ی شهروند

    تقویم جلالی، «نزدیک من» با GPS، جشنواره‌ها و مسابقه‌ها و سفیران فرهنگی.

  • به‌روزرسانی درون‌برنامه‌ای

    اپ نسخه‌ی جدید را از سرور سازمان می‌گیرد و نصب می‌کند، با پشتیبانی از به‌روزرسانی اجباری.

معماری و فناوری

سبک معماری
مونولیت
الگوها
معماری پاک (Clean)طراحی دامنه‌محور (DDD)

Clean Architecture با اصول دامنه‌محور: هسته‌ی کسب‌وکار، موجودیت‌ها، ماشین حالت رویداد و قواعد، در مرکز و بدون وابستگی به بیرون؛ لایه‌ی کاربرد با سرویس‌ها، DTOها و اعتبارسنجی FluentValidation دور آن؛ و زیرساخت و ارائه در بیرونی‌ترین لایه‌ها. دلیلش ساده است: این سامانه از روز اول سه کلاینت داشت و قرار بود کلاینت‌های دیگری هم اضافه شوند؛ اگر قواعد در کنترلرها نوشته می‌شدند، با هر کلاینت جدید دوباره نوشته می‌شدند.

مجوزها مبتنی بر توانمندیاند نه نقش: هر نقطه‌ی پایانی با یک توانمندی مشخص محافظت می‌شود، دامنه‌ی جغرافیایی و سازمانی کاربر روی همان اعمال می‌شود، و هر دسترسی در رد حسابرسی می‌نشیند. در سازمانی با 22 منطقه و چند لایه‌ی ستادی، تفکیک دسترسی با نقش خام شدنی نیست.

زیرساخت: Entity Framework Core روی SQL Server، کارهای زمان‌بندی‌شده با Hangfire، ذخیره‌سازی شیءگرا برای تصاویر، لاگ متمرکز با Seq، و داده‌ی مکانی با NetTopologySuite. که همان چیزی است که ژئوفنس گزارش میدانی و «نزدیک من» روی آن کار می‌کنند. استقرار روی Docker Compose پشت nginx، با راه‌اندازی خودکار و افزایشی اسکیمای داده هنگام بالا آمدن سرویس.

فرانت‌اند
React.jsViteTypeScriptLeaflet

پنل وب واحد فرهنگی، مناطق و ستاد

فرانت‌اند
React NativeExpo

اپلیکیشن میدانی و شهروندی، با کار آفلاین

بک‌اند و API
.NET 10ASP.NET CoreC#REST APIClean Architecture

REST نسخه‌دار، JWT، مجوز مبتنی بر توانمندی، چندمستأجری

پایگاه داده
SQL ServerEntity Framework Core
زیرساخت و استقرار
HangfireNetTopologySuiteSeq

کارهای زمان‌بندی‌شده، داده‌ی مکانی و ژئوفنس، لاگ متمرکز

CI/CD و مانیتورینگ
Dockernginx

Docker Compose پشت nginx، راه‌اندازی خودکار اسکیما

یکپارچه‌سازی‌ها

  • ذخیره‌سازی شیءگرا برای تصاویر رویداد و اماکن
  • نقشه و داده‌ی مکانی برای اطلس و ژئوفنس

پروژه‌ی مشابهی در ذهن دارید؟

یک تماس پانزده دقیقه‌ای کافی است تا بگوییم چه چیزی لازم است، چقدر طول می‌کشد و از کجا شروع کنیم.

بنر اصلی سایتکار شاخص

نرم‌افزار سفارشی · فروشگاه اینترنتی

روبوکد؛ سامانه جامع آموزش، آزمون آنلاین، فروشگاه و مدیریت نمایندگان

طراحی و توسعه سامانه یکپارچه روبوکد با هدف مدیریت و ارائه خدمات آموزشی در یک بستر واحد. این سامانه شامل دوره‌های آنلاین و حضوری، آزمون و صدور کارنامه، فروشگاه با قابلیت قیمت‌گذاری عمده، صدور گواهی قابل استعلام با QR، پنل اختصاصی نمایندگان و مدرسان و سیستم مدیریت پورسانت است.

  • .NET 10
  • C#
  • Entity Framework Core
  • MediatR

مؤسسه آموزشی روبوکد · 1404

صفحه‌ی اصلی سایت کلینیک زیبایی شایلین، ساخته‌ی ایده‌پوکار شاخص

نرم‌افزار سفارشی

کلینیک زیبایی شایلین: رزرو آنلاین، مجله‌ی تخصصی و یک پنل مدیریت

سامانه‌ی جامع کلینیک زیبایی شایلین روی .NET 10 و Next.js: رزرو آنلاین با انتخاب خدمت و پزشک و تقویم شمسی، گالری قبل و بعد، مجله‌ی تخصصی با صفحه‌ساز، وب‌اپلیکیشن نصب‌شدنی با اعلان Web Push، و یک پنل مدیریت برای همه‌ی این‌ها.

  • Next.js
  • React.js
  • TypeScript
  • Vite

کلینیک زیبایی شایلین · 1404

بنر صفحه اصلی سایتکار شاخص

نرم‌افزار سفارشی

کلینیک مشاوره روشا: سامانه‌ی رزرو تا تسویه‌ی مشاور، روی وردپرس اختصاصی

سامانه‌ی یکپارچه‌ی مدیریت کلینیک روان‌شناسی روی وردپرس: رزرو آنلاین با قفل ضد تداخل، پرداخت و بیعانه، میز پذیرش 15 ماژولی، پنل مشاور با محاسبه‌ی سهم، و گزارش مالی با PDF فارسی. بدون افزونه‌ی رزرو یا قالب آماده.

  • WordPress
  • PHP
  • REST API
  • MariaDB

کلینیک مشاوره روشا · 1404