Code Monkey home page Code Monkey logo

social-networking-service's Introduction

Social-Networking-Service

SNSウェブアプリケーション

social-networking-service's People

Contributors

aki158 avatar

Watchers

 avatar

social-networking-service's Issues

【実装】ポスト機能

  • メッセージ投稿(最大255文字)
    一度投稿したものには、更新はできない
  • 投稿の削除
  • メディアコンテンツ(画像、動画)の投稿
    • 画像
    • 動画
      • サイズ制限
      • 動画の圧縮(必要に応じて)
      • レンダリング
        HTML動画が使用可能

【実装】プロフィール

  • プロフィールの表示
  • プロフィール編集
  • ポストリスト
  • いいねリスト
  • 予約ポストリスト
  • フォローリスト
  • フォロワーリスト

参考にしたサイト

フロントエンド設計

非機能要件

(フロントエンド設計)ビューの開発に入る前に、ワイヤーフレームやデジタルデザインを作成してフロントエンドデザインを行います。Figma、Whimsical、Google Draw などのアプリを使用してデザインできます。

タスク

上記非機能要件を満たすような、デザインを作成して下さい。

  • Figmaを使用したフロントエンドデザイン

ソフトウェア実装設計

非機能要件

(ソフトウェア実装設計)アジャイル開発を採用し、ソフトウェア設計を反復しながら、データベーステーブルの ER 図やモデルのクラス図を作成します。

タスク

上記非機能要件を満たすような、図を作成して下さい。

  • ER図
  • クラス図

【実装】認証システム

認証システム

  • TypeScriptのキャッチアップ&環境構築
  • アプリ用のGmailアカウント作成とMailerの設定
  • 新規登録
  • 新規登録後のメールアドレス確認ページへの遷移
  • メール検証システム
  • 確認メール再送信
  • ログイン
  • ログアウト

リファクタリング

  • 例外クラスの定義
  • 定数クラスの定義

要件モデリング

非機能要件

(要件モデリング)実装開発サイクルに入る前に、アクティビティ図、シーケンス図、ユースケース図などの図を作成して要件を把握し、要件モデリングを行います。

タスク

上記非機能要件を満たすような、図を作成して下さい。

  • アクティビティ図
  • シーケンス図
  • ユースケース図

ツール

図の作成には、PlantUMLを使用してください。

【実装】基幹システム

設計資料をもとに、以下の基幹システムを実装してください。
実装後の機能追加により、システムの一部変更もありえるものとします。

  • コマンドシステム
  • マイグレーションシステム
  • シーディングシステム
  • 例外クラス
  • ヘルパークラス(環境ファイルの読み込みなどをサポートする)
  • ドメインオブジェクト
  • データアクセス層
  • ミドルウェア
  • ルーティング

技術選定

💾使用技術

カテゴリ 技術スタック
フロントエンド HTML
CSS
TypeScript
ライブラリ : autobahn-js
フレームワーク : Tailwind CSS
バックエンド PHP
ライブラリ(偽データ生成) : FakerPHP
ライブラリ(暗号化&復号化) : PHP OpenSSL
ライブラリ(リアルタイム通信) : Ratchet-PHP WebSockets
ライブラリ(日付操作) : Carbon
ライブラリ(メール送信) : PHPMailer
インフラ Amazon EC2
Nginx
Ubuntu
VirtualBox
データベース MySQL
デザイン 設計資料作成 : PlantUML
フロントエンドデザイン : Figma
ER図作成 : Draw.io(vscode)
その他 Git
Github
SSL/TLS証明書取得、更新、暗号化 : Certbot
スクリプトの定期実行 : cron
デーモン(常駐プログラム) : Supervisor
画像処理 : ImageMagick
メール転送エージェント(MTA) : Postfix

サービス名を決める

PostSphere(ポストスフィア)
"Post"(投稿)と"Sphere"(球体、領域)を組み合わせ、全体的なコミュニケーションの空間を表現します。

【実装】モックアップページ作成

フロントエンド設計を参考に以下ページのデザインを作成してください。
バックエンドを実装する際の足がかりを作るのが目的です。

  • ログインページ
  • 新規登録ページ
  • 確認メール再送信ページ
  • メールアドレス確認ページ
  • ホームページ
  • ポストページ
  • 通知ページ
  • メッセージリストページ
  • メッセージページ
  • プロフィールページ
  • 他ユーザーのプロフィールページ
    プロフィールページをログインしてるユーザー自身かで、判別して表示するボタンを変更しようと思ってるので
    モックアップページの作成は省略する
  • ポストリストページ
    プロフィールページの下部に表示する
    また、いいねリストも追加し同様にプロフィールページに表示する
  • プロフィール編集ページ
  • フォローリストページ
  • フォロワーリストページ
    フォローとフォロワーのリストページは、切り替えができる1ページにする

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.