AI任せのWeb開発奮闘記【第84話】

TAKA: 「老師!基本機能はだいたい動いたぞ!そろそろレビュー機能を追加しようかと思うんだけど、どうかな?」

AI老師: 「待ちなさい、TAKAよ。欲を出しすぎると全体のバランスを崩しますぞ。基礎を固めるのが先です。」

TAKA: 「えー、もうちょっと進めてもいいんじゃない?だって、レビュー機能があるとカッコいいし、みんな使いやすいだろ?」

AI老師: 「確かにレビュー機能は魅力的じゃが、基礎がしっかりしておらねば、新しい機能を載せてもすぐに崩れてしまう。シンプルな機能から確実に仕上げていくのが鉄則じゃ。」
問題点を整理してみた

AI老師: 「さて、ここまでの進捗を整理してみるとしよう。TAKA、現状の課題をどう捉えているか、言ってみなさい。」

TAKA: 「うーん、まずジャンル別の動画表示機能があるけど、これがまだちゃんと見栄えよくない感じ。あと、カテゴリ一覧が空っぽだし、ソート機能もテストできてないかな。」

AI老師: 「その通りじゃ。さらに、投稿機能の動作確認がまだで、全体の流れを通してチェックしておらぬ。今焦ってレビュー機能を入れるより、これらの基本をきちんと仕上げるべきじゃな。」
今回取り組む基本機能

TAKA: 「じゃあ、具体的にどんな順番で進めればいい?」

AI老師: 「よい質問じゃ。まずは以下のステップで行くのじゃ。」

カテゴリ一覧を表示できるようにする
 現在、カテゴリデータが空じゃ。この問題を解決するため、サーバー側でカテゴリデータを登録し、フロントエンドで表示させる。

ジャンルごとの動画表示を磨き上げる
 ジャンルに属する動画を表示する仕組みはあるが、ソート機能が未完成じゃ。これを仕上げて、登録者数、視聴回数、いいね数、アップロード日で並べ替えられるようにする。

動画投稿機能の確認
 Postmanを使ってサーバーに動画を投稿し、期待通りに登録されるかテストする。

全体のUIを整える
 見た目の完成度を少し上げて、ユーザーが使いやすい状態にする。

カテゴリ一覧の実装

TAKA: 「カテゴリデータって、どうやって作ればいいんだ?」

AI老師: 「例えばPostmanを使うと簡単じゃ。以下のようなリクエストを送るがよい。」

メソッドをPOSTに設定し、URLをhttp://localhost:3000/api/categoriesにする。
以下のようなJSONデータを送信する:

{
“name”: “Technology”,
“videos”: []
}

TAKA: 「それでカテゴリが登録されるのか。フロントエンドではどう表示する?」

AI老師: 「genre.htmlというページを用意しておるな。そこで、以下のようなスクリプトを使ってカテゴリを表示できる。」

document.addEventListener(‘DOMContentLoaded’, async () => {
try {
const response = await fetch(‘/api/categories’);
const categories = await response.json();
const genreList = document.getElementById(‘genre-list’);

    categories.forEach(category => {
        const listItem = document.createElement('li');
        listItem.innerHTML = `<a href="videos.html?category=${category._id}">${category.name}</a>`;
        genreList.appendChild(listItem);
    });
} catch (error) {
    console.error('Error loading categories:', error);
}

});

ジャンルごとの動画表示とソート機能

TAKA: 「ジャンル内のソートはどうやって動かすの?」

AI老師: 「APIのクエリパラメータを活用すれば簡単じゃ。例えば、以下のエンドポイントを使ってみるがよい。」

URL: http://localhost:3000/api/videos/filter?genre=education&sort=likes

このリクエストでは、教育ジャンルの動画がいいね数でソートされるはずじゃ。

TAKA: 「へえ、これでサーバー側のコードはどうなるの?」

AI老師: 「以下のようにすれば良い。」

app.get(‘/api/videos/filter’, async (req, res) => {
const genre = req.query.genre;
const sortBy = req.query.sort || ‘title’;
const videos = await Video.find({ genre }).sort({ [sortBy]: 1 });
res.send(videos);
});

TAKA: 「ソート条件も自由に切り替えられるんだな!これは便利だ!」
動画投稿機能の確認

AI老師: 「さて、次は動画の投稿じゃが、これもPostmanを使うのがよい。」

メソッドをPOSTにして、URLをhttp://localhost:3000/api/videosにする。
以下のJSONデータを送信する:

{
“title”: “AIの未来”,
“genre”: “technology”,
“description”: “AIに関するドキュメンタリー”,
“url”: “http://example.com/ai-video”,
“rating”: 5
}

TAKA: 「これで動画が追加されて、リストに表示されるわけか!」

AI老師: 「その通りじゃ。まずはシンプルに動作を確認し、問題がないかチェックするのじゃ。」
最後に

TAKA: 「老師、なんだかんだで基本が整ってきた気がする!」

AI老師: 「良い流れじゃ。急がば回れ。まずは動くものを確実に作り、そこから拡張していくのがWeb開発の基本じゃ。」

今回の進捗を通じて、基礎を固めることの重要性を再認識しました。次回は、カテゴリ機能の充実と動画投稿後の表示確認を進めていきます!
次回予告

カテゴリデータの整備と確認
動画投稿後の自動反映
見た目の改善とユーザー体験の向上

小さく進めて、大きく飛躍する準備を整えましょう!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です