/Maajara

Group 3 Software Engineering Project

Primary LanguageJava

اپلیکیشن ماجرا

معرفی پروژه

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

هدف پروژه

این پروژه به هدف یادگیری مفاهیم درس مهندسی نرم‌افزار، به عنوان پروژه‌ی این درس و تحت اپلکیشن اندروید با متودولوژی Scrum پیاده سازی شده است.

اپلیکیشن

اپلیکیشن این پروژه با زبان Java و با معماری MVP برای سیستم عامل اندروید 6 به بالا پیاده سازی شده است.

سرور

سرور این پروژه با استفاده از جنگو(Django) و جنگو رست فریم‌ورک(Django REST framework)پیاده‌ سازی شده است.

تیم توسعه اپلیکیشن و طراحی رابط کاربری

  • محمد فرزان(اسکرام مستر تیم Android): طراحی UI/UX و Wireframe - مدیریت تسک‌ها - پیاده‌سازی اپلیکیشن
  • سارا کهتری: طراحی UI/UX و Wireframe - پیاده‌سازی اپلیکیشن
  • پریسا عسکرزاده: طراحی UI/UX و Wireframe - پیاده‌سازی اپلیکیشن

تیم توسعه سرور

  • محمد جواد جعفری(اسکرام مستر تیم Backend)
  • رضا رستگاری(اسکرام مستر کل تیم)
  • فاطمه شفیعی اردستانی

معیارهای کیفیت

قابلیت تغییر

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

قابل یادگیری بودن

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

محافظت در برابر خطا

در برنامه، از اشتباه‌های احتمالی کاربر، جلوگیری شده است. برای مثال کاربر اجازه نخواهد داشت که تاریخ شروع ماجرا را قبل از تاریخ کنونی وارد کند و یا تاریخ پایان ماجرا، پیش از شروع آن باشد.

امنیت

از token authentication بر ای احراز هویت کاربران استفاده شده است. همینطور سطوح دسترسی مختلفی برای کاربران مختلف در نظر گرفته شده است تا از دسترسی کاربران غیرمجاز به تعدادی از بخش‌ها جلوگیری گردد. همینطور به دلیل استفاده از token authentication از حملات CSRF جلوگیری شده است. علاوه بر موارد ذکر شده، با توجه به حساسیت اطلاعات هویتی کاربران، از حملات bruteforce نیز جلوگیری شده است.

تست پذیری

سعی شده تا حد امکان وابستگی بین ماژول‌های مختلف کم باشد تا بتوان با استفاده از test های مختلف خطاها ردیابی و رفع شوند.

اطلاعات بیشتر

سند معرفی پروژه

مشاهده رابط کاربری اپلیکیشن در فیگما