inaka-portal は PortalDots へ移行しました。
イベント参加サークルへのお知らせ配信、ウェブフォームによる申請受付ができるオープンソースウェブシステム。
Git、PHP、Composer、Node.js、Yarn、Docker がセットアップ済みである必要があります。
$ git clone git@github.com:SofPyon/inaka-portal.git
$ cd inaka-portal/
# 設定ファイルを作成
$ cp .env.example .env
$ php artisan key:generate
# 必要パッケージをインストール
$ composer install
$ yarn install
# 開発環境を起動する
$ composer docker
# マイグレーション
#
# ⚠️ α版注)データベース構造に関して、現在破壊的な変更を継続して行なっています。
# もしデータベースエラーが発生する場合、開発環境を再ビルドしてから
# 代わりに `composer migrate:refresh` コマンドを実行してください。
$ composer migrate
# フロントエンド用アセットのコンパイル
$ yarn watch
# Ctrl-C で停止
# 開発環境を停止する
$ composer docker-stop
composer docker
コマンドにより、開発環境が起動します。composer docker-stop
コマンドを実行してから composer docker
コマンドを実行し、開発環境を再起動してください。db_portal_dev
inaka-portal には、登録ユーザーの管理や、お知らせ・会議での配布資料ダウンロードファイルの登録を行うための「スタッフモード」があります。
また、スタッフモード内の各ページにアクセスできるユーザーを制限する「認可」機能があり、認可に関する設定を行うための「管理者権限」が存在します。
現状、inaka-portal の GUI では、一番最初のスタッフや管理者を登録できませんので、以下の方法でスタッフや管理者を設定してください。
users
テーブル上の is_staff
列を 1
にする
roles
テーブルに、 id
が 0
のレコードを作成する (name
は 管理者
など、お好きなものを設定してください)role_user
テーブルに、 user_id
を管理者にしたいユーザーの ID、 role_id
を 0
にしたレコードを作成する
inaka-portal では、Issue や Pull Request を歓迎します。
今のところ、Issue 提出や Pull Request 提出に関して、特段のルールは設けておりません(今後設ける可能性はある)ので、何かございましたらお気軽にお願いします!
questions
にデータを手動で登録する必要があります。try-catch
による適切な例外処理が行われていないその他の問題は、開発者の GitHub プライベートリポジトリの issue で管理されています。今後、このリポジトリに issue を移行するかもしれません。
$plain_password
とする$password
が標準っぽい?$this->db
のメソッドはモデルで実行、 $this->input
はコントローラでのみ使う_validate_*
系メソッド(独自バリデータ)は必ず public
にすること。 private
や protected
ではエラーになるこのプロジェクトは、まだプログラミングスキルが浅かった時に開発されたものを、最近になって多くのリファクタリングを施したものです。今でもあまり良いコードとは言えないかもしれませんが、これでもだいぶマシになったほうです(パスワードがハードコードされていたりした)。
inaka-portal を動作させるために必要な DB テーブルは、composer migrate
コマンドによって作成されます。
以前は、 composer migrate
コマンド実行前に docker_dev/db/sql/init.sql
に格納されている SQL を実行する必要がありましたが、現在は init.sql
の実行は不要です。
(このセクションは書きかけです)
MIT License
MIT License
Copyright (c) 2019 Soji Takahashi (SofPyon)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.