Hackathon DevDays'19 (حصو 1): سفارشن سان گڏ هڪ ڊائري، هلڻ وارو رستو جنريٽر ۽ مائع جمهوريت

تازو اسان ٻڌايو JetBrains ۽ ITMO يونيورسٽي جي ڪارپوريٽ ماسٽر پروگرام بابت “سافٽ ويئر ڊولپمينٽ / سافٽ ويئر انجنيئرنگ”. اسان سڀني دلچسپيءَ وارن کي سومر، اپريل 29 تي کليل ڏينهن جي دعوت ڏيون ٿا. اسان توهان کي اسان جي ماسٽر پروگرام جي فائدن جي باري ۾ ٻڌائينداسين، اسان شاگردن کي ڪهڙو بونس پيش ڪندا آهيون ۽ موٽ ۾ اسان ڪهڙو مطالبو ڪندا آهيون. ان کان سواء، اسان ضرور ضرور اسان جي مهمانن کان سوالن جا جواب ڏينداسين.

Hackathon DevDays'19 (حصو 1): سفارشن سان گڏ هڪ ڊائري، هلڻ وارو رستو جنريٽر ۽ مائع جمهوريتکليل ڏينهن JetBrains آفيس ۾ ٽائمز بزنس سينٽر ۾ منعقد ٿيندو، جتي اسان جي ماسٽر جا شاگرد پڙهندا آهن. 17:00 تي شروع ٿئي ٿو. توھان حاصل ڪري سگھوٿا سڀ تفصيل ۽ ويب سائيٽ تي واقعي لاءِ رجسٽر ٿيو mse.itmo.ru. اچو ۽ توهان کي افسوس نه ٿيندو!

پروگرام جي مکيه حصن مان هڪ مشق آهي. شاگردن وٽ تمام گهڻو آهي: هفتيوار هوم ورڪ، سيمسٽر پروجيڪٽ ۽ هيڪاٿون. انهن جي پڙهائي دوران جديد ترقي جي طريقن ۽ ٽيڪنالاجيز ۾ مڪمل وسعت جي مهرباني، گريجوئيٽ جلدي وڏي آئي ٽي ڪمپنين جي ڪم جي عمل ۾ ضم ٿي ويا آهن.

هن پوسٽ ۾ اسين وڌيڪ تفصيل سان ڳالهائڻ چاهيون ٿا DevDays hackathons، جيڪي هر ڇهن مهينن ۾ ٿينديون آهن. ضابطا سادا آهن: 3-4 ماڻهن جون ٽيمون گڏ ٿين ٿيون ۽ ٽن ڏينهن لاءِ شاگرد پنهنجن خيالن کي زندگيءَ ۾ آڻين ٿا. هن مان ڇا ٿي سگهي ٿو؟ هن سيمسٽر جي هيڪاٿون منصوبن بابت ڪهاڻين جو پهريون حصو پاڻ شاگردن کان پڙهو :)

فلم جي سفارشن سان ڊائري

Hackathon DevDays'19 (حصو 1): سفارشن سان گڏ هڪ ڊائري، هلڻ وارو رستو جنريٽر ۽ مائع جمهوريت

خيال جو مصنف
ايوان ايلچڪ
قطار ٺاهيو
Ivan Ilchuk - فلم پلاٽ پارسنگ، سرور
Vladislav Korablinov - هڪ ڊائري جي داخلا ۽ فلم جي پلاٽ جي قربت جي مقابلي لاء ماڊلز جي ترقي
دمتري Valchuk - UI
Nikita Vinokurov - UI، ڊيزائن

اسان جي پروجيڪٽ جو مقصد هڪ ڊيسڪ ٽاپ ايپليڪيشن لکڻ هو - هڪ ڊائري جيڪا صارف کي فلمن جي سفارش ڪندي ان جي اندراج جي بنياد تي.

اهو خيال مون کي تڏهن آيو جڏهن مان يونيورسٽي وڃي رهيو هوس ۽ پنهنجن مسئلن بابت سوچي رهيو هوس. ”انسان کي جيڪو به مسئلو درپيش هجي، ان بابت ڪنهن ڪلاسيڪل ليکڪ اڳي ئي لکيو آهي،“ مون سوچيو. "۽ جيئن ته ڪنهن اهو لکيو آهي، ان جو مطلب اهو آهي ته ڪنهن ان کي فلمايو آهي." تنهنڪري هڪ ئي ذهني عذاب سان هڪ شخص جي باري ۾ هڪ فلم ڏسڻ جي خواهش قدرتي طور ظاهر ٿيو.

ظاهر آهي، اتي مختلف قسم جا الڳ الڳ ڊائريون ۽ الڳ سفارش واريون خدمتون آهن (پر عام طور تي سفارشون ان تي ٻڌل هونديون آهن جيڪي اڳ ۾ پسند ڪندا هئا). اصولي طور تي، هن پروجيڪٽ ۾ ڪجهه عام آهي هڪ فلم ڳولڻ لاء اهم نقطا، پر اڃا تائين، سڀ کان پهريان، اسان جي ايپليڪيشن هڪ ڊائري جي ڪارڪردگي مهيا ڪري ٿي.

Hackathon DevDays'19 (حصو 1): سفارشن سان گڏ هڪ ڊائري، هلڻ وارو رستو جنريٽر ۽ مائع جمهوريتاسان ان کي ڪيئن لاڳو ڪيو؟ جڏهن توهان جادوءَ واري بٽڻ کي دٻايو ٿا، ته ڊائري سرور ڏانهن هڪ داخلا موڪلي ٿي، جتي فلم کي وڪيپيڊيا مان ورتل وضاحت جي بنياد تي چونڊيو وڃي ٿو. اسان جو فرنٽ اينڊ اليڪٽران ۾ ٺاهيو ويو هو (اسان ان کي استعمال ڪندا آهيون، ويب سائيٽ نه، ڇاڪاڻ ته اسان شروعاتي طور تي صارف جي ڊيٽا کي سرور تي نه، پر مقامي طور تي ڪمپيوٽر تي ذخيرو ڪرڻ جو فيصلو ڪيو هو)، ۽ سرور ۽ سفارش وارو نظام پاڻ کي Python ۾ ٺاهيو ويو: TFs هئا. تفصيلن مان حاصل ڪيو ويو -IDF ویکٹر جيڪي ڊائري جي داخلا ويڪٽر جي قربت لاءِ مقابلي ۾ هئا.

ھڪڙي ٽيم جي ميمبر صرف ماڊل تي ڪم ڪيو، ٻيو مڪمل طور تي فرنٽ-آخر تي ڪم ڪيو (شروعات ۾ ھڪڙي ٽئين ميمبر سان گڏ، جيڪو بعد ۾ جانچ ۾ تبديل ڪيو ويو). مان وڪيپيڊيا ۽ سرور تان فلمي پلاٽن کي پارس ڪرڻ ۾ مصروف هيس.

قدم بہ قدم اسان نتيجي جي ويجھو ٿي ويا، ڪيترن ئي مسئلن تي غالب ٿي، حقيقت سان شروع ٿئي ٿو ته ماڊل شروعاتي طور تي تمام گھڻي رام جي ضرورت آھي، سرور ڏانھن ڊيٽا کي منتقل ڪرڻ جي مشڪلات سان ختم ٿي.

هاڻي، شام لاءِ فلم ڳولڻ لاءِ، توهان کي گهڻي ڪوشش جي ضرورت نه آهي: اسان جي ٽن ڏينهن جي محنت جو نتيجو آهي هڪ ڊيسڪ ٽاپ ايپليڪيشن ۽ هڪ سرور، جنهن تائين صارف https ذريعي پهچندو آهي، جواب ۾ 5 فلمن جي چونڊ حاصل ڪرڻ سان. هڪ مختصر وضاحت ۽ پوسٽر.

پروجيڪٽ جي باري ۾ منهنجا تاثرات ڏاڍا مثبت آهن: ڪم صبح جو سوير کان رات جي دير تائين دل موهيندڙ هو، ۽ نتيجو ڪندڙ ايپليڪيشن وقتي طور تي "سليپلیس نائيٽ" جي انداز ۾ انتهائي مضحکہ خیز نتيجا پيدا ڪري ٿي يونيورسٽي ۾ گهر جي ڪم يا فلم بابت ڊائري داخل ڪرڻ لاءِ. ڊپارٽمينٽ ۾ پهرين ڏينهن بابت هڪ ڪهاڻي لاء اسڪول جي پهرين ڏينهن بابت.

لاڳاپيل لنڪ، انسٽالر، وغيره ڳولهي سگهجن ٿا هتي.

رستو جنريٽر

Hackathon DevDays'19 (حصو 1): سفارشن سان گڏ هڪ ڊائري، هلڻ وارو رستو جنريٽر ۽ مائع جمهوريتخيال جو مصنف
ارينا Artemyeva
قطار ٺاهيو
Artemyeva ارينا - ٽيم جي اڳواڻي، مکيه لوپ
Gordeeva Lyudmila - موسيقي
Platonov Vladislav - رستا

مون کي شهر جي چوڌاري گھمڻ پسند آهي: عمارتون ڏسڻ، ماڻهو، تاريخ بابت سوچڻ. پر، جيتوڻيڪ جڏهن منهنجي رهائش واري جاء تبديل ٿي، جلدي يا بعد ۾ مون کي هڪ رستو چونڊڻ جي مسئلي سان منهن ڏيڻو پوي ٿو: مون اهي سڀئي مڪمل ڪيا آهن جن بابت آئون سوچي سگهان ٿو. اهو ڪيئن خيال آيو ته رستن جي نسل کي خودڪار ڪرڻ لاء: توهان اشارو ڪيو شروعاتي نقطي ۽ رستي جي ڊيگهه، ۽ پروگرام توهان کي هڪ اختيار ڏئي ٿو. ھلڻ ڊگھو ٿي سگھي ٿو، تنھنڪري خيال جي منطقي ترقيءَ ۾ ”اسٽاپ“ لاءِ وچولي پوائنٽن جي نشاندهي ڪرڻ جي صلاحيت شامل ٿيڻ لڳي، جتي توھان ناشتو ۽ آرام ڪري سگھوٿا. ترقي جي هڪ ٻي شاخ موسيقي هئي. موسيقي ڏانهن هلڻ هميشه وڌيڪ مزيدار آهي، تنهنڪري اهو هڪ ٺاهيل رستي جي بنياد تي هڪ پبليڪيشن چونڊڻ جي صلاحيت شامل ڪرڻ لاء بهترين هوندو.

موجوده ايپليڪيشنن جي وچ ۾ اهڙي حل ڳولڻ ممڪن نه هو. ويجھي analogues ڪنهن به رستي جي رٿابندي ڪندڙ آهن: گوگل نقشا، 2GIS، وغيره.

توهان جي فون تي اهڙي ايپليڪيشن حاصل ڪرڻ تمام آسان آهي، تنهنڪري ٽيليگرام استعمال ڪرڻ هڪ سٺو اختيار هو. اهو توهان کي نقشن کي ڊسپلي ڪرڻ ۽ ميوزڪ کيڏڻ جي اجازت ڏئي ٿو، ۽ توهان هڪ بوٽ لکڻ ذريعي اهو سڀ ڪنٽرول ڪري سگهو ٿا. نقشن سان گڏ مکيه ڪم Google Map API استعمال ڪندي ڪيو ويو. Python ٻنهي ٽيڪنالاجي کي گڏ ڪرڻ آسان بڻائي ٿو.

ٽيم ۾ ٽي ماڻهو هئا، تنهن ڪري ڪم کي ٻن غير اوورليپنگ ذيلي ڪمن ۾ ورهايو ويو (نقشي سان ڪم ڪرڻ ۽ ميوزڪ سان ڪم ڪرڻ) ته جيئن ماڻهو آزاديءَ سان ڪم ڪري سگهن، ۽ مون نتيجن کي گڏ ڪرڻ لاءِ پاڻ تي ورتو.

Hackathon DevDays'19 (حصو 1): سفارشن سان گڏ هڪ ڊائري، هلڻ وارو رستو جنريٽر ۽ مائع جمهوريتاسان مان ڪنهن به گوگل ميپ API يا لکيل ٽيليگرام بوٽس سان ڪڏهن به ڪم نه ڪيو آهي، تنهنڪري بنيادي مسئلو اهو هو ته منصوبي تي عمل ڪرڻ لاءِ مختص ڪيل وقت جو مقدار: ڪنهن شيءِ کي سمجهڻ ۾ هميشه وڌيڪ وقت لڳندو آهي ڪجهه ڪرڻ کان جيڪو توهان چڱي طرح ڄاڻو ٿا. Telegram bot API کي چونڊڻ پڻ ڏکيو هو: بلاڪ ڪرڻ جي ڪري، اهي سڀئي ڪم نه ڪندا آهن ۽ مون کي هر شي کي ترتيب ڏيڻ لاء جدوجهد ڪرڻي هئي.

اهو الڳ الڳ ذڪر ڪرڻ جي قابل آهي ته ڪيئن پيدا ٿيندڙ رستن جو مسئلو حل ڪيو ويو. ٻن هنڌن جي وچ ۾ رستو ٺاھڻ آسان آھي، پر توھان صارف کي ڇا پيش ڪري سگھو ٿا جيڪڏھن رڳو رستي جي ڊگھائي ڄاڻايل آھي؟ استعمال ڪندڙ کي 10 ڪلوميٽر پنڌ ڪرڻ ڏيو. ھڪڙي نقطي ھڪڙي ترتيب واري هدايت ۾ چونڊيو ويو آھي، جنھن جو فاصلو سڌي لڪير ۾ 10 ڪلوميٽر آھي، جنھن کان پوء ھڪڙو رستو ھن نقطي ڏانھن حقيقي روڊن سان ٺاھيو ويو آھي. گهڻو ڪري اهو سڌو نه ٿيندو، تنهنڪري اسان ان کي 10 ڪلوميٽرن تائين مختصر ڪنداسين. اهڙين رستن لاءِ ڪيترائي اختيار آهن - اسان وٽ هڪ حقيقي رستو جنريٽر آهي!

شروعات ۾، مون نقشي کي سائي علائقن سان لاڳاپيل علائقن ۾ ورهائڻ چاهيو: بند، صحن، گهٽيون، سير لاءِ تمام وڻندڙ ​​رستو حاصل ڪرڻ لاءِ، ۽ انهن علائقن جي مطابق ميوزڪ پڻ پيدا ڪرڻ. پر گوگل ميپ API استعمال ڪندي ائين ڪرڻ مشڪل ٿي ويو (اسان وٽ وقت نه هو ته هن مسئلي کي حل ڪرڻ لاءِ). بهرحال، اهو ممڪن هو ته رستي جي تعمير کي مخصوص قسم جي جڳهن جي ذريعي (دڪان، پارڪ، لائبريري): جيڪڏهن اهو رستو سڀني مخصوص هنڌن جي چوڌاري هليو ويو، پر گهربل فاصلو اڃا تائين سفر نه ڪيو ويو آهي، اهو مڪمل ڪيو ويو آهي. صارف جي مخصوص فاصلي ۾ بي ترتيب واري طرف. Google Map API پڻ توهان کي اندازي مطابق سفر جي وقت جو اندازو لڳائڻ جي اجازت ڏئي ٿو، جيڪو توهان جي مدد ڪري ٿو هڪ پبليڪيشن چونڊڻ ۾ مڪمل پنڌ لاءِ.

آخر ۾ هڪ نسل ٺاهڻ ۾ ڪامياب ٿيو شروعاتي نقطي، فاصلي ۽ وچولي پوائنٽن ذريعي رستا؛ هر شي تيار ڪئي وئي هئي موسيقي جي درجي بندي ڪرڻ لاءِ رستي جي حصن جي، پر وقت جي کوٽ جي ڪري، اهو فيصلو ڪيو ويو ته هڪ پلے لسٽ چونڊڻ جو اختيار صرف هڪ اضافي UI برانچ جي طور تي. اهڙيء طرح، صارف آزاديء سان موسيقي کي ٻڌڻ لاء چونڊڻ جي قابل ٿي ويو.

ميوزڪ سان ڪم ڪرڻ ۾ بنيادي مسئلو اهو نه هو ته ڪٿي mp3 فائلون حاصل ڪيون وڃن بغير ڪنهن صارف کي ڪنهن به خدمت تي اڪائونٽ هجڻ جي ضرورت آهي. اهو فيصلو ڪيو ويو ته صارف کان موسيقي جي درخواست ڪرڻ (UserMusic mode). اهو هڪ نئون مسئلو پيدا ڪري ٿو: هر ڪنهن کي ٽريڪ ڊائون لوڊ ڪرڻ جي صلاحيت ناهي. هڪ حل اهو آهي ته صارفين جي موسيقي سان گڏ هڪ مخزن ٺاهيو (BotMusic موڊ) - ان مان توهان ميوزڪ ٺاهي سگهو ٿا بغير خدمتن جي.

جيتوڻيڪ مڪمل ناهي، اسان ڪم مڪمل ڪيو: اسان هڪ ايپليڪيشن سان ختم ڪيو جنهن کي آئون استعمال ڪرڻ چاهيندس. عام طور تي، اهو تمام سٺو آهي: ٽي ڏينهن اڳ توهان صرف هڪ خيال ڪيو هو ۽ هڪ به خيال نه هو ته ان کي ڪيئن لاڳو ڪيو وڃي، پر هاڻي اتي هڪ ڪم ڪندڙ حل آهي. اهي ٽي ڏينهن منهنجي لاءِ ڏاڍا اهم هئا، مان هاڻي ڪنهن اهڙي شيءِ سان گڏ اچڻ کان ڊپ نه آهيان جنهن تي عمل ڪرڻ لاءِ مون وٽ ايتري ڄاڻ نه آهي، ٽيم جي اڳواڻي ۾ هجڻ ناقابل يقين حد تائين دلچسپ هو، ۽ مون کي انهن شاندار ماڻهن سان واقفيت حاصل ٿي، جيڪي منهنجي ٽيم ۾ شامل ٿيا. بهتر!

ذيلي جمهوريت پسند

Hackathon DevDays'19 (حصو 1): سفارشن سان گڏ هڪ ڊائري، هلڻ وارو رستو جنريٽر ۽ مائع جمهوريت

خيال جو مصنف
Stanislav Sychev
قطار ٺاهيو
Stanislav Sychev - ٽيم جي اڳواڻي، ڊيٽابيس
Nikolay Izyumov - بوٽ انٽرفيس
Anton Ryabushev - پس منظر

مختلف گروهن جي اندر، اڪثر ڪري فيصلو ڪرڻ يا ووٽ ڏيڻ جي ضرورت هوندي آهي. عام طور تي اهڙين حالتن ۾، اهي رهجي ويندا آهن سڌي جمهوريتبهرحال، جڏهن گروپ وڏو ٿي وڃي ٿو، مسئلا پيدا ٿي سگهن ٿا. مثال طور، هڪ گروهه ۾ هڪ شخص شايد اڪثر سوالن جا جواب ڏيڻ يا ڪجهه خاص عنوانن بابت سوالن جا جواب ڏيڻ نٿا چاهين. وڏن گروپن ۾، انهن مسئلن کان بچڻ لاء، انهن جو رستو اختيار ڪيو نمائنده جمهوريت، جڏهن سڀني ماڻهن مان ”نائب“ جو هڪ الڳ گروپ چونڊيو وڃي ٿو، جيڪي باقي ماڻهن کي پسند جي بار کان آزاد ڪن ٿا. پر اهڙو ڊپٽي ٿيڻ ڏاڍو ڏکيو آهي، ۽ جيڪو ماڻهو بڻجي ويندو، اهو ضروري ناهي ته ايماندار ۽ معزز هوندو، جيئن هو ووٽرن کي لڳي ٿو.

ٻنهي سسٽم جي مسئلن کي حل ڪرڻ لاء، برائن فورڊ تصور پيش ڪيو مائع جمهوريت. اهڙي نظام ۾، هرڪو پنهنجي خواهش جو اظهار ڪندي، باقاعده استعمال ڪندڙ يا نمائندي جي ڪردار کي چونڊڻ لاء آزاد آهي. ڪو به ماڻهو آزاديءَ سان ووٽ ڏئي سگهي ٿو يا هڪ يا وڌيڪ مسئلن تي نمائندي کي ووٽ ڏئي سگهي ٿو. هڪ نمائندو پڻ پنهنجو ووٽ ڏئي سگهي ٿو. ان کان علاوه، جيڪڏهن نمائندو هاڻي ووٽر کي مناسب ناهي، ووٽ ڪنهن به وقت واپس وٺي سگهجي ٿو.

مائع جمهوريت جي استعمال جا مثال سياست ۾ مليا آهن، ۽ اسان چاهيون ٿا ته هڪ ئي خيال کي روزمره جي استعمال لاءِ هر قسم جي ماڻهن جي گروهن ۾ لاڳو ڪيو وڃي. ايندڙ DevDays hackathon تي، اسان هڪ ٽيليگرام بوٽ لکڻ جو فيصلو ڪيو ووٽنگ لاءِ مائع جمهوريت جي اصولن مطابق. ساڳئي وقت، مون کي اهڙي بوٽن سان هڪ عام مسئلي کان بچڻ چاهيو ٿا - بوٽ جي پيغامن سان عام چيٽ کي بند ڪرڻ. حل اهو آهي ته ممڪن حد کان وڌيڪ ڪارڪردگي کي ذاتي گفتگو ۾ آڻڻ.

Hackathon DevDays'19 (حصو 1): سفارشن سان گڏ هڪ ڊائري، هلڻ وارو رستو جنريٽر ۽ مائع جمهوريتهي بوٽ ٺاهڻ لاءِ اسان استعمال ڪيو ٽيليگرام کان API. ووٽنگ ۽ وفدن جي تاريخ محفوظ ڪرڻ لاءِ هڪ PostgreSQL ڊيٽابيس چونڊيو ويو. بوٽ سان رابطو ڪرڻ لاء، هڪ فلاسڪ سرور نصب ڪيو ويو. اسان انهن ٽيڪنالاجي کي چونڊيو آهي ڇاڪاڻ ته ... اسان اڳ ۾ ئي اسان جي ماسٽر جي پڙهائي دوران انهن سان لهه وچڙ ۾ تجربو ڪيو هو. منصوبي جي ٽن حصن تي ڪم - ڊيٽابيس، سرور، ۽ بوٽ - ڪاميابيء سان ٽيم جي ميمبرن ۾ ورهايو ويو.

يقينن، ٽي ڏينهن هڪ مختصر وقت آهي، تنهنڪري هيڪٿون دوران اسان پروٽو ٽائپ سطح تي خيال کي لاڳو ڪيو. نتيجي طور، اسان ھڪڙو بوٽ ٺاھيو آھي جيڪو عام چيٽ تي لکي ٿو صرف ووٽنگ جي افتتاح ۽ ان جي گمنام نتيجن بابت معلومات. ووٽ ڏيڻ ۽ پول ٺاهڻ جي صلاحيت بوٽ سان ذاتي رابطي ذريعي لاڳو ڪئي وئي آهي. ووٽ ڏيڻ لاء، هڪ حڪم داخل ڪريو جيڪو ڏيکاري ٿو مسئلن جي هڪ فهرست جنهن کي سڌو ڌيان ڏيڻ جي ضرورت آهي. ذاتي خط و ڪتابت ۾، توهان نمائندن جي فهرست ۽ انهن جي پوئين ووٽن کي ڏسي سگهو ٿا، ۽ انهن مان هڪ موضوع تي پنهنجو ووٽ پڻ ڏئي سگهو ٿا.

ڪم جي مثال سان وڊيو.

پراجيڪٽ تي ڪم ڪرڻ ڏاڍو دلچسپ هو، اسان اڌ رات تائين يونيورسٽي ۾ رهياسين، اسان سوچيو ته اهو هڪ بهترين طريقو آهي جيڪو پڙهائڻ کان وقفو وٺي، جيتوڻيڪ اهو تمام گهڻو ٿڪائيندڙ آهي. اهو هڪ خوشگوار تجربو هو هڪ ويجهي ٽيم ۾ ڪم ڪرڻ.

پي ايس. ايندڙ تعليمي سال لاءِ ماسٽر جي پروگرامن لاءِ داخلا اڳ ۾ ئي آهي کليل آهي. اسان سان شامل ٿيو!

ذريعو: www.habr.com

تبصرو شامل ڪريو