نرمافزار سفارشی · شهرداری — امور فرهنگی
رویدادیار شهرداری تهران: رویدادهای فرهنگی 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، راهاندازی خودکار اسکیما
یکپارچهسازیها
- ذخیرهسازی شیءگرا برای تصاویر رویداد و اماکن
- نقشه و دادهی مکانی برای اطلس و ژئوفنس
خدمات و محصولات مرتبط
پروژهی مشابهی در ذهن دارید؟
یک تماس پانزده دقیقهای کافی است تا بگوییم چه چیزی لازم است، چقدر طول میکشد و از کجا شروع کنیم.
پروژههای مشابه
نرمافزار سفارشی · فروشگاه اینترنتی
روبوکد: آموزشگاه، آزمون آنلاین، فروشگاه و شبکهی نمایندگان روی یک سامانه
سکوی یکپارچهی مؤسسهی آموزشی روبوکد روی .NET 10: دورهی آنلاین و حضوری، آزمون با کارنامه، فروشگاه با قیمتگذاری عمده، صدور گواهی با استعلام 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

