こんにちは、大学祭の運営を支援するオープンソースのウェブシステム「PortalDots」を開発している Soji です。
先日、PortalDots の最新バージョンとなる PortalDots 3 をリリースし、ブログでも PortalDots 3 の新機能をご紹介しました。本記事では、大学祭実行委員会の内部でウェブ開発を担当されている委員(=大学祭エンジニア)の皆さまが PortalDots の導入や開発に興味を持ってもらえるよう、PortalDots の存在意義についてお話ししたいと思います。
PortalDots の紹介は、以前ブログでも書いたのですが、ここではキーワードを使って PortalDots を紹介します。
そもそも「大学祭ウェブシステム」という言葉に馴染みがない方のほうが多いかもしれません。試しに、Google などで「大学祭 ウェブシステム」と検索してみてください。すると、いくつかの大学祭のウェブシステムが検索結果に表示されるかと思います(ここでは具体的な大学名の明言は避けます)。この検索結果に出てくるウェブサイトこそが「大学祭ウェブシステム」です。大学祭によっては、単に「参加団体向けウェブサイト」と呼んでいるところもあります。
ほとんどの大学祭ウェブシステムは、概ね以下のような機能を備えているようです。これらの機能は PortalDots も備えています。
先ほど、PortalDots は「大学祭ウェブシステム」であると紹介しました。大学祭ウェブシステムとは、つまり「大学祭実行委員会と参加企画の間のコミュニケーションを支援するウェブシステム」と言い換えられると思います。
しかし、PortalDots は単なる大学祭ウェブシステムではありません。PortalDots は「大学祭運営に必要な情報を一元管理できるデータベース」でもあります。
「データベース」の役割を果たす PortalDots の特徴として、以下が挙げられます。
そして、PortalDots はオープンソースソフトウェア(MIT License)として GitHub 上で公開しています。PortalDots は Laravel + Vue.js で書いています。また、Fork、Issue 作成、Pull Request 作成などの Contribution も歓迎しています。
PortalDots は WordPress のように、ZIP ファイルをダウンロードし、レンタルサーバーへアップロードすることもできます。しかし、各大学祭の運営事情は異なると思いますので、PortalDots をそのまま利用するのでは機能が不足している場合もあると思います。その場合は、GitHub 上で PortalDots の Fork を作成し、各大学祭の運営に使えるようカスタマイズして利用することもできます。
何より、PortalDots は「みんなでつくる、オープンソースの大学祭運営ウェブシステム」です。PortalDots の機能不足やバグを見つけたら、ぜひ Issue や Pull Request をお寄せください!皆さまの Contribution をお待ちしております!PortalDots のコントリビューションガイドラインはこちらです。
「大学祭ウェブシステム」を作ることによって、大学祭の運営を IT 化することができ、業務を効率化できます。とはいえ、わざわざ自前でウェブシステムを構築しなくても、既存のウェブシステム—例えば Google Forms やキントーンなど—を組み合わせて利用することで、大学祭の運営の IT 化は達成することができます。
それでもなぜ、自前で大学祭ウェブシステムを構築する大学祭が増えてきているのか。異論はあるかと思いますが、私は「楽しいから」だと思います(もちろん、既製のウェブシステムを導入する予算的な余裕がない、という理由もあり得ます)。
あくまで私の話ですが、大学祭ウェブシステムというニッチなプロダクトを開発するにあたり、必要な機能の洗い出しや UI の設計、そしてプログラムを書いて形にしていく、この一連の流れが楽しいと思っていました。インターネット上に参考になる情報が少ないからこそ、全て自分で考えていくプロセスを楽しんでいました。
既存のウェブシステムを導入するより自前のウェブシステムを構築するのは、「楽しいから」という意見を述べました。それでも、私は PortalDots の導入を勧めたいと思っています。これは、矛盾しているように見えます。
PortalDots の導入をお勧めしたい理由は、主に 2 つあります。
PortalDots は「オープンソースソフトウェア」です。PortalDots は GitHub 上で公開しています。Fork して利用することもできますし、Pull Request などの Contribution は大歓迎です。
大学祭実行委員会はプログラミングサークルではないので、コードを書くことができる人が実行委員会へ加入するのはとても珍しいことだと思います。委員会内で大学祭ウェブシステムの開発を担当しているのは 1 人だけ、という状況もありえます。
1 人でもくもくと大学祭ウェブシステムを開発するのは楽しいと思います。しかし同時に、実行委員会内部からのニーズに応えていく責務もあります。先ほど述べた通り、大学祭実行委員会はプログラミングサークルではないので、「やりたいことだけをやる」では不十分です。実行委員会内部からのニーズに応えるための開発に専念するあまり、大学祭ウェブシステムの開発で「本当にやりたかったこと」をやる余裕がなくなることは十分にあり得ます。これは本当に楽しいでしょうか?
PortalDots は、先ほど述べたように、大学祭ウェブシステムに必要な機能+αが既に揃っています。面倒なクロスプラットフォーム対応も既に行っており、スマホ、Chromium Edge、Chrome、Safari、Firefox に対応しています(スマホでは一部機能に制限があります)。
PortalDots を導入すると、1 から大学祭ウェブシステムを開発するような楽しさは味わえないかもしれません。その代わり、開発リソースの大きな余裕や、既にできているウェブシステムを自分が好きなように拡張していける余地があります。半ば義務的にコードを書くという状況にはなりにくいと思います。ぜひ、PortalDots を土台に、本当に作りたかった最高のウェブシステムを作っていただければと思います。
大学祭実行委員会の内部でウェブシステムを開発する際は、次の世代へウェブシステムを引き継ぐことも考える必要があります。そうでないと、ウェブシステムをメンテナンスできる委員が引退した後、ウェブシステムを廃止し、従来の運用フローに戻さざるを得なくなります(これも大学祭運営の醍醐味であるという意見は否定しません)。その上、せっかく労力をかけて開発するウェブシステムなので、後の世代にも引き継いで欲しいと少なからず思うのではないでしょうか(開発者のエゴかもしれませんが)。
PortalDots の導入に加え、PortalDots の開発に少しでも参加していただければ、PortalDots はそのコードを後の世代にも引き継ぎます。マニュアルはオープンソースとして整備し、情報が古くならないように可能な限り努めます。そうすれば、ウェブシステムの開発者が委員会に所属しない状態になっても、PortalDots の導入を継続できます。さらに後の世代になって、ウェブシステムの開発ができる人が委員会に入れば、世代を超えて PortalDots の開発を継続できることになります。
また、PortalDots の開発に参加すれば、自分の大学祭だけでなく、他の大学祭でも同じ機能を使ってもらえるかもしれません。自分の知らない大学祭で使ってもらえるかもしれないと考えると、少しワクワクしませんか?
ここまで PortalDots とは何かについて説明してきました。ここからは PortalDots を導入する方法を説明します。
PortalDots の機能をそのまま使いたい場合や、もし PortalDots の機能不足を感じても PortalDots へ直接 Pull Request を送ればいいやと考えている場合にお勧めの方法です。
PortalDots のマニュアルでは、本記事投稿時点で「ロリポップ!レンタルサーバー」と「コアサーバー」に PortalDots をインストールする方法を 1 から紹介しています。また、これら以外のレンタルサーバーであっても、PHP 7.3 以上、MySQL 5.6 以上、Apache (または LiteSpeed) がインストールされているサーバーであれば PortalDots を利用できます(PortalDots 公式サイトなどでは MySQL 5.7 以上が必要と書いていますが、お知らせの参加企画向けの全文検索機能が使えないことを除けば MySQL 5.6 でも動作します)。
具体的なセットアップ方法はマニュアルをご覧いただくとして、PortalDots のセットアップ方法を大まかに説明すると以下のようになります。
PortalDots を導入するもう 1 つの方法は、PortalDots を GitHub で Fork した上でカスタマイズしたものを利用する方法です。こちらは Git や GitHub、カスタマイズするためには Laravel と Vue.js の知識が必要です。
この「方法2」は、まだ PortalDots のマニュアルに掲載できていないのですが、わかる人に向けて方法を大まかに説明すると、以下のようになります。(かなり大雑把に書きました。わからないことがあれば、気軽に PortalDots の LINE 公式アカウントまでお問い合わせください!)
composer install
や yarn install
、yarn prod
を実行し、生成されたファイルも含めてサーバーへアップロードする•
PortalDots は、既に必要な機能を備えた大学祭ウェブシステムであると同時に、全ての大学祭プログラマーの「本当にやりたかったこと」を実現する場でありたいと思っています。1 から作るからこその楽しさというものもありますが、既にできているものを拡張していく楽しさというものもあると思います。
興味がある方がいましたら、GitHub での Issue や Pull Request の作成、または PortalDots の LINE 公式アカウントや私の Twitter までお声がけください!
最後までお読みいただきありがとうございました。
エンジニア、UIデザイナー。 サブスク管理アプリSubma や 学園祭運営支援ウェブシステムPortalDots などを開発している個人開発者です。 もっと詳しく
学園祭運営ウェブシステム PortalDots 5 で、複数の参加登録フォームを作成できるようになりました
2023/05/08
学園祭実行委員会で内製・OSS化したウェブシステムの設計・デザイン、そして失敗について
2022/12/01
大学祭運営ウェブシステム PortalDots 4 をリリースしました —— ダークテーマ!!!
2022/03/27
大学祭運営ウェブシステム PortalDots 3 をリリースしました —— スタッフモードのリニューアルなど
2021/05/30
React NativeでローカルデータベースRealmを使ったスマホアプリをつくる
2021/02/27
大学祭の参加団体向けウェブシステムをOSS化してみた
2021/01/05
ウェブサイトをNext.js + TypeScript + Tailwind CSSでリニューアルした
2021/01/04