Git Product home page Git Product logo

bootcamp-js-ts-2023's Introduction

JS / TS ブートキャンプ実習課題

あなたは、TODO 管理アプリを開発しているチームに参加し、アプリのエンハンスに取り組むことになりました。

演習の心構え

  • 少しでもコードを読める / 書けるようになるのが目的です
  • 課題を終わらせることが目的ではありません
  • 周りの人の進捗を気にする必要はありません

課題 1:既存コードのキャッチアップ

チームに参加したあなたは、はじめに既存のコードを読み、アプリの設計や構造を把握することにしました。

チームメンバーによれば、以下のような設計に関するメモがあるとのことでした。

メモ:

  • このアプリはクライアント、サーバー共に TypeScript で書かれている。
  • フロントエンド
    • 外部のライブラリは使用していない
    • 画面の描画にはコンポーネント設計を採用している。コンポーネントとは、画面上の 1 まとまりの部品のことで、状態を HTMLElement に変換するもの
    • 状態管理には Flux という設計を採用している。以下のような用語が登場する
      • State:アプリの状態
      • Store:State を保持するもの
      • Action:Store の更新を表すオブジェクト
      • Reducer:現在の State と Action から新しい State を計算する関数
      • Dispatch:Action によって Store の State を更新すること
  • バックエンド
    • Express で書かれている
    • Todo 情報は変数で保持していて、特に DB などで永続化はしていない

課題:メモと既存のコードから、アプリがどのように動作するのかを把握してください。不明点があれば、既存のチームメンバーに質問してください(ここでは演習なので、講師に質問してください。または、受講生どうしで相談しても構いません

課題 2:機能追加

キャッチアップを済ませたあなたは、TODO の削除機能の追加を頼まれました。

前任者によれば、サーバー側の必要なコードはすでに書かれており、フロントエンド側の修正だけが必要とのことです。

課題:TODO の削除機能を追加してください。フロントエンドに削除のための UI を追加し、サーバーに対して削除のリクエストを送信できるようにする必要があります。UI のデザインは任意です。

課題 3:自由課題

課題:このアプリを自由に改造してみてください

  • 現状のアプリに不足している、または追加してみたい機能はあるでしょうか。
  • さらに良いビジュアルデザインを思いつきますか。ユーザーの操作に対してアニメーションが動くとどうですか
  • リファクタリングや修正が必要な箇所はあるでしょうか。型は十分に付いているでしょうか
  • セキュリティの問題はありませんか。不正な入力に対して安全でしょうか。
  • アクセシビリティに問題はありませんか。

セットアップ

ランタイム:

  • Node.js (^18.15.0)
  • npm (^9.5.0)
git clone [このリポジトリのURL]
cd  bootcamp-js-ts-2023
npm i

起動

cd  bootcamp-js-ts-2023
npm start

bootcamp-js-ts-2023's People

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.