تولدانه

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

دسترسی خودکار به دوستان کاربران ، درج مطلب در دیوار کاربر و دوستان وی ، بهره مندی از سیستم اعلان Facebook برای خبر رسانی ، ارسال غیر مستقیم ایمیل به کاربران ، قرار گیری در پروفایل کاربر برخی از امکانات اختصاصی این برنامه در Facebook هستند.

از جمله امکانات این برنامه :

  • چند زبانه
  • پشتیبانی از تقویم میلادی و جلالی
  • تعطیلات رسمی
  • ارسال و سفارشی سازی کارت تبریک
  • درج غیر مستقیم رخداد ها بر روی دیوار کاربر و دوستان
  • اعلان رویدادهای مختلف از طریق Facebook (ایمیل ، Notification)
  • قرار گیری در صفحه پروفایل کاربر در Facebook و Application Tab
  • فرم پشتیبانی مستقیم
  • اعلان تولدها
  • دعوت دوستان به استفاده از برنامه
  • نمایش آمار استفاده بخش های مختلف
  • تعریف رویدادها سفارشی
  • تبدیل تاریخ جلالی به میلادی و بالعکس
  • پشتیبانی از تکنولوژی AJAX
  • بهینه سازی شده برای سرعت پایین اینترنت
  • ...

به عنوان اولین نرم افزار Facebook که نوشتم و با وجود آنکه در زمان توسعه آن روی چند پروژه دیگر نیز کار می کردم به نظرم نتیجه کار خیلی خوب از آب در آمد.

برنامه ریزی این بود که برنامه وابسته به Facebook نباشد تا بتوان بعدا بتوان هم به شکل مستقل از آن استفاده نمود و هم در سایر شبکه های اجتماعی نیز آن را مجتمع نمود. بر همین اساس معماری پیاده سازی شده کاملا مستقل است و ارتباط آن با API سایت Facebook تنها از طریق یک به اصطلاح آداپتور است. این به این معنا است که امکان توسعه آداپتورهای جدید برای مجتمع سازی با سایر سرویس ها نیز وجود دارد.

در آن زمان یکی از تصمیمات درستی که گرفته شد استفاده از Inline Frame به جای FBML بود. چون FBML علاوه بر محدودیت های بسیاری که داشت کار توسعه را نیز زمان بر می کرد. البته در بعضی موارد نیاز بود که حتما از FBML استفاده شود (مانند باکس برنامه در صفحه پروفایل) که با استفاده از Template Engine این قسمت ها نیز از منطق اصلی جدا نگه داشته شد.

مطلب دیگر واسط کاربری برنامه بود که علاوه بر سادگی استفاده سعی شده بود که تا حد امکان کم حجم نیز باشد. برای این منظور از دو کلاس پیشرفته که در آن زمان به تازگی توسعه داده بودم استفاده کردم. کلاس اول Optimizer بود که وظیفه آن بهینه سازی و فشرده سازی خودکار فایل ها CSS و Javascript بود و دیگری AjaxEverwhere که امکان استفاده گسترده و آسان Ajax را در کلیه بخش ها سایت میسر نمود. هر دو بخشی از کتابخانه کد [#794] بودند.

برنامه همچنان فعال است در نتیجه جزییات فنی بیشتری نمی توانم ارائه کنم.

مشخصات

تصاویر بیشتر