بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

راهنمایی در مورد ساخت چنین نرم افزار هایی

مدیریت گفتگو
MJZ376 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام به همه ی دوستان

میخواستم بدونم برنامه هایی که مسابقه بین کاربران برگزار میکنن یا در کل نرم افزار هایی که به صورت پرسش و پاسخ هستن

مثل برنامه های زیر

نت رای   -    Quiz of kings    -   چهار                                       

به چه صورت ساخته میشن؟

برای ساختشون باید چه چیزهایی رو بلد بود؟

یه راهنمایی کلی راجب ساخت همچین برنامه هایی میخوام

ممنون از همه                            

 

نظرات

000000 10 سال پیش
باید همه چی بلد باشی چون برنامه هایی که گفتی خیلی پیچیده ان ولی با تلاش میتونی انجام بدی
MJZ376 10 سال پیش
میدونم سطح برنامه ها بالاست ولی جواب اون سوال هایی که پرسیدم رو میخوام
MJZ376 10 سال پیش
کسی هست در این باره راهنمایی کنه؟
amirhossein1376 10 سال پیش
علاوه بر توانایی برنامه نویسی باید مدیریت sql رو بلد باشید تا بدوگید دیتابیس ها چجوری باید ساخته بشن . این خیلی نکته مهمیه
hamed 10 سال پیش
معمولا ساختار عملکردی این اپلیکیشن ها اونقدرها هم سخت نیست. متاسفانه فعلا فرصت نصب اون ها را ندارم تا دقیق براتون توضیح بدم (شاید در چند روز آینده) اما الگوریتم ها زیاد سخت نیستن. چیزی که در این اپ ها مهمه ایجاد ساختار استاندارد برای سمت سرور و دیتابیس هست چرا که میزان اطلاعات آن ها به سرعت زیاد می شه و با توجه به تعداد کاربران زیاد پاسخ دهی به درخواست های زیادی باید انجام بشه. همینطور حفظ امنیت اطلاعات لاگ این کاربران شاید بخشی باشه که کمی در آموزش های سایت ضعیفه و در اون به مشکل بر بخورید وگرنه از پس بقیش به راحتی بر می آیید.

پاسخ‌ها 1

hamed 10 سال پیش

هر چند هنوز برنامه ها را نصب نکردم اما گفتم برای اینکه سادگی کار را لممس کنید یک نمونه الگوریتم براتون مثال بزنم. لطفا دوستان اگه پیشنهادی در مورد تکمیل این ساختار دارن بگن تا کاربردی تر بشه. این ساده ترین الگوریتمی بود که به ذهن من می رسید و حتما می شه اون را بهینه تر کرد و یا اصلا از طریق دیگری غیر از این راهکار عمل نمود.

ایجاد سیستم نظر سنجی کاملا دینامیک:

صورت مساله: کاربر بتواند یک نظر سنجی با تعداد سوال نامحدود و برای هر سوال تعداد گزینه های دلخواه ایجاد کند. هر پاسخ امتیاز متفاوتی داشته باشد و در آخر نظر سنجی، جمع کل پاسخ های داده شده از طرف کاربر اعلام می شود. (بعدا می شود چیزهایی مثل نمره منفی یا ضریب پاسخ و ... را هم در آن اضافه کرد)

ساختار پیشنهادی:

1- جدول تحت عنوان نظر سنجی ها شامل: عنوان نظر سنجی، آی دی کاربری که آن را ایجاد کرده، آی دی منحصر به فرد نظر سنجی و ...
2- جدول تحت عنوان سوالات شامل: متن سوال، آی دی منحصر به فرد سوال، آی دی نظر سنجی که این سوال به آن مربوط است و ...3- جدول تحت عنوان گزینه ها شامل:آی دی منحصر به فرد گزینه، آی دی سوال مربوطه، متن گزینه، امتیاز گزینه و ...
4- جدول تحت عنوان پاسخ ها شامل: آی دی منحصر به فرد، آی دی سوال، آی دی کاربر، آی دی گزینه انتخاب شده و ...

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

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

 

