みなさまこんにちは、はじめまして。
現在、未経験からフリーランスエンジニアを目指して学習中のコーヒー屋です。
昨年の夏ごろからAIコーディングをスタートし、1行もコードを書かずに個人開発を楽しんでいるエンジョイ勢なのですが、このまま自己満足で終わらないためにエンジニアとしての勉強をしっかりやっていこう、という感じになっています。
てことで、今回は自分の学習進捗を楽しく管理するために開発した「My Udemy Quest」というアプリを紹介します。
最近おすすめされたNext.js を使って、 AIエージェント(Antigravity)で開発しました〜。
🎮 アプリの概要:My Udemy Quest
「学習は、冒険だ。」
ただのTodoリストだと続かない、めんどくさ〜い学習の進捗管理を、RPG風の冒険に見立てて管理できるアプリです。
- URL: https://heros-code-journey.vercel.app
-
主な機能:
- クエストボード: Udemy講座やタスクを「クエスト」として管理、リンクを入れることでUdemyの講座に直接飛べる
- 経験値・ランクアップ: クエスト完了でEXP獲得、レベルアップ演出あり
- 冒険の地図: 学習の進捗(Week単位)がロードマップとしてRPGのマップ上で可視化され、キャラクターが自動で進む
- ふっかつのじゅもん: ログイン認証不要。昔懐かしい「じゅもん」で進捗データを保存・復元(こだわりw)
🛠 技術要件
モダンな技術選定で、かつ「レトロな世界観」を実現してみました。
- Frontend: Next.js 15 (App Router)
- Styling: Tailwind CSS v4 + NES.css(8bit風CSSフレームワーク)
- Backend/DB: Next.js API Routes + Redis (Upstash)
- Deployment: Vercel
💦 苦労したポイント
1. 「ふっかつのじゅもん」の実装 (Serverless & Redis)
当初は実戦環境を意識して Supabase の導入を検討しましたが、無料かつ、もっとシンプルな認証方法とデータベース管理でドラクエっぽさを出したかったため、アカウント登録不要の**「ふっかつのじゅもん」方式**を採用しました。
Vercel KV (Redis) を使う際、環境変数の設定や接続方式(Upstash REST API vs 標準 Redis URL)の違いでgemini pro3がつまづきましたが、ioredisを使って標準的な接続に統一することで解決しました。(よくわからんけど)
2. localStorage と同期のジレンマ
最初のMVPはgemini canvasでコーディングしたため、localStorage に自動保存される仕組みになっていました。
一方で、いち開発者としての「作品をポートフォリオとして見せたい(誰でも触れる状態にしたい)」、「自分専用の学習ログを残したい」という要望から、 最終的には 「リロードするとリセット、じゅもんで復元」 という仕様に振り切ることで、
- 初見ユーザーは自由に触って遊べる
- 自分は「じゅもん」で続きから記録できる という両立を実現しました。
💡 画期的なポイント
「自動で進む」冒険マップ
ただのリスト表示ではなく、**「完了した週(Week)に応じて、マップ上のキャラクターが次のエリア(沙漠→海→魔境)へと自動で歩を進める」**ロジックを実装しました。 自分の頑張りが「冒険の軌跡」として視覚化されるので、モチベーション維持に非常に効果的です。
🚀 今後の目標
現在わたしはコーヒー屋さんを8年ほど経営しています。
趣味でAIコーディングによる個人開発を行っていますが、今後はどこかで実務経験を積んでフリーランスエンジニアとして、兼業ではありますが活躍したいと考えています。
店を持っているため、未経験SESとしてフルコミットで現場に入ることができず、「実務経験」というニワトリタマゴな問題に、ぶち当たっているところです。
- 現在のステータス: 独学でPython/TypeScript/Next.jsなど開発中。
-
探している環境:
- モダンな技術スタック(Python/TypeScript/Next.js/Go)に触れられる
- 未経験者のAIコーディング活用に理解がある
- 兼業・副業からでも実務経験を積める
今回Udemy Questの開発をしたのも、エージェントさんから 「SESフルコミ無理ならスクールどうですか?」 とアドバイスされたことがきっかけで、某スクールのカリキュラムをもとにUdemyで教材と学習スケジュールを組んでみたわけでして。
どのようにして「実務経験が無い」という大きなハンデをカバーしていくのか、考えているところであります。
もし、「一緒に働いてみないか?」と興味を持っていただける企業様やチームがいらっしゃれば、ぜひお声がけいただけると嬉しいです!

