ラベル system の投稿を表示しています。 すべての投稿を表示
ラベル system の投稿を表示しています。 すべての投稿を表示

2021-04-11

PyCon JP 2021 ティザーサイトを公開しました

皆さん、こんにちは。
PyCon JP 2021座長のnikkieです。

本日はお知らせがあります。

 

もう知っている方もいるかもしれませんが、なんと

 

3月末に

 

PyCon JP 2021 ティザーサイトを公開

 

しました!!

 

https://2021.pycon.jp/


PyCon JP 2021 ティザーサイト https://2021.pycon.jp/

 

Contributors👏

  • 実装は2020の経験者、akkyさん中心に、興味ある人で分担して進めました!
  • デザインはAsukaさんが、和風テイストでお祭り感を表現してくれました!

 

技術スタック🔨

  • Nuxt.js
  • Tailwind CSS

詳しく知りたい方は、akkyさんが書いた「PyCon JP 2020 システムチーム振り返り【技術編】」の「フロントエンド側」をどうぞ!


リポジトリはこちら:
https://github.com/pyconjp/pycon.jp.2021.teaser

「もっとお祭り感を出したい」などありましたら、皆さんからのプルリクお待ちしています!
お気づきの点はIssueにどうぞ。


PyCon JP 2021 スタッフ募集中

ティザーサイト内のリンク(スポンサーやプロポーザルなど)は今後有効化されます。
スタッフで分担して作業を進めていますが、十分な人手があるとは言えない状況です。
ですので、PyCon JP 2021に少しでも興味があるという方、ぜひお力を貸してください!

スタッフの作業会は公開しており、スタッフ活動に興味のある方の見学はいつでも大歓迎です!
作業会の予定は以下のconnpassページで確認可能です。
https://pyconjp-staff.connpass.com/
「賑やかし枠」でぜひぜひご参加ください!

エンジニアだけでなく、エンジニア以外の職種の方や、学生さんも活躍しています!
カンファレンスを裏側から支えることに興味のある方、一緒に2021年のカンファレンスを創っていきましょう!

スタッフ募集について、詳しくは以下を見てください。
https://pyconjp.blogspot.com/2021/01/2021-staff-application-start.html

2020-10-16

PyCon JP 2020 システムチーム振り返り【技術編】

 はじめに

みなさん、こんにちは。システムチームのあっきーです。PyCon JP 2020のシステムチームの活動について紹介するブログの第3弾です。以前の投稿は下記から参照ください。

PyCon JP 2020 システムチーム振り返り【スケジュール編#1】

PyCon JP 2020 システムチーム振り返り【スケジュール編#2】

本投稿ではPyCon JP 2020のWebサイトをどのように作ってるのか、その裏側について紹介します。少しでも皆さんのお役に立てるような情報を公開できるように頑張って書きましたので是非参考にして頂ければ幸いです。(*^▽^*)


フロントエンド側

最終的なフロントエンドの使用技術は下記になります。

  • Nuxt.js(axios,i18n,content)
  • Tailwind CSS

実際のリポジトリは下記になりますので、興味ある方はご確認ください。

pycon.jp.2020.ui

技術選定についていろいろと議論した結果、Reactよりも使用経験者が多いNuxt.jsを採用することになりました。また、Vuetify等のフレームワークを使用する案も出ましたが、フレームワーク自体の習得が必要なため少しハードルが高いという結論に至りました。Tailwind CSSは通常のCSSの知識があれば利用可能であるため、比較的ハードルが低いと感じ採用しました。

PyCon JP 2020のサイトは原則WebサイトからのAPI呼び出しは実施せずにビルド時にデータを埋め込み、静的サイトとしてジェネレートしてホスティングする仕組みを採用しています。ページの性質として動的なコンテンツがほとんどないので、デプロイ時に静的サイトとしてジェネレートする方がメリットが多いと考えたためです。

具体的にはPyCon JP Blogの最新のブログ記事のタイトルとセッションデータを埋め込んでいます。ブログ記事はBloggerのAPI経由で、セッションデータはsessionizeのAPI経由でデータを取得しています。

上記構成の場合、ブログ情報とセッション情報はビルド、デプロイ作業を実施しないと内容が更新されません。内容の更新については深夜に1回自動でビルド、デプロイするような仕組みを導入しています。

バックエンド側

次にバックエンドの技術について説明します。

【AWSを採用した理由】

原則リソースはAmazon Web Services(以下AWS)で作成することにしています。複数人で開発を進める場合、アカウント周りがしっかりしていないと共通のアカウントを使いまわす、という運用になってしまうこともあります。アカウント管理をしっかりできるように、少ない人数で回せるようにという事でクラウドメインでの方針としています。Google Cloud PlatformではなくAWSを選んだ理由としては詳しい人が多かったからです。

【ホスティング環境について】

開発環境のホスティングはsurgeを使っています。GitHub Actionsでsurgeへの自動デプロイの設定をしているので、developブランチへマージされたら自動的に開発環境のデプロイが実行されます。ステージング環境と本番環境はAWS Amplify Consoleを使っています。こちらもstagingブランチとmasterブランチにマージされたら自動的にデプロイされるように設定しています。

【セッションデータの管理について】

セッションデータはsessionizeというサービスで管理しています。API経由でセッションデータを取得することができるので、ビルド時にセッションデータを取得し、フロントエンド側で利用しやすいように整形しています。このセッションデータ整形プログラムはPythonで作られています。

【トラブルシューティング】

セッションごとの固有URLについて

自分の気になるセッション、良かったセッションをTwitter等で公開する場合、セッションごとの固有URLがあると便利です。この機能は開催直前に発覚し、急遽実装しました( ° ω ° ; )基本的にはVue Routerのクエリパラメータ($route.query)の機能を使って実装しています。

サイトURLがサブディレクトリ構成だった

PyCon JPのサイトは年度ごとのサブドメインではなくnginxのサブディレクトリ構成となっています(https://pycon.jp/2020/)。通常のNuxtの設定だとサブディレクトリには対応できないのでBase URLを本番環境のみ変更するような仕組みを入れています。

参考:API: router プロパティ
https://ja.nuxtjs.org/api/configuration-router/

多言語対応、セッションデータ整形、読み込みなどなどいろいろと紹介したい実装もあるのですが、長くなりそうなのでこの辺で(o´・ω・`o)ノシ

トラブルも多かったですが、いろいろな方のサポートのおかげで無事サイトが完成し、皆さんにお届けすることができました。この内容が少しでも皆さんのお役に立てれば幸いです。ヾ(*´∀`*)ノ

2020-09-30

PyCon JP 2020 システムチーム振り返り【スケジュール編#2】

はじめに

皆さんこんにちは。PyCon JP 2020システムチームの振り返りブログ第2弾です。今年のシステムチームの活動の裏側について紹介しちゃいます。前回のブログの続きになりますので、もしよければ前回のブログもご覧ください。

前回のブログはこちら
PyCon JP 2020 システムチーム振り返り【スケジュール編#1】

スケジュール編#2

2020/6 - 7
この期間で本番サイト実装の実装、公開を行いました。当初は6月15日公開の予定でしたがトラブルが発生し、最終的にWebサイトの初回公開は7月7日となりました。このあたりの技術的な話は別の投稿で、、、
デザインチームとシステムチームともに進捗が遅れている認識があったため、必要であれば毎週進捗確認のミーティングを実施してカバーしてました。デザインのやり取りはAdobe XDを使用することでだいぶコミュニケーションの齟齬が無くなりスムーズに進めることができました。

【ワンポイント】
メンバー全員がボランティアということであまり頻繁に打ち合わせを設定することは控えてました。ですがスケジュールがピンチということで、毎週の進捗、認識合わせの打ち合わせを実施したのですが結果的には成功だったと思っています。必要であればその場でのコミュニケーション、各週の進捗打ち合わせをすることも大切だと学びました。

2020/8初旬-本番まで
この時期には具体的なコンテンツの内容が確定し始める段階でした。スポンサー情報や行動規範の内容、キーノートの情報などを本番に反映しはじめ、そろそろセッションの内容も確定し実装を進める段階でした。タイムテーブルページの実装工数がかなり多かったため、タイムテーブルページは2段階で公開する方針となりました。

1段階目はsessionizeの埋め込みタイムテーブルを表示し、並行して本番用のタイムテーブルを実装するように進めました。


2段階目の公開で本番用のタイムテーブルに差し替えました。


実はsessionize埋め込みタイムテーブルと本番用のタイムテーブルを別々のパスで作成していたため、以前のパス(/session/)でアクセスすると前のタイムテーブルが見えてしまう、という状態でした。既にいろいろな記事等でタイムテーブルのリンクを記載していたため、現状のサイトでは本番用のタイムテーブル(/timetable/)にリダイレクトするように変更してます。;(´◦ω◦`):

2020/8/28-29 イベント本番
イベント本番で不具合が発覚することを想定し、システムチームのメンバーは常に対応できるようにしていました。実はTwitterで要望頂いていたセッションモーダルをESCキーで閉じるようにする修正は当日修正して当日デプロイしてました(ง •̀ω•́)ง✧


また、スピーカの方がアップロードされた資料は、スピーカの発表終了後数時間後にWebサイトに反映していたことをご存じでしょうか?当日に本番デプロイを何度も何度も実施していたので、システムチームとしてはヒヤヒヤしっぱなしでしたΣ(; ゚Д゚)ウハッ


【ワンポイント】
不具合修正、資料のアップロードなど本番時のWebサイトの修正が結構ありました。詳細は別記事でまとめる予定ですが、ビルド、デプロイ回りをできるだけ自動化することで、本番時の修正もスムーズに実施できたと思います。

2020/9 イベント終了後
スピーカーの方の発表資料の更新と、YouTubeの動画URLの修正作業を実施しました。当日のYouTube Liveは長時間の一つの動画でしたが、セッションごとに分割した動画へのリンクに修正したものへ修正してます。皆さんぜひ見てくださいね。


最後に

振り返ってみると1年近く活動してましたね。当初からスケジュールはしっかりしようとはしてましたが、初めてのことも多く結果的にWebサイトの公開も遅れてしまいました。PyCon JP 2021の開催はまだ確定ではありませんが、今年の知見を活かしてもっとより良いイベントにできるように頑張りたいと思います。(๑•̀ㅂ•́)و✧

2020-09-09

PyCon JP 2020 システムチーム振り返り【スケジュール編#1】

はじめに

みなさんこんにちは。PyCon JP 2020システムチームです。 今年のPyCon JPはオンラインカンファレンスでしたが、めちゃくちゃ盛り上がりましたね。参加本当にありがとうございました。

さて、本投稿を含めて3回、ノウハウというほど大層なものでは無いのですが、システムチームがどのような活動をしていたのか、カンファレンスの裏側について紹介しちゃいます(*^▽^*)今後オンラインカンファレンスが増えてくるかと思いますので、少しでも参考になる情報を載せることが出来るように頑張って書きます。\\٩( 'ω' )و ///


そもそもシステムチームって何するところなん?

PyCon JPは全員ボランティアで運営しているカンファレンスになります。今年のカンファレンスはそれぞれのメンバーがチームを横断して活躍していましたが、役割を明確にするという意味で、複数のチームが存在します。その中でのシステムチームの役割について説明します。
今年のカンファレンスではシステムチームは主に「Webサイト」周りを担当しました。Webサイトとは「ティザーサイト」と「本番サイト」の2つになります。




では、カンファレンス本番までスケジュールについて見ていきましょう。

スケジュール編#1

2019/12/26  システムチームキックオフ

カンファレンス自体は2020年8月28日からですがシステムチームのキックオフは実は昨年度に実施してました。その際はオンラインカンファレンスになるとはまだ決定しておらず、オンラインでもオフラインでもカンファレンスの成功を目指して頑張ろう、という感じでした。

2020/1 - 3

この時期はティザーサイトの作成、本番サイト作成の技術スタックの選定等を実施してました。ティザーサイトは出来るだけ早めに公開したい、という思いがあり昨年度使用したページを改変して再利用する方針に決まりました。
ティザーサイトの最終的なページはこんな感じです。


【ワンポイント】
本番サイトは毎年大きく変更されることが予想されますが、ティザーサイトは年度ごとにあまり変化が無いかと思います。今回は昨年のものを使いまわせるようにリポジトリ管理されていたため非常に少ない工数で作ることができました。ティザーサイトに関しては外注するのもありかと思いますし、数年間利用できそうな技術のみを使って作ると、来年度も再利用できるのでよいと思います。

2020/4

この時期は昨年度のサイトの仕様洗い出しを主に実施していました。全てをボランティアで回している関係で、Webサイト制作を内製するか、外注するかという議論が起きていました。内製するにしても外注するにしても、サイトの仕様洗い出しは絶対に必要ということで、どの程度の規模感のサイトなのかを把握するために仕様を洗い出してメンバーの認識合わせを実施しました。


【ワンポイント】
PyCon JPは、2018年、2019年のイベントのサイトを残しており、参照できるようになってます。今回の仕様の洗い出しの際に昨年度のサイトを見ながら、どのページが必要なのか、どのような機能が必要なのか、という洗い出しを実施しました。カンファレンスページは1年限りで閉じてしまうのではなく、ページが何年も残るようにすることで、来年度の作業が確実に減ると思います。


2020/5

システムチームとデザインチームの連携がうまくいっておらず、Webサイトのデザインがなかなか決まらないという問題が起きていました。この時期にはじめてTOPページのデザインが固まり、実装をはじめられる状態になりました。デザインチームとシステムチームとのデザインのやり取りはXDを使って行いました。また、デザインチームとシステムチームの垣根を超えて協力しやすくするために、SlackにWebサイト作成用のチャンネルを新しく作成してよりコミュニケーションが取りやすくなるように工夫しました。


【ワンポイント】
今回Webサイトのデザインをデザインチームにお任せするというスタンスをとっていましたが、この方法は良くなかったです。Webサイトのデザインを担当する人のレベル感によって認識にばらつきが発生し、コミュニケーションでの齟齬が多発してました。Webサイトのデザインを担当頂く方はシステムチームとデザインチームの両方を兼任する立ち位置が良かったと思います。また、デザインを作成できる人がいない場合は、デザインを早めに外注するという判断も必要かと思います。
(デザインの作成が遅れる→Webサイトの実装が遅れる、ということが発生するため)

少し長くなりましたので、この投稿ではここまでとします。本番までと本番後の作業については次の投稿で書きたいと思います。次回もお楽しみにー(*^▽^*)

2019-12-30

PyCon JP 2020 システムチームキックオフミーティングを行いました

こんにちは、PyConJP 2020 システムチームスタッフのフクタです。

先日12月26日、PyCon JP 2020 システムチームキックオフミーティングを開催しました。


これまでSlackでのやり取りは多少あったものの、
2020スタッフのシステムチームが集まったのは今回が初めてです✨

初回ということで、がっつり自己紹介からのスタートしました。

今回はシステムチームリーダー(仮)が自己紹介テンプレートを用意してくださり、
これが個人的にはとても良かったです。

フリースタイルだと時間を気にするあまり簡潔になり過ぎて
記憶に残らなくなってしまうところがあるように思います。

確かに、今回も、時間のことを言うと、
自己紹介にえらい時間がかかって残りが巻きになった
という事実はあるものの、一発で全員を覚えられたあたり、
テンプレ自己紹介は有意義だなぁとしみじみ感じておりました。
さすがです!



さて、自己紹介後の本題ですが、

  • 当日に向けたスケジュールについて
  • 直近のタスク、今できること
    • ティザーサイトなど
  • 当日にやりたいこと
    • 混雑状況の通知など
  • 他のチームとの連携について
  • 技術選定の話

等のディスカッションを行いました。

PyCon JP 2020の開催はまだ少し先であるものの、
開催することは決定しております!
少しでも早くその情報をお届けできるよう、
サイトの準備を進めていきます。

また、参加者の皆さまがカンファレンスを楽しんでいただけるよう、
システム面から精一杯頑張っていきたいと思います!


--------

今回はいい生活さんに会場をご提供いただきました。
ありがとうございました!!



※PyCon JP 2020のスタッフ活動はコミュニティー活動に理解を頂いている企業さんの協力に支えられています

--------

PyCon JP 2020ではスタッフの募集を行っています!
このフォームからお申し込みください。
カンファレンスを裏側から支えることに興味のある方ぜひ一緒に2020のカンファレンスを組み立てていきましょう!

今回のようなチーム内での会議以外にもスタッフ全体会議も毎月行っています。今年はスタッフ全体MTGを第一木曜日を中心に全体会議を、第三木曜日を中心にスタッフ作業日を開催していく予定ですので興味のある方はぜひ「にぎやかし枠」で参加をしてみてください
※1月は都合により第一水曜日 ,第三水曜日での開催になります
次回の全体MTGは年明け1月8日(水)に開催します。
スタッフ作業日は年明け1月22日(水)に実施します。