نظرات

MJZ376 10 سال پیش
ممنون از توضیحات خوبتون ، برای این که نرم افزار یه بخش داشته باشه که افراد رو طبق امتیازشون دسته بندی کنه چه پیشنهادی دارید؟
hamed 10 سال پیش
این مورد هم زیاد سخت نیست. کافیه امتیاز کاربر را در پایان نظرسنجی یا آزمون محاسبه کنید و این امتیاز محاسبه شده را هم در یک جدول با آی دی کاربر و آی دی آزمون مربوطه ذخیره کنید و هر بار از جدول بر اساس امتیازها جستجو کنید. البته عیب این روش اینه که وقتی کاربری نظر سنجی یا آزمون خودش را ویرایش کنه امتیازها ممکنه بهم بخوره. که یا باید بی خیال ویرایش بشوید و یا اینکه با هر بار ویرایش کاربر امتیاز کل شرکت کنندگان را مجددا محاسبه کنید. از نظر کاربردی هم منطقی به نظر می رسه که امکان ویرایش حذف بشه چون کاربرا باید در یک آزمون یا نظر سنجی مشترک و یکسان مقایسه بشن. در کل پیشنهاد می کنم یکم الگوریتم ها و جداول مربوط به برنامه های مختلف را چک کنید. معمولا در این برنامه های ساده پیچیدگی روابط در جداول زیاد نیست و باید بتونید به راحتی یک روال منطقی برای آن ابداع کنید. در نرم افزارهای پیچیده تر مثل ERP و انبار و ... ممکنه ارتباط ها پیچیده و چند جهته بشن و یا اینکه در همین برنامه نظر سنجی بخواهید دیتابیس خیلی حرفه ای داشته باشیم که البته شاید هم نیاز نباشه.
MJZ376 10 سال پیش
برای بخش دیتابیس نرم افزار باید چیز خاصی بلد بود؟برای امنیت چکار باید انجام بدم؟
محمد 10 سال پیش
hamed عزیز. بازی Quiz of kings که دوستمون گفتن یه بازی نوبتیه که 2 نفر شرکت کننده داره و نسبتا کنده. طبق آموزش (push notification) در واقع pull کردن رو یاد گرفتیم. یعنی کاربر درخواست میفرسته و جوابشو از سرور میگیره. حالا اگه بخوایم مشابه مثلا تلگرام، یه کاربر یه اطلاعاتی رو به سرور بفرسته و سرور اونو برای یه کاربر دیگه بفرسته، باید چیکار کنیم. (اصلا تلگرام اینجوری که گفتم کار میکنه؟ پروتوکل xmpp یا ...؟)
hamed 10 سال پیش
در جواب دوستمون برای دیتا بیس بگم که آموزش های سایت برای سمت اندروید کفایت می کنه. برای سمت وب آموزش های سایت برای بخش وب را مشاهده کنید. البته کمی هم مطالبی در بخش پروژه نوت و مارکت هست اگر اشتباه نکنم که خوب کامل نیست. برای امنیت هم قصه خیلی طولانی و متنوعی است و باید روش تحقیق و کار کنید.
hamed 10 سال پیش
در جواب آقا محمد باید بگم که مبنای کار این نرم افزارها همانطور که اشاره کردین ارسال و دریافت اطلاعات به همون صورتی هست که در آموزش ها آمده. اما برای نرم افزارهایی مثل تلگرام ساختارها متفاوته که بنده بلد نیستم. اون بخشی که شما گفتین هم سرور اطلاعات را از طریق API مناسبی که می نویسید در اختیار کلاینت های دیگه می گذارد که اون هم مشابه همین سیستم است. یعنی اون ها درخواست می دهند و سرور از دیتا بیس می خونه و براشون می فرسته. فقط اهراز هویت ها و امنیت ها مهمه بعلاوه اینکه ارتباط سریعتر و کارآمدتری نیازه.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .