Projects

制作物

新しい技術に興味を持ったら、WebやAIを使って調べ、 実際に動くものとして形にし、完成まで持っていくことを 大切にしています。

TypeScript / Web CMS

koya-blog

TypeScriptとCRUDを学ぶために制作した、 個人ブログ兼ポートフォリオサイトです。

制作した理由

TypeScriptを使ったWeb開発を学び、 データの作成・取得・更新・削除というCRUDの基本を 一通り実装することを目的に制作しました。

取り組んだこと

記事管理だけでなく、Google OAuthによる認証、 メールアドレスによる管理者認可、Markdown表示、 カテゴリー・タグ管理、公開・下書き機能まで実装しました。

AIの支援も利用しましたが、提示されたコードを そのまま採用せず、Webでも調査しながら、 一行ずつ動作と役割を理解してから使用しました。

得られたこと

React、Next.js、データベース、認証・認可、 デプロイまで、現代的なWebアプリケーション開発の流れを 一通り経験できました。

開発中に仕様を必要以上に拡大せず、 定めた期限までにデプロイ可能な状態へ まとめることができました。

  • TypeScript
  • Next.js
  • React
  • PostgreSQL
  • Prisma
  • Auth.js
  • Docker
  • Vercel
ラーメン免罪符の診断開始画面
シスターからの質問に回答する診断画面
ラーメンを食べることが赦された診断結果画面

AI-assisted Web Application

ラーメン免罪符

今日ラーメンを食べてもよい理由を、 シスターとの事情聴取を通して審議するジョークWebアプリです。

制作した理由

AIを主体とした開発手法、いわゆるバイブコーディングを 実際に試し、アプリを企画から公開まで完成させることを 目的に制作しました。

取り組んだこと

Codexを実装に活用しながら、コンセプト、仕様、 世界観、文言、実装範囲、リリース可否を自分で判断しました。

AIの提案が当初の仕様から外れたり、 必要以上に機能が増えたりすることもありました。 その都度、採用・修正・撤回を判断し、 アプリの目的に合う形へ調整しました。

公開後は友人11人に実際に試してもらい、 操作感や文言についてのフィードバックを受け、 質問フロー、判定、表示などを改善しました。

得られたこと

AIへ実装を依頼するだけでなく、仕様を管理し、 出力を検証し、利用者の反応をもとに改善するという アプリ開発の流れを経験できました。

  • Python
  • FastAPI
  • Jinja2
  • JavaScript
  • SQLite
  • pytest
  • Render
  • Codex

初回アクセス時は、起動に時間がかかる場合があります。

猫がターミナル上を歩くcattコマンドの実行画面

C / CLI

catt

実行するとASCIIアートの猫がターミナル上を歩く、 Cで制作したジョークCLIコマンドです。

制作した理由

C言語を学ぶことになり、文法を練習するだけではなく、 自分が実際に使って楽しめるものを作りながら 学習したいと考えて制作しました。

取り組んだこと

ncursesによる画面制御、複数フレームによる歩行表現、 画面外にはみ出す文字の安全な描画、 Makefileによるビルドとインストール処理を実装しました。

既存のターミナルコマンドであるslの構成を参考にしつつ、 設計と実装はほぼ自力で行いました。

得られたこと

Cの基本文法だけでなく、関数への責務分割、 画面サイズを考慮した境界処理、ヘッダーファイル、 Makefileを使ったビルドの基礎を学びました。

  • C
  • ncurses
  • Makefile
  • GitHub Actions