Edited at

個人または家族で使える自宅用のWebポータルシステム「MyHome Portal」

PHPで作成した個人または家族で使える自宅用のWebポータルシステム「MyHome Portal」をオープンソース/フリーソフトとして公開しています。

2008年から2016年にかけて、こつこつとバージョンアップを繰り返して作成したものです。

中級プログラマの作品ですので、ソースコードはあまりきれいとは言えません。バージョンアップを繰り返したことでコードがきたなくなってしまっている部分もあります。モジュールの構造を複雑にしすぎたかもしれません。

2016/08/02以降、バージョンアップしていません。Webサービスを利用している機能など一部は、Webサービスの停止等の理由により動作しなくなっています。


公開ページ

https://ok2nd.github.io/myportal/


ブログ

最近、更新はほとんどありません。

中級プログラマの自宅でPHP ブログ


コンセプト


  • 自宅でポータルとして使えるシステム。(家庭内グループウェア)

  • データはインターネット上ではなく、ローカルPCまたはローカルサーバに保管。

  • 初級、中級プログラマにも理解可能なシステム。

  • PHP、SQL、JavaScript、HTML、CSSの知識だけで理解可能なシステム。

  • PHPの良さを生かしたHTMLインラインコーディング。(なるべくprint文を使わない。)

  • ブラックボックスの少ないシステム。

  • オブジェクト指向型プログラミングを使わない。手続き型(関数型)プログラミングを採用。

  • MVCを使わない。

  • フレームワークに頼らないシステム。

  • テキストエディタ以外の開発ツールを必要としない。


対象者


  • 自分または家族専用のWebポータルサイトが作りたい。

  • Webポータルサイトをインターネット上ではなく、ローカルPCまたは自宅サーバーで立ち上げたい。

  • 日常的に良く使う機能が、個々のアプリケーションを起動せずに、ブラウザの中で出来たらうれしい。

  • スケジュールその他自分の個人情報をインターネット上に置きたくない。

  • パスワードなどのID情報をインターネット上に置きたくない。

  • Webプログラム開発初心者。

  • プログラミングを仕事でなく、趣味でやりたい。


    • オブジェクト指向が苦手。

    • MVCは面倒。

    • システム全体を把握したい。(ブラックボックスは少ない方が良い。)

    • フレームワークを使いたくない。(PHP、SQL、JavaScriptだけで開発したい。)




機能一覧


  • ホームページインデックス(ブックマーク)&検索


    • ブログパーツ貼り付け



  • 付箋

  • カレンダー(スケジューラ)


    • 天気出現率表示



  • 旅行記

  • ToDo

  • 掲示板

  • RSSリーダー

  • メモ

  • フォトアルバム


    • スライドショー

    • 動画サムネイル

    • FLV,MP4,WMV,MPG,MOV,M2TS(AVCHD)動画再生



  • 学習

  • 住所録


    • PDF葉書宛名書き



  • メール(一括受信)

  • SVGお絵かき

  • ペン画

  • チャット(Chat)

  • ID・パスワード管理

  • GPSログ(GPX)ビューワ

  • 預貯金管理

  • 縦計だけの表計算

  • HTML URL抽出&ファイルダウンロード

  • テキスト縦書き表示

  • Excel to グラフ

  • ソースコード表示&編集+ファイルマネージャー

  • MySQL管理ツール

  • ファイル暗号化/復号化

  • タイマーアラート


特徴・補足


  • 自宅で個人や家族で使えるシステムを目指して作りました。家庭内LANでの利用を想定しています。

  • 少人数の会社のイントラでの利用も可能かもしれません。
    セキュリティは万全ではないので、スケジュール共有など機能を限定して利用願います。

  • ユーザー登録など、インターネット上での利用を想定した機能も付けています。ただし、セキュリティ等保障はできませんので、インターネット上での実利用は、自己責任にてお願いいたします。あくまで、LAN内またはPC単体での利用を想定しています。

  • 簡単なユーザー管理機能もあります。

  • 認証機能もあります。

  • ユーザー単位で他のユーザーに対して参照・書込の権限設定ができます。

  • レコード単位での非公開の設定もできます。

  • ただし、システム管理者はデータベースを直接見ることで全ての情報を参照ができてしまいますので、悪用しないように。

  • ID管理では、二重の認証が必要なしくみにしています。

  • ID管理では、パスワードを独自の方式で暗号化しています。ID情報は、2つのテーブルに分割して保存します。
    暗号化のキーと2つのテーブルを別々にバックアップすれば、ID情報の復元はしづらい(?)と思います。

  • 簡単なログ機能も付けています。

  • 簡単なシステム管理者機能も付けています。

  • コンテンツを追加しやすい構造にしています。

  • ページ分割有りの一覧形式のページを簡単に作れる共有ライブラリを用意しています。一覧形式での編集もできます。
    /myhome/common_/include-common-mp-list.php
    各コンテンツのlist.php、category.phpを参考にしてください。

  • 一覧形式の表示部分のみを、独自のphpソースに置き換えられます。($mp_list_arg['template_view'])


開発環境



  • (Ver.3.27以降)XAMPP 1.7.1 (Windows)


    • Apache 2.2.11

    • MySQL 5.1.33 (Community Server)

    • PHP 5.2.9 + PEA




  • (Ver.3.26以前)XAMPP 1.6.6a (Windows)


    • Apache 2.2.8

    • MySQL 5.0.51a

    • PHP 5.2.5