على الهواء قصة جديدة عن مشاريع تخرج طلاب مشاريعنا التعليمية. هذه المرة سوف نقدم لكم أربع أوراق بحثية تم تقديمها في المناقشة المشتركة للفصل الدراسي الثاني من البرنامج الرئيسي لـ Technopark في تخصصات "تطوير الواجهة الأمامية" و "تطوير خدمات الويب أثناء التنقل" و "تصميم الواجهة". المنشورات السابقة: واحد ، اثنان ، ثلاثة .
هذه هي المرة الأولى التي يتعرض فيها الطلاب الذين دافعوا عن المشاريع لهذه التقنيات. يستغرق المشروع فصلاً دراسيًا واحدًا ، والغرض من المقالة هو إظهار العملية التعليمية ونتائج عمل الطلاب.
موسيقى الفيروسات
إنها خدمة موسيقى عبر الإنترنت لدفق الموسيقى دون تنزيلها على جهازك. تحتوي الصفحة الرئيسية على مجموعة مختارة من مسارات اليوم ، بالإضافة إلى قائمة قصيرة بفناني الأداء.

إذا نقرت على فنان ، فسيتم فتح قائمة بمقطوعاته. يمكنك الاشتراك في الفنانين المفضلين لديك حتى لا تفوت إصداراتهم الجديدة ، كما يمكنك الإعجاب بمساراتك وألبوماتك المفضلة. لسهولة التنقل عبر قاعدة بيانات الموسيقى ، يتم البحث في وقت واحد عن المؤدين والمسارات والألبومات. يمكن إنشاء قوائم التشغيل. في الملف الشخصي ، يمكنك رؤية مساراتك المفضلة وألبوماتك المفضلة واشتراكات الفنانين ، وكذلك إدارة قوائم التشغيل الخاصة بك. لجعل الخدمة تبدو أكثر متعة ، أضاف الرجال القدرة على تخصيص ألوان الواجهة. والواجهة نفسها مُكيَّفة للأجهزة المحمولة بأحجام شاشات مختلفة - روح العصر.

أثناء العمل في المشاريع ، كان على الرجال إيجاد حلول وسط عندما لم يتفقوا على بعض القرارات. بحثًا عن خيار مناسب ، قمنا بتغيير محركين للقالب ومعالجين لاحقين. قررنا أيضًا تنفيذ MVC في الواجهة الأمامية قبل أن نكتشف جوهر هذا النهج ، والذي بسببه اضطررنا لاحقًا إلى إعادة الكثير. تستخدم الواجهة الخلفية بنية "نظيفة".
الخدمة مكتوبة بلغة Go و JavaScript (مع Web Workers لتنفيذ JavaScript بشكل غير متزامن) ، باستخدام Rest API ومسلسل EasyJSON. يتم استخدام PostgreSQL و Redis لتخزين البيانات ، ويتم استخدام مكتبة gorm للعمل معهم. تتواصل الخدمات المصغرة مع بعضها البعض عبر gRPC. خادم الويب هو Nginx. يتم استخدام الطباعية. تم إنشاء CI / CD على قمة إجراءات Github و MCS. تم أيضًا تطبيق SharingAPI (لمشاركة الروابط) ومجمع Webpack.
لتطوير الخدمة ، أنت بحاجة إلى أهم شيء: مكتبة موسيقى لائقة. يخطط المؤلفون أيضًا لجمع إحصائيات حول الاستماع من أجل إنشاء نظام توصية يعتمد على تفضيلات المستخدم.
فريق المشروع: مارجريتا بويكو ، دميتري ريباكوف ، ناتاليا كليموفا ، نيكيتا بانيف.
فيديو مع حماية المشروع .
كينو أون
قام الرجال بإنشاء موقع على شبكة الإنترنت للعثور على معلومات حول الأفلام والبرامج التلفزيونية . أضافوا القدرة على إنشاء قوائم التشغيل وترك التعليقات. يحتوي الموقع على اختيارات موضوعية من الأفلام والمسلسلات ، وهناك بحث في النص الكامل في قاعدة البيانات ، مع إمكانية تحديد الأنواع ، وسنوات الإصدار ، والممثلين.


تتمثل إحدى الوظائف الرئيسية في تجميع قائمة بالصور المتشابهة لفيلم محدد بواسطة المستخدم. أراد الرجال إنشاء منتج كامل ، لذلك قاموا بتجميع المجموعات دون التعلم الآلي المألوف. بدلاً من ذلك ، بالنسبة لفيلم معين ، يتم تحديد تلك الأعمال بحيث يقوم مستخدمو الموقع غالبًا بتضمينها في قائمة تشغيل واحدة مع قائمة تشغيل معينة. بمعنى أنه كلما انتهى الأمر بفيلمين في نفس قائمة التشغيل ، زاد احتمال تشابههما. على الرغم من أن "مشابه" ربما يكون المصطلح الخطأ. بل إنها "أفلام ستستمتع بها أيضًا باحتمالية معينة". إنه نفس الشيء مع البرامج التلفزيونية.

أيضًا ، قام الطلاب الذين يستخدمون Web Share API بوظيفة إرسال روابط إلى الأفلام ذات الأهمية. صنع للجمال ، مع إمكانية إرفاق الصور والأوصاف.
تمت كتابة الواجهة الخلفية بالكامل في Go باستخدام مبادئ العمارة "النظيفة". لقد ساعد كثيرا في هيكلة المشروع. إجراءات Github تتبع كل دفعة إلى الفرع الرئيسي. يتم تشغيل الاختبارات تلقائيًا ، وإذا كان كل شيء على ما يرام ، فسيتم نقل المشروع إلى حاويات Docker وإرساله إلى Dockerhub. ثم يتم سحبها من الخادم وإطلاقها. الواجهة الخلفية هي خادم API يعمل عبر HTTP و HTTPS. في المرة الأولى التي يدخل فيها العميل إلى الموقع ، يتلقى ملفًا برمز العميل. لقد أتمتة إطلاق خادم الويب nginx باستخدام Ansible.
باستخدام Web Scrapper المكون الإضافي لـ Google Chrome ، جمع الرجال معلومات حول الأفلام والبرامج التلفزيونية. تمت معالجة البيانات في شكل ملفات csv باستخدام برنامج نصي من Python ، وتحويلها إلى استعلامات SQL صالحة ، وتم تثبيت قاعدة البيانات. يعد Nginx SSI مسؤولاً عن إرفاق الصور والأوصاف بروابط الأفلام والبرامج التلفزيونية. يتم استخدام HTTP 3.0 كبروتوكول ، لذلك كان علينا إعادة بناء Nginx بوحدات ومكتبات جديدة ، وكتابة الكثير من الرؤوس.
فريق المشروع: أندريه زوبكوف ، كونستانتين برونين ، أليسا سيليدكينا ، أوليج إليزاروف.
فيديو مع حماية المشروع .
دريلو
هذا هو مدير مهام متعدد الوظائف . ربما يكون المبدأ المطبق في Drello مألوفًا لك: يقوم المستخدم بتجميع مهامه وتعديلها على صفحة من لوحة منفصلة. على الشاشة الرئيسية ، يرى المستخدم لوحاته ، وكذلك تلك التي تمت دعوته إليها. يتم توفير العديد من القوالب للإنشاء السريع للوحات النموذجية.

يتم تقديم المهام في شكل أعمدة ، يعكس كل منها مرحلة منفصلة من المهمة.

تحتوي شاشة المهام على وصف وعلامات التصنيف وقوائم المراجعة والتعليقات التوضيحية والملفات المرفقة.

تنتقل المهام بين الأعمدة ببساطة عن طريق السحب والإفلات.

هناك إشعارات في الوقت الفعلي ، مع خيار إيقاف تشغيلها أو إيقاف تشغيلها. يمكنك إرسال رابط دعوة للتواصل مع لوحات المستخدمين الآخرين.

تمت كتابة الواجهة الخلفية بالكامل في Go ولها بنية خدمات مصغرة. تتواصل الخدمات المصغرة مع بعضها البعض بتنسيق protobuf عبر gRPC. يتم تغطية التطبيق من خلال المراقبة في شكل حزمة من Prometheus و Grafana. تُستخدم مكتبة zap للتسجيل. مخزن البيانات الرئيسي هو PostgreSQL ، أما مخزن الملفات والأفاتار فهو أمازون. يتم تخزين الجلسات في Memcache. للتواصل مع الواجهة الأمامية ، يتم استخدام موجه Echo وبروتوكول HTTPS 2.0 ومسلسل البيانات EasyJSON. يتم استخدام إطار عمل Gorm للعمل مع قاعدة البيانات. التطبيق محمي أيضًا ضد هجمات حقن CSRF و XSS و SQL. تمت كتابة الواجهة الأمامية بلغة JavaScript خالصة ، باستخدام نمط MVC ومحرك قالب Fest. استخدمنا حزمة الويب كمجمع ، ونقلناها باستخدام Babel ، ووزعنا محتوى ثابتًا من خلال طلبات Nginx والبروكسيات إلى الواجهة الخلفية.
نهاية المقدمة:https://github.com/frontend-park-mail-ru/2020_1_SIBIRSKAYA_KORONA
الخلفية: https://github.com/go-park-mail-ru/2020_1_SIBIRSKAYA_KORONA
فريق المشروع: رومان جافريلينكو ، ألكسندر ليبيديف ، تيموفي رازوموف ، أنطون تشيتفيروف ...
فيديو مع حماية المشروع .
الولاء الإلكتروني
وآخر مشروع في مجموعتنا هو مصمم بطاقة ولاء لـ Apple Wallet. يحب الرجال الذهاب إلى المقاهي ، لكنهم لا يحبون حمل البطاقات الكرتونية ذات الطوابع ، والتي يقدمون لها القهوة مجانًا. قرروا إنشاء بطاقة جميلة في Wallet حتى يتمكن أي مالك لمقهى صغير من فهم مُنشئها ، مع القدرة على إنشاء تصميم ومنطق لنظام ولاء للمقهى. بالإضافة إلى ذلك ، يمكن للبطاقات الإلكترونية تذكير العميل عند سيره بالقرب من المقهى وإخطاره بالعروض الترويجية وجمع جهات الاتصال للزوار.

تم بناء المشروع على بنية الخدمات المصغرة باستخدام بروتوكول GRPC. كلمات المرور مجزأة. تُستخدم حاويات Docker ، وتستند المراقبة والتنبيهات إلى Prometheus و Grafana. كان على الرجال أيضًا أن يدرسوا بشكل مستقل Apple Wallet API - وهي تقنية تسمح لك بإصدار بطاقات إلكترونية والحفاظ عليها لـ Apple Wallet: تغيير تصميمها وإرسال الإشعارات وما إلى ذلك.
فريق المشروع: ديمتري جولياتشينكوف ، ألكسندر أفركيف ، سيرجي بيترينكو ، دميتري بولدين.
فيديو مع حماية المشروع .
في إحدى المنشورات التالية سنتحدث عن مشاريع التخرج في تطوير C ++. يمكنك قراءة المزيد عن مشاريعنا التعليمية على هذا الرابط . وغالبًا ما تذهب إلى قناة Technostream ، حيث تظهر بانتظام مقاطع فيديو تدريبية جديدة حول البرمجة والتطوير والتخصصات الأخرى.