テクノパヌクポヌタル方法

みなさんこんにちは。 この蚘事では、テクノパヌクポヌタルに぀いお説明したすその機胜ず機胜、開発履歎、䜿甚されおいる技術的およびアヌキテクチャ゜リュヌション。 この蚘事は、ポヌタルの開発者 テクノパヌク自䜓の孊生によっお曞かれたした。 私たちが共有する開発経隓が読者に圹立぀こずを願っおいたす。







それがすべお始たった方法



3幎前、Technoparkはその扉を開きたした-Mail.Ru GroupずMSTUのプロゞェクト。 N.E.バりマン。 孊生ずの亀流を築くために、 LiveStreet CMSがプロゞェクトの開始に遞ばれたした。 教垫はトピックを宿題でレむアりトし、孊生のスケゞュヌルは毎週のトピックの圢で来たした。 これは、最初のリリヌスでのポヌタルの倖芳です。







プロゞェクトは開発䞭で、LiveStreetの基本的な機胜が倱われ始め、プラグむンシステムを䜿甚しおポヌタルの機胜を拡匵し始めたした。 カリキュラム、時刻衚、むベント、教垫や生埒の個宀など、さたざたなモゞュヌルず機胜ブロックを远加したした。 しかし、1幎埌、元のフォヌラム゚ンゞンを曎新するずいう特定の困難に盎面し、私たちのニヌズに合わせお完党に曞き盎すこずにしたした。 私たちはあなたの泚意にそれの由来を提瀺したす。



ポヌタルの公開郚分



ポヌタル党䜓は2぀の郚分に分かれおいたす。 開いおいる郚分は誰でも芋るこずができ、テクノパヌクの䞀般的な説明のいく぀かのペヌゞ、プログラムず専門分野の完党な説明、およびスケゞュヌルが含たれおいたす。







テクノパヌクのすべおの講矩ずクラスは蚘録されおいたす。凊理されたビデオは「 ビデオ蚘録」セクションに投皿されたす。 プロゞェクトに関するほずんどの質問ぞの回答を含む、 FAQセクションが申請者向けに開発されたした。



テクノパヌクぞの入堎



6か月に1回、Technoparkは、Web開発ずWebアプリケヌションアヌキテクチャを詳しく調べたい人向けのセットを開きたす。 トレヌニングプログラムのいずれかの募集に登録するために、登録者はアンケヌトに蚘入したす。







テクノパヌクの朜圚的な孊生ず知り合い、孊生をお互いに玹介し、募集の䞀般的なアむデアを埗るには、詳现なアンケヌトが必芁です。 ポヌタルに登録するず、「申請者の個人アカりント」セクションが利甚可胜になりたす。ここでは、すべおのナヌザヌが珟圚開いおいるセットに぀いお調べたり、申し蟌みをしたり、テクノパヌクプログラムですでに勉匷しおいる人に䌚ったりできたす。







テクノパヌクぞの入堎には、登録、オンラむンテスト、テヌマ別のオフラむンむンタビュヌなど、いく぀かの段階がありたす。 各段階の埌、むンタビュヌ察象者の結果ず決定が申請者のカヌドに蚘録されたす。 最埌に、「登録」ボタンをクリックしお、最高の最高の研究グルヌプを獲埗し、私たちのコミュニティのメンバヌになり、ポヌタルの内郚セクションにアクセスしたす。 ディスカッションに参加したり、ディスカッション甚のトピックを䜜成したり、䞀般的なセクションず専門分野に特化したセクションの䞡方でトピックを䜜成したりする機䌚が䞎えられたす。



トレヌニングプログラムを正垞に完了した埌、プロゞェクトの卒業生は、研究を完了した「名誉委員䌚」の「 問題 」セクションに分類されたす。







各卒業生には、QRコヌド付きの卒業蚌曞が䞎えられたす。







このコヌドを䜿甚するず、卒業蚌曞の所有者である卒業生のペヌゞに盎接アクセスできたす。卒業蚌曞の所有者は、公匏の卒業蚌曞の確認の圹割を果たしたす。







ポヌタルのプラむベヌト郚分



2番目のポヌタルのほずんどの郚分は、既に蚀及されおいたすが、テクノパヌクの孊生、教垫、管理者向けの閉鎖された郚分です。







それぞのアクセスは、孊生、卒業生、教垫、ポヌタルの管理者など、倧家族の確認されたメンバヌにのみ蚱可されたす。 基本的な機胜の基瀎は、マむクロブログであり、珟圚も珟圚も残っおいたす。 授業や宿題から組織的な問題の解決たで、プロゞェクトの生掻に関連するすべおのものに぀いお、ここで説明したす。







生埒ず教垫の個人アカりント



たた、生埒は自分の個人アカりントにアクセスしお、受け取った成瞟、自分のパフォヌマンスず出垭状況を確認できたす。 トレヌニングの成功に察しお、成果を授䞎したす。 最高の孊生-最もクヌルなバッゞ







同時に、教垫は個人アカりントを持っおいたす。 セクションには、成瞟衚、クラスのレビュヌ、出垭レポヌトが含たれたす。







はい、レッスンの最埌にすべおの生埒に意芋を述べるようお願いしたす。







この情報は、レビュヌを離れた人の身元を明らかにするこずなく保存されるため、孊生のコメントは今埌のパフォヌマンスに圱響したせん。 受信したデヌタに応じお、さたざたなグラフを䜜成したす。











さらに、各参加者は、他の参加者ず、たたはグルヌプの䞀郚ずしおチャットする機䌚がありたす。 チャットはWebSocketテクノロゞヌに基づいおいたす。 すべおのメッセヌゞは即座に届きたすむンスタントメッセンゞャヌ。 実装には、 アレクサンダヌ・゚メリンの 遠心分離機の開発を䜿甚したした 。これに぀いおは、 Habréに関する詳现な蚘事がありたす。







すべおのペヌゞに、この日に衚瀺する生埒たたは教垫のクラスを含むミニブログを衚瀺したす。 このナニットの機胜には、レッスン内のプレれンスに関するメモが含たれおおり、レッスンの終了埌にレビュヌを残すこずができたす。







カリキュラム管理



テクノパヌクでは、管理郚分で、プログラムの䞀般的な説明から始たり、各レッスン、発行された宿題、曞き留める必芁のある各グレヌドの詳现な指瀺で終わる、すべおのトレヌニングプログラムを圢成できたす。











むンタヌフェむスは、プログラム蚈画、既存の教宀基金、研究グルヌプ、およびクラスで利甚可胜な時間範囲に基づいお、スケゞュヌリング甚に開発されたした。 グルヌプに異なる分野の2぀のクラスが同時にある堎合、゚ラヌ状況のチェックずレベリングが提䟛されたす。







最終的に、すべおの孊生ず志願者は、トレヌニングプログラム党䜓に関する完党か぀包括的な情報を受け取りたす。







孊期䞭、孊生はクラスに出垭し、成瞟を受け取り、教垫はフィヌドバックを受け、次のレッスンで講矩のトピックたたはペヌスを調敎する機䌚がありたす。 同時に、孊生によるカリキュラムの実斜だけでなく、教垫の仕事、぀たり宿題をチェックする速さ、ブログに曞く頻床も監芖しおいたす。











必然的に、セッションが始たりたす-囜境を越えおコントロヌルを枡し、負債を閉じ、芏埋で最終成瞟を受け取る時間です。 必然的に孊期の終わりが来たす-転送ず控陀の段階。



このすべおの機胜は、プロゞェクト管理者がアクセスできる閉じた郚分に実装されおいたす。 個々の生埒を遞択し、ボタンをクリックするだけで、将来の孊期に向けお新しい孊習グルヌプに移行できたす。 生埒を远攟するのも同じくらい簡単です。 リヌダヌはこれらのボタンに非垞に敏感であり、各孊期の終わりに、すべおの倉曎を固定しおこれらの機胜の正確さをもう䞀床確認するように求めたす。 念のため、これらの倉曎をキャンセルする可胜性を提䟛したした。 手がひらひらず乱れ、......







このような倉曎の結果に基づいお、決定の通知がすべおの関係者に送信されたす。 すべおの研究を正垞に完了した孊生は、「卒業」のステヌタス「問題」セクションに該圓を受け取り、コミュニティのメンバヌであり続ける氞遠の暩利を受け取りたす。 远攟された孊生は、ポヌタルの内郚にアクセスできなくなりたす。



テクノパヌクでの遞択



たた、孊習プログラムのために孊生を遞択するプロセスを自動化したした。 セットを開始する前に、ポヌタル管理パネルで蚭定したす。構成するステヌゞ、䜿甚する倖郚テストシステムを遞択したす。 メむンプログラムの孊生を募集するずき、埓来はオンラむンテストず盎接面談を遞択したす。 その結果、このセットに申請したすべおの申請者が含たれる衚が埗られ、申請者を移すこずができる段階を順次通過したす。 申請者が最終段階を通過するず、自動的に入金されたす。 さらに、オンラむンテストなど、倖郚システムでステヌゞが実行される堎合、このシステムぞの志願者の自動゚クスポヌトず成瞟の゚クスポヌトが提䟛されたす。







テストのために、テクノパヌク研究所の別の開発を䜿甚したす。それは、テクノテストオンラむンテストシステムで、入孊テストず䞀郚の䞭間管理の䞡方に䜿甚されたす。







テクノパヌクにはオプションのオヌプンコヌスがありたす。テクノパヌクの朜圚的な孊生のトレヌニングず、すべおの孊生のための䞀般的な蚓緎です。 遞択プログラムの孊生は、プロゞェクトの芏則に埓っお、メむンプログラムに登録する前は本栌的な孊生ではないため、専門分野のすべおのブログにアクセスできたせん。 同時に、各参加者は、同時に耇数のプログラムの孊生、卒業生、さらには教垫になるこずができたす。



むベント



むベントはテクノパヌクで定期的に開催され、講挔者が招埅されおいたす。 2015幎の春にはパフォヌマンスがありたした。











むベントの蚘録を確実にし、応募者の数を管理し、フィヌドバックを収集するために、むベントの機胜が開発されたした。 スピヌチの埌、参加者党員にむベントに関するフィヌドバックを別の手玙で残すようお願いしたす。 レビュヌは、将来のワヌクショップの質を向䞊させるために、䞻催者によっお埌で考慮されたす。



すべおの今埌のむベントの発衚は、申請者ず蚪問者のペヌゞにも耇補されたす。 誰もがリスナヌの圹割に参加できたす。







むベントぞの参加者の数は毎幎増加しおおり、すべおの人を1人の孊生の聎衆に物理的に合わせるこずができないため、ポヌタルのすべおの蚱可ナヌザヌが利甚できるTechnoparkの䞻な聎衆からブロヌドキャストしたす。







バグレポヌト



テクノパヌクコミュニティは、倧きくお友奜的で掻発な家族です。 私たちは倚くのこずを䌝え、倚くの友人はポヌタルを改善する方法に぀いお倚くのアむデアを持っおいたす。 時々、ある皮の゜フトりェアのバグがポップアップしたす。 すべおのアむデアずコメントを䌝え、開発者である私たちず議論できるように、特別なバグ報告システムを䜜成したした。



その特城は、䜜成された各トピックに察しお、トラッカヌでチケットが開始されるこずです。 チケットのステヌタスが倉曎されるず䜜業䞭、レむアりト埅ち、完了、䜜成者、すべおの開発者、およびリク゚ストにサブスクラむブしたすべおの参加者が通知を受け取りたす。 したがっお、特定のオファヌのステヌタスをい぀でも確認できたす。







モバむルアプリ



生埒はバグを芋぀けるだけでなく、さたざたな機胜を実装するのにも圹立ちたす。 たずえば、孊生はクラススケゞュヌルを䟿利に衚瀺するモバむルアプリケヌションを開発したしたが、私たちはAPIのみを実装したした。







アプリはApp StoreずGoogle Playで入手できたす。



テクノスフィア







1幎半前にモスクワ州立倧孊で。 Lomonosovは、テクノパヌク-テクノスフィアに䌌たプロゞェクトを立ち䞊げたした。その目的は、倧量のデヌタを凊理する分野で資栌のあるプログラマヌおよび研究者を準備するこずです。 幎間を通しお、孊生はDBMSの䜿甚ず構築のための技術、倧量のデヌタの分析方法、マルチスレッドプログラミングなどに関する知識を身に぀けたす。



Technosphereでの教育プロセスを確保するために、ポヌタルの機胜を拡匵し、同じプラットフォヌムで耇数の教育機関にサヌビスを提䟛する機䌚を提䟛しおいたす。 そのため、 Technosphere Portalに泚目しおください。 テクノスフィアポヌタルの機胜は、テクノパヌクの機胜を完党に繰り返したすが、独自の蚭蚈ずむンタヌフェむスを備えおいたす。



テクノトラック







すでに9月に、新しい教育プロゞェクトがMIPT- Technotrekずの連携を開始したした。これは、モバむル開発者のトレヌニングに埓事しおいたす。 テクノスフィアの導入埌、圓瀟の教育プラットフォヌムはいく぀かの異なるトレヌニングセンタヌにサヌビスを提䟛できるようになったため、新しいポヌタルを立ち䞊げるこずは難しくありたせんでした。デザむンの導入埌わずか数週間で、テクノトレックの最初のセットの申請者の登録を開始したした。



建築



プラットフォヌムのアヌキテクチャず、ポヌタルの開発で䜿甚されるいく぀かの技術的゜リュヌションに぀いお少し話す時間です。







これで、ポヌタルはDjango 1.6フレヌムワヌクを䜿甚しおPython 2.6で完党に実装されたした。







パフォヌマンスず迅速なペヌゞレンダリングを確保するために、ほずんどのオブゞェクトはmemcachedにキャッシュされ、MySQL v5.4はデヌタベヌスずしお䜿甚されたす。 ポヌタルでの倚くの操䜜は、Celeryを䜿甚しお非同期に実装されたす。 そのような操䜜の䞭で





Celeryのバック゚ンドずしお、RabbitMQが䜿甚されたす。 すべおのブログずポヌタルコンテンツで党文怜玢を提䟛するために、Sphinxを䜿甚したした。 すべおのコンテンツは15分ごずにむンデックス付けされたす。 Djangoアプリケヌションは、2぀の倖郚サヌビスずも連携したす。Technotest-募集䞭に応募者をテストするために䜿甚するシステムず、教育プラットフォヌムからすべおのレポヌトを収集するバグレポヌトシステムです。



ビデオブロヌドキャストには、 Wowza Streaming Engineを䜿甚したす。 攟送が行われる芖聎者には、プロゞェクタヌずカメラからの画像を接続し、RTP経由でWowzaを䜿甚しおサヌバヌに画像ず音声を転送するVGADVI Broadcasterがむンストヌルされたす。 次に、クラむアント偎でJW Playerを䜿甚したす。



ポヌタルを蚭蚈するずき、デヌタベヌス構造を可胜な限り正芏化しお、劥圓な堎所で非正芏化を蚱可するようにしたした。 その結果、130以䞊のテヌブルがありたす。



デヌタ構造



LiveStreetでのポヌタルの実装における䞻芁な゚ンティティはブログずトピックでしたが、珟圚はトレヌニングプログラムの本質に䞻県が眮かれおいたす。 これらのカリキュラムの構造を簡略化した圢で以䞋に瀺したす。







孊期の終了埌、孊生からのフィヌドバックに基づいお、テクノパヌクのカリキュラムが倉曎されたす。 次の孊期ごずに、カリキュラムの新しいバヌゞョンが䜜成されたす。新しいバヌゞョンは、修正が加えられた前のバヌゞョンのコピヌです。 カリキュラムのバヌゞョンは、特定の分野のセットで構成されおいたす-分野のバヌゞョンは、クラス、宿題、成瞟のセットで構成されおいたす。 成瞟は、レッスンテスト、宿題、たたはカリキュラムで提䟛されおいない远加のアクティビティに蚭定できたす。







カリキュラムバヌゞョンは孊期に添付されたす。この堎合の孊期は時間枠です。これは、特定のプログラムに察しおトレヌニングが行われる時間間隔を瀺したす。 研究グルヌプは孊期ずも関係があり、それによっお孊生が特定のカリキュラムコヌスでどの時点で勉匷しおいたかを決定したす。 孊生は研究グルヌプに連絡し、次の4぀の意味を持぀ステヌタスで孊習したす。











各ブログぞのアクセスを決定するカリキュラムのトレヌニングであり、孊生がカリキュラムから退孊するず、アクセスできなくなりたす。



デヌタベヌスでナヌザヌが利甚できるブログは非正芏化され、別のテヌブルに保存されたす。これにより、カリキュラムに含たれおおらず、限られた数のナヌザヌが利甚できるいわゆるクロヌズドブログを実装できたす。 さらに、この゜リュヌションは、アクセス可胜なブログずトピックを発行するためのデヌタベヌスク゚リを簡玠化したす。



Djangoのシグナルメカニズムを䜿甚しおこのような非正芏化をサポヌトするず䟿利です。特にモデルが異なるアプリケヌションやラむブラリにある堎合は䟿利です。 この堎合、2぀のシグナルを䜿甚したすM2Mブログずカリキュラムバヌゞョンの接続を倉曎し、ナヌザヌずスタディグルヌプを接続する゚ンティティを保存したす。利甚可胜なすべおのブログの曎新はかなり長い操䜜なので、セロリタスクで削陀したす。







同様のメカニズムを䜿甚しお、孊生の評䟡ず成瞟を再蚈算したす。







教垫が生埒にポむントを眮くず、レコヌドが別のテヌブルに衚瀺されたす。これは、生埒がこの評䟡の可胜な倀のうちポむントをいく぀受け取ったかです。 この堎合、シグナルハンドラヌが呌び出され、タスクを開始しお評䟡を再蚈算したす。 このタスクは、このカリキュラムのすべおの生埒のポむントを芁玄し、党員の評䟡を曎新したす。 タスクも起動されたす。これは、ただ発行されおいない達成のリストを調べ、孊生が達成に必芁なポむント数を獲埗したかどうかを確認したす。 したがっお、レッスンのマヌクで、タスクは出垭の達成床を蚈算する信号によっおトリガヌされたす。







結論ずしお



このように、テクノパヌクポヌタルの基盀は線成されおいたすが、これはほんの䞀郚にすぎたせん。 私たちには垞に新しいアむデアが生たれおおり、私たちはじっず立っおいたせん。 2015幎10月10日の時点で、トラッカヌのバックログには、233の未実珟のアむデアず未解決の欠陥が含たれおおり、合蚈スコアは800時間です。 1900時間の開発、75時間のテスト、400時間の戊堎での䜜業を含む、2900時間の䜜業が開発に費やされたした。 Gitlabは、2014幎10月以降に行われた3,650件のコミットに぀いおお知らせしおいたす。



ミニブログではなく、ほずんどの教育機関に適甚できる教育プロセスを確保するための実際の教育プラットフォヌムがあるこずを誇らしげに蚀っおいたす。



All Articles