Skip to content

winyaado/studysync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

学習共有ウェブアプリ (StudySync)

StudySyncは、学習コンテンツの作成、管理、共有を目的としたフルスタックのウェブアプリケーションです。PHPをバックエンドに、HTML/CSS/JavaScriptをフロントエンドに利用しています。


できること

  • ユーザー管理: ユーザー登録、ログイン、プロフィール設定、 identicon の管理、フォロー機能。
  • コンテンツ作成・管理:
    • 単語帳、ノート、問題セットの作成、編集、削除。
    • コンテンツの共有範囲の設定。
    • コンテンツのレーティングとレポート。
  • 学習機能:
    • 単語帳学習と記憶度更新。
    • 問題セットの解答と試験提出。
    • 学習結果の表示。
  • 管理者機能:
    • ユーザーとテナントのBAN。
    • システム情報の管理と掲示。
    • コンテンツレポートの閲覧とステータス更新。
  • ライブラリ機能: お気に入りのコンテンツをライブラリに保存・管理。
  • 検索機能: コンテンツの検索。

クイックスタート

StudySyncをローカル環境でセットアップするには、以下の手順が必要です。

1) 環境準備

以下のソフトウェアで検証しています:

  • Apache
  • PHP 8.2
  • MariaDB 10.6.21

2) コードの配置

このリポジトリのファイルをWebサーバーのドキュメントルート(またはサブディレクトリ)に配置します。public_html ディレクトリをWebサーバーの公開ディレクトリとして設定してください。

3) データベースのセットアップ

sql/nuko_studysync.sql を使用してデータベースを作成し、初期スキーマとデータをインポートします。

4) アプリケーション設定

config/config.php を編集し、データベース接続情報やその他のアプリケーション設定を環境に合わせて設定します。

<?php
// 例:
define('DB_HOST', 'localhost');
define('DB_NAME', 'studysync');
define('DB_USER', 'root');
define('DB_PASSWORD', 'your_db_password');

// その他の設定...

5) アクセス

Webサーバーを起動した後、ブラウザで設定したURL (http://localhost/ または http://localhost/studysync/ など) にアクセスします。


ディレクトリ構成

  • api_app/: APIエンドポイントとビジネスロジックが含まれます。
    • admin/: 管理者向けAPI。
    • content/: コンテンツ作成・管理API。
    • notifications/: 通知関連のクラス。
    • study/: 学習機能関連API。
    • system/: システム情報・レポート関連API。
    • user/: ユーザー管理関連API。
    • util/: ユーティリティ関数やクラス(OAuthなど)。
    • routes.php: APIルーティング定義。
  • config/: アプリケーションの全体設定ファイル。
    • config.php: メイン設定ファイル。
    • asset_version.php: アセットバージョニング用。
  • public_html/: 公開されるWebフロントエンドファイル。
    • api/index.php: 全てのAPIリクエストを処理するエントリーポイント。
    • css/: スタイルシート。
    • js/: JavaScriptファイル。
    • legal/: 法的文書(プライバシーポリシーなど)。
    • parts/: PHPテンプレートの共通パーツ。
    • read/: コンテンツ閲覧ページ。
    • tools/: 管理ツールやAPIテスター。
    • write/: コンテンツ作成・編集ページ。
    • entrance.php, login.php, my_content.php など: 主要なHTMLページ。
  • sql/: データベースのスキーマ定義とデータ。
    • nuko_studysync.sql: データベース構築スクリプト。

データと要件定義

  • データベース: sql/nuko_studysync.sql に定義されたスキーマに基づいています。ユーザー、コンテンツ(単語帳、ノート、問題セット)、学習進捗、レポートなどのデータが格納されます。
  • 設定ファイル: config/config.php にてデータベース接続情報、APIキー、その他のシステム設定を定義します。

開発メモ

  • バックエンド: PHPで実装されており、api_app/routes.php でAPIエンドポイントが定義されています。
  • フロントエンド: public_html/ ディレクトリ内のHTML、CSS、JavaScriptファイルで構成されています。
  • API: public_html/api/index.php がすべてのAPIリクエストを処理し、api_app/routes.php に従ってルーティングされます。
  • 認証: ユーザー認証にはセッション管理やOAuth2 (api_app/util/GoogleOAuth2.php) を使用しています。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published