オープンセミナー広島の公式ウェブサイトのソースコードリポジトリです。オープンセミナー広島は、広島で開催される技術者向けの非営利の技術カンファレンスです。
このプロジェクトは、React と react-static を使用した静的ウェブサイトで、オープンセミナー広島の情報を発信するために使用されています。2018年以降のイベント情報を管理しており、スピーカー、スポンサー、スタッフ情報、セッション詳細などを提供しています。
.bundle/ - バンドル関連の設定ファイル
.devcontainer/ - VS Code DevContainer設定
├── Dockerfile - 開発環境のDockerfile
└── devcontainer.json - DevContainer設定ファイル
.github/
├── workflows/ - GitHub Actions ワークフロー
│ └── deploy.yml - デプロイ自動化設定
└── prompts/ - GitHub Copilot プロンプト
└── create-new-page.prompt.md - 年度別ページ作成プロンプト
artifacts/ - react-staticビルドの成果物
public/
├── img/ - 画像リソース
│ ├── 2018/ - 2018年イベント用画像
│ ├── 2019/ - 2019年イベント用画像
│ ├── 2020/ - 2020年イベント用画像
│ ├── 2022/ - 2022年イベント用画像
│ ├── 2023/ - 2023年イベント用画像
│ ├── 2024/ - 2024年イベント用画像
│ └── 2025/ - 2025年イベント用画像
└── pdf/ - PDFリソース
src/
├── atoms/ - 最小単位のUIコンポーネント
├── components/ - 再利用可能なUIコンポーネント
├── containers/ - ページのコンテナコンポーネント
├── img/ - ソースコードで使用する画像
├── organisms/ - 複合的なUIコンポーネント(AppBar, Footer, Menuなど)
├── pages/ - 各ページのコンポーネント
│ ├── 2018/ - 2018年のイベントページ
│ ├── 2019/ - 2019年のイベントページ
│ ├── 2020/ - 2020年のイベントページ
│ ├── 2022/ - 2022年のイベントページ
│ ├── 2023/ - 2023年のイベントページ
│ ├── 2024/ - 2024年のイベントページ
│ └── 2025/ - 2025年のイベントページ
└── resources/ - データリソース(スピーカー情報、セッション情報など)
├── color.js - 共通カラー設定
├── index.js - リソースのエクスポート設定
├── seminarList.js - セミナー一覧情報
├── 2018/ - 2018年のイベントデータ
│ ├── index.js - 2018年データのエントリポイント
│ ├── sessions.js - セッション情報
│ ├── speakers.js - スピーカー情報
│ ├── sponsors.js - スポンサー情報
│ └── staffs.js - スタッフ情報
├── 2019/ - 2019年のイベントデータ
├── 2020/ - 2020年のイベントデータ
├── 2022/ - 2022年のイベントデータ
├── 2023/ - 2023年のイベントデータ
├── 2024/ - 2024年のイベントデータ
└── 2025/ - 2025年のイベントデータ
設定ファイル
├── .babelrc - Babel設定
├── .eslintrc.js - ESLint設定
├── .flowconfig - Flow型チェック設定
├── .stylelintrc - StyleLint設定
├── prettier.config.js - Prettier設定
└── static.config.js - react-static設定
- React - UIライブラリ
- react-static - 静的サイトジェネレーター
- Material UI Components - UIコンポーネント
- Styled Components - CSSスタイリング
- Node.js v12以上(v12で動作確認済)
- Yarnパッケージマネージャー
# 依存パッケージのインストール
$ yarn
# 開発サーバーの起動(http://localhost:3000/ でアクセス可能)
$ yarn start
# 静的ファイルのビルド
$ yarn build
ビルドは、ソースコードから静的ファイル(HTML、CSS、JavaScript)を生成するプロセスです。yarn build
コマンドを実行すると、dist
ディレクトリに静的ファイルが生成されますが、まだWebサーバーには公開されません。
ビルドプロセス:
- Reactコンポーネントとリソースが処理され、最適化されます
- JavaScriptコードはバンドルされ、ミニファイされます
- CSSスタイルは抽出され、最適化されます
- 静的HTMLファイルが生成されます
- すべての成果物が
dist
ディレクトリに出力されます
注意点:
ビルドで生成されるファイルはCSSやJavaScriptの参照パスが絶対パス形式で記述されるため、yarn serve
などでローカルサーバーを起動しても正しく表示されません。ビルドされたファイルはGitHub Pagesなど、適切な環境にデプロイしてご確認ください。
GitHub Actionsを使わず、手動でデプロイする場合は以下のコマンドを実行します:
$ yarn deploy
このコマンドは yarn build
でビルドした後、gh-pages
を使用して dist
ディレクトリの内容を master
ブランチにプッシュします。
デプロイは、ビルドされた静的ファイルをWebサーバー(GitHub Pages)に公開するプロセスです。yarn deploy
を実行すると、ビルドされたファイルがGitHubのmaster
ブランチにプッシュされ、GitHub Pagesで公開されます。
デプロイプロセス:
yarn build
コマンドが実行され、ビルドプロセスが完了しますgh-pages
パッケージがdist
ディレクトリの内容を一時的なGitリポジトリとして準備しますdist
ディレクトリのコンテンツがmaster
ブランチにコミットされます- 変更が
master
ブランチにプッシュされます - GitHub Pagesがデプロイをトリガーし、サイトが公開されます(数分かかる場合があります)
本プロジェクトはVS Code DevContainerに対応しており、Docker環境で簡単に開発環境を構築できます。
- Docker
- Visual Studio Code
- Remote - Containers 拡張機能
- VS Code で本リポジトリを開く
- 左下の緑色のアイコンをクリックし、「Reopen in Container」を選択
- コンテナのビルドが完了すると、コンテナ内の開発環境で作業可能
- 通常通り
yarn start
で開発サーバーを起動
本プロジェクトはGitHub Codespacesにも対応しており、ローカル環境の構築なしにブラウザからすぐに開発を始めることができます。
- GitHubリポジトリページ上部の「Code」ボタンをクリック
- 「Codespaces」タブを選択
- 「Create codespace on source」をクリック
- Codespaceが構築されると、ブラウザ上でVS Code互換のエディタが開きます
- ターミナルで
yarn start
を実行して開発サーバーを起動
本プロジェクトはGitHub Actionsを利用して自動デプロイを行っています。
source
ブランチにpushされると自動的にデプロイプロセスが実行されます- デプロイプロセスでは以下の処理が行われます:
- Node.js 12環境のセットアップ
- 依存パッケージのインストール
- サイトのビルド
- ビルド結果を
master
ブランチにプッシュ(GitHub Pagesでホスティング)
GitHub Actionsを使わず、手動でデプロイする場合は以下のコマンドを実行します:
$ yarn deploy
このコマンドは yarn build
でビルドした後、gh-pages
を使用して dist
ディレクトリの内容を master
ブランチにプッシュします。
本プロジェクトでは、GitHub Copilotを使用して年度別の新しいページ構造を簡単に作成できます。.github/prompts/create-new-page.prompt.md
プロンプトを使用することで、以下のようなディレクトリとファイルが自動生成されます:
src/pages/[年度]/
ディレクトリとindex.jsファイルsrc/resources/[年度]/
ディレクトリと必要なリソースファイル(speakers.js, sessions.js, sponsors.js, staffs.js など)- 必要に応じて関連コンポーネントディレクトリと画像ディレクトリ
使用方法は、GitHub Copilotに対してこのプロンプトファイルを指定するか、プロンプトの内容に従って年度を指定するだけです。
- 2018年〜2025年のイベント情報は本リポジトリで管理しています
- 2016以前のページ
- 別のリポジトリに分けています