در پایان ماه مه، فارغ التحصیلان ما از Technopark (Bauman MSTU)، Technotrack (MIPT)، Technosphere (دانشگاه دولتی لومونوسوف مسکو) و Technopolis (دانشگاه پلی تکنیک پتر کبیر سن پترزبورگ) از پروژه های دیپلم خود دفاع کردند. سه ماه برای کار اختصاص داده شد و بچهها دانش و مهارتهایی را که در طی دو سال تحصیل به دست آورده بودند، روی فرزند فکری خود سرمایهگذاری کردند.
در مجموع 13 پروژه دفاعی وجود داشت که مشکلات مختلف صنایع مختلف را حل می کرد. مثلا:
- ذخیره سازی ابری با رمزگذاری فایل های رمزنگاری شده؛
- پلت فرم برای ایجاد فیلم های تعاملی (با پایان های مختلف)؛
- تخته هوشمند برای بازی شطرنج واقعی از طریق شبکه؛
- معماری برای بازیابی هوشمند مقالات پزشکی.
- نرم افزار آموزش اصول الگوریتم سازی به کودکان دبستانی.
و همچنین پروژه های واحدهای تجاری:
- سیستم CRM برای پیام رسان TamTam;
- سرویس وب برای جستجوی عکس های موضوعی روی نقشه برای Odnoklassniki.
- سرویس کدگذاری جغرافیایی آدرس برای MAPS.ME.
امروز با جزئیات بیشتری در مورد پنج پروژه فارغ التحصیلان خود خواهیم گفت.
جستجوی هوشمند مقالات پزشکی
حوزه های علمی زیادی وجود دارد که در هر یک از آنها تحقیقات انجام می شود، تعداد زیادی مقاله در مجلات مختلف منتشر می شود. اینها فناوری اطلاعات، فیزیک، ریاضیات، زیست شناسی، پزشکی و بسیاری دیگر هستند.
نویسنده
SERP حاوی لیست رتبه بندی شده ای از اسناد با موضوعات تعریف شده است و کلمات و اصطلاحات مرتبط با این موضوعات با استفاده از مدل سازی موضوع احتمالی برجسته می شوند. کاربر می تواند روی عبارت هایلایت شده کلیک کند تا عبارت جستجو را محدود کند.
برای انجام سریع جستجو در پایگاه داده عظیم PubMed، نویسندگان موتور جستجوی خود را نوشتند که می تواند به راحتی در هر زیرساختی ادغام شود.
جستجو در سه مرحله انجام می شود:
- اسناد نامزد با استفاده از شاخص معکوس انتخاب می شوند.
- کاندیداها با استفاده از الگوریتم BM25F رتبه بندی می شوند که زمینه های مختلفی را در اسناد در طول جستجو در نظر می گیرد. بنابراین، کلمات عنوان وزن بیشتری نسبت به کلمات در چکیده دارند.
- یک سیستم کش نیز برای سرعت بخشیدن به پردازش درخواست های مکرر استفاده می شود.
معماری میکروسرویس:
اساسا، داده های متنی ساخت یافته بین سرویس ها منتقل می شود. برای سرعت های انتقال بالا، از GRPC استفاده می شود - چارچوبی برای اتصال ماژول ها در معماری میکروسرویس. سریال سازی داده ها نیز با استفاده از فرمت تبادل پیام Protobuf استفاده می شود.
سیستم شامل چه اجزایی است:
- سرور برای پردازش درخواست های کاربر ورودی در Node.js.
- درخواست های تعادل بار را با استفاده از سرور پراکسی nginx بارگیری کنید.
- سرور Flask REST API را پیاده سازی می کند و درخواست های ارسال شده از Node.js را دریافت می کند.
- تمام داده های خام و پردازش شده و همچنین اطلاعات پرس و جو در MongoDB ذخیره می شود.
- همه درخواستها برای نتایج مرتبط برای موضوعبندی سند به RabbitMQ میروند.
نمونه ای از نتایج جستجو:
کاری که در آینده قصد داریم انجام دهیم:
- توصیه هایی هنگام جمع آوری نظرات در مورد یک موضوع معین (شناسایی موضوعات مهم در یک سند و جستجو در زیر مجموعه های اسناد).
- جستجو در فایل های PDF
- تقسیم بندی متن معنایی
- موضوعات و روندها را در طول زمان پیگیری کنید.
تیم پروژه: فدور پتریایکین، ولادیسلاو دوروژینسکی، ماکسیم ناخودنوف، ماکسیم فیلین
بلوک گزارش
امروزه، هنگام آموزش برنامه نویسی و علوم کامپیوتر، کودکان دبستانی (کلاس های 5-7) در تسلط بر مطالب با مشکل مواجه می شوند. علاوه بر این، اگر دانش آموزان بخواهند تکالیف خود را در خانه انجام دهند، باید نرم افزارهای اضافی را روی رایانه خود نصب کنند. معلمان باید تعداد زیادی راه حل مشابه برای مسائل را بررسی کنند و در مورد یادگیری از راه دور نیز باید روشی برای دریافت تکالیف از دانش آموزان ایجاد کنند.
نویسندگان پروژه Block Log به این نتیجه رسیدند: هنگام آموزش اصول الگوریتم سازی به کودکان دبستانی، نباید بر حفظ دستورات زبان برنامه نویسی، بلکه بر ساخت نمودارهای الگوریتم تأکید شود. این به دانش آموزان اجازه می دهد تا زمان و تلاش خود را صرف طراحی یک الگوریتم کنند، به جای تایپ کردن در ساختارهای نحوی دست و پا گیر.
پلت فرم
- فلوچارت ها را ایجاد و ویرایش کنید.
- فلوچارت های ایجاد شده را اجرا کنید و نتیجه کار آنها (داده های خروجی) را ببینید.
- پروژه های ایجاد شده را ذخیره و بارگذاری کنید.
- ترسیم تصاویر شطرنجی (تولید یک تصویر بر اساس الگوریتم ایجاد شده توسط کودک).
- دریافت اطلاعات در مورد پیچیدگی الگوریتم ایجاد شده (بر اساس تعداد عملیات انجام شده در الگوریتم).
انتظار می رود نقش ها به معلمان و دانش آموزان تقسیم شود. هر کاربری وضعیت دانشجویی را دریافت می کند؛ برای دریافت وضعیت معلم باید با مدیر سیستم تماس بگیرید. معلم نه تنها میتواند توضیحات و شرایط مسائل را وارد کند، بلکه تستهای خودکاری را نیز ایجاد میکند که وقتی دانشآموز راهحلی برای مشکل در سیستم ارائه میکند، بهطور خودکار راهاندازی میشود.
ویرایشگر گزارش بلوک مرورگر:
پس از حل مشکل، دانش آموز می تواند راه حل را دانلود کرده و نتایج را مشاهده کند:
این پلتفرم از یک برنامه front-end در Vue.js و یک برنامه back-end در Ruby on Rails تشکیل شده است. PostgreSQL به عنوان پایگاه داده استفاده می شود. برای ساده سازی استقرار، تمام اجزای سیستم در کانتینرهای Docker بسته بندی شده و با استفاده از Docker Compose مونتاژ می شوند. نسخه دسکتاپ Block Log بر اساس چارچوب Electron است. Webpack برای ساخت کد جاوا اسکریپت استفاده شد.
تیم پروژه: الکساندر بارولف، ماکسیم کولوتوکین، کریل کوچروف.
سیستم CRM برای پیام رسان TamTam
CRM ابزاری برای تعامل راحت بین مشاغل و کاربران TamTam است. توابع زیر پیاده سازی شده است:
- یک سازنده ربات که به شما امکان می دهد بدون مهارت برنامه نویسی ربات بسازید. در عرض چند دقیقه می توانید یک ربات کاملاً کارآمد دریافت کنید که نه تنها می تواند برخی از اطلاعات را به کاربران نشان دهد، بلکه داده ها را نیز جمع آوری می کند. فایل هایی که مدیر می تواند بعداً مشاهده کند.
- RSS. شما به راحتی می توانید RSS را به هر کانالی متصل کنید.
- ارسال با تاخیر به شما امکان می دهد پیام ها را در زمان های از پیش تعیین شده ارسال و حذف کنید.
این تیم همچنین در آزمایش Bot API شرکت کرد و چندین ربات خودنویس مانند یک ربات برای جام جهانی هاکی 2019، یک ربات برای ثبت / مجوز در سرویس ما و یک ربات برای CI/CD ایجاد کرد.
زیرساخت راه حل:
- سرور مدیریت شامل یک سیستم مانیتورینگ برای هر سرور و هر کانتینر Docker بر روی آن است تا به سرعت و به راحتی یک مشکل را تشخیص داده و آن را حل کند، معیارهای مختلف و آمار استفاده را مشاهده کند. همچنین یک سیستم برای مدیریت پیکربندی از راه دور برنامه ما وجود دارد.
- سرور مرحلهبندی شامل نسخه فعلی برنامه ما است که برای آزمایش عمومی توسط تیم توسعه در دسترس است.
- سرورهای مدیریت و مرحلهبندی فقط از طریق VPN برای توسعهدهندگان در دسترس هستند و سرور تولید شامل نسخه انتشار برنامه است. از دست توسعه دهندگان جدا شده و فقط برای کاربر نهایی در دسترس است.
- سیستم CI/CD با استفاده از Github و Travis، اعلان با استفاده از یک ربات سفارشی در TamTam پیاده سازی شد.
معماری برنامه یک راه حل مدولار است. برنامه، پایگاه داده، مدیر پیکربندی و مانیتورینگ در کانتینرهای Docker جداگانه راهاندازی میشوند که به شما امکان میدهد از محیط راهاندازی انتزاعی بگیرید، یک کانتینر جداگانه را تغییر دهید یا مجددا راهاندازی کنید. ایجاد توپولوژی شبکه و مدیریت کانتینرها با استفاده از Docker Compose انجام می شود.
تیم پروژه: الکسی آنتوفیف، اگور گورباتوف، الکسی کوتلوسکی.
ForkMe
پروژه ForkMe بستری برای تماشای ویدیوهای تعاملی است که در آن می توانید ویدیوی خود را ایجاد کرده و به دوستان خود نشان دهید. اگر ویدیوهای معمولی وجود دارد، چرا به ویدیوهای تعاملی نیاز داریم؟
طرح غیرخطی ویدیو و امکان انتخاب ادامه به خودی خود به بیننده اجازه می دهد تا درگیر آن شود و سازندگان محتوا می توانند داستان های منحصر به فردی را به نمایش بگذارند که طرح آن تحت تأثیر کاربران قرار می گیرد. همچنین، تولیدکنندگان محتوا با مطالعه آمار تبدیل ویدیو، قادر خواهند بود آنچه را که بیشتر مورد علاقه مخاطبان است، درک کنند و مطالب را جذابتر کنند.
هنگام توسعه پروژه، بچه ها از فیلم تعاملی Bandersnatch از نتفلیکس الهام گرفتند که بازدیدهای زیادی و نقدهای خوبی دریافت کرد. هنگامی که MVP قبلاً نوشته شده بود، اخباری مبنی بر اینکه یوتیوب در حال برنامه ریزی برای راه اندازی پلتفرمی برای سریال های تعاملی است ظاهر شد که یک بار دیگر محبوبیت این جهت را تأیید می کند.
MVP شامل: پخش کننده تعاملی، سازنده ویدئو، جستجو بر اساس محتوا و برچسب ها، مجموعه های ویدئویی، نظرات، بازدیدها، رتبه بندی ها، کانال ها و پروفایل های کاربر است.
پشته فناوری مورد استفاده در پروژه:
برنامه ریزی برای توسعه پروژه چگونه است:
- مجموعه ای از آمار و اینفوگرافیک در مورد انتقال به ویدئو.
- اطلاعیه ها و پیام های شخصی برای کاربران سایت؛
- نسخه های اندروید و iOS
پس از این ما قصد داریم اضافه کنیم:
- ایجاد داستان های ویدیویی از تلفن شما؛
- ویرایش قطعات ویدیویی دانلود شده (به عنوان مثال اصلاح)؛
- ایجاد و راه اندازی تبلیغات تعاملی در پلیر.
تیم پروژه: Maxim Morev (توسعهدهنده fullstack، روی معماری پروژه کار کرد) و Roman Maslov (توسعهدهنده fullstack، روی طراحی پروژه کار کرد).
On-Line-On-Board
امروزه والدین توجه زیادی به رشد ذهنی فرزندان خود دارند و کودکان به بازی های فکری علاقه مند هستند. بنابراین، شطرنج دوباره محبوبیت پیدا می کند. و اگرچه شطرنج به طور کلی بسیار محبوب است، پیدا کردن یک حریف معمولی برای بازی ها مشکل ساز است. بنابراین، بسیاری از مردم از خدمات شطرنج آنلاین استفاده می کنند، علیرغم این واقعیت که بسیاری از بازیکنان ترجیح می دهند با مهره های واقعی "زنده" بازی کنند. اما در هنگام بازی شطرنج، انسان تلاش ذهنی زیادی می کند و خسته می شود و این خستگی با تاثیر منفی نشستن پشت کامپیوتر یا گوشی هوشمند تکمیل می شود. در نتیجه، مغز پس از تنها دو بازی بیش از حد بار می شود.
همه این عوامل نویسندگان را به ایده پروژه On-Line-On-Board سوق دادند که از سه بخش تشکیل شده است: یک صفحه شطرنج فیزیکی، یک برنامه دسکتاپ و یک وب سرویس. تخته یک زمین شطرنج معمولی است که موقعیت مهرهها را تشخیص میدهد و به کمک یک نشان نور، حرکات حریف را نشان میدهد. برد از طریق USB به رایانه شخصی متصل می شود و با برنامه دسکتاپ ارتباط برقرار می کند. در حالت تمرین (و برای کودکان)، حرکات احتمالی شما برجسته می شود.
این برنامه وظایف اصلی مدیریت برد را بر عهده می گیرد، که به شما امکان می دهد هزینه آن را تا حد زیادی کاهش دهید و اجرای اکثر عملکردها را به سطح نرم افزار برسانید. برنامه با یک وب سرویس ارتباط برقرار می کند که ارزش اصلی آن به روز رسانی پویا است.
سناریوی اصلی برای استفاده از محصول: یک نفر در سرویس بازی می کند، نفر دوم در یک برد فیزیکی متصل به سرویس. یعنی سرویس کارکرد ارتباطی به خود می گیرد.
تیم پروژه: دانیل توچین، آنتون دیمیتریف، ساشا کوزنتسوف.
شما می توانید در مورد پروژه های آموزشی ما بیشتر بخوانید
منبع: www.habr.com