本記事は、ノーコードやCursor AIの生成コードをきっかけにWeb開発に興味を持った方や、Next.jsを使って会員制Webサイトを自作したいと考えている初学者に向けて書かれています。筆者自身が実際に開発を行った際の手順と学びを元に、初めてのフルスタック開発でも迷わないように丁寧に解説しています。
「Cursor AIで動くものは作れたけど、なぜ動いているのかは理解できていない」──そんな不安を感じている方にも、一歩ずつ仕組みを解説していきます。
目次
第1章:プロジェクト全体像
🛠 開発の目的
- ランサーズのようなユーザー登録型Webサービスを、Next.jsで自作する
- フロントエンドとバックエンドを1つのプロジェクト内で完結させる
- 商用利用を前提にした構成(XサーバーVPSなどでデプロイ可能な構成)
📦 採用技術スタック
分類 | 技術名 | 用途 |
---|---|---|
フロントエンド | Next.js 14 + React + TypeScript | UI構築、ルーティング |
スタイリング | globals.css | CSSをシンプルに一元管理 |
バックエンド | Next.js API Routes | APIの作成 |
データベース | SQLite + Prisma ORM | ユーザーデータ管理 |
認証 | bcryptjs | パスワードのハッシュ化 |
開発環境 | Windows + PowerShell | ローカル開発 |
第2章:Next.js プロジェクトの作成手順
▶︎ プロジェクト作成コマンド
cd C:\Users\alcue\Desktop\EMMLabo\TIMENEX
npx create-next-app@latest next-rensyu
▶︎ 初期セットアップ時の質問とおすすめ設定
質問 | 推奨回答 | 理由 |
TypeScript使う? | Yes | 型安全性・保守性アップ |
ESLint使う? | Yes | コード品質を自動チェック |
Tailwind CSS? | No | globals.cssで一元管理したいため |
src/ディレクトリ使う? | Yes | モダンな構成として推奨 |
App Router使う? | Yes | 新ルーティングシステムに対応 |
Turbopack使う? | No | 現時点では安定性重視 |
import alias変える? | Yes | @をsrc/に割り当てると便利 |
第3章:構成とディレクトリ構造
next-rensyu/
├── public/
├── src/
│ ├── app/
│ │ ├── page.tsx(トップページ)
│ │ └── register/page.tsx(会員登録)
│ ├── components/(UIパーツ)
│ └── styles/globals.css
├── next.config.js
├── package.json
└── prisma/
├── schema.prisma(DB構造)
└── migrations/(マイグレーション)
第4章:Prisma & SQLite 設定
- Prismaをインストール
npm install prisma --save-dev
npx prisma init --datasource-provider sqlite
- Prismaスキーマ(prisma/schema.prisma)を定義
model User {
id Int @id @default(autoincrement())
email String @unique
password String
name String
createdAt DateTime @default(now())
}
- マイグレーションの実行
npx prisma migrate dev --name init
第5章:会員登録とログイン機能
✅ フロントエンド構成
- register/page.tsx:フォームUIとバリデーション
- login/page.tsx:ログイン処理とエラーハンドリング
✅ バックエンドAPI(/api/ディレクトリ)
APIエンドポイント | 用途 |
POST /api/register | 新規ユーザー登録 |
POST /api/login | ログイン処理 |
GET /api/user | ログイン中のユーザー情報取得 |
✅ 認証処理
- bcryptjsによるパスワードハッシュ化
- セッション管理(今後JWTやCookie対応予定)
第6章:UI設計とレスポンシブ対応
📱 globals.css 管理方針
- レイアウト全体を共通CSSで統一(レスポンシブもCSSで)
- 余白/フォント/ボタン/フォームなどをセクション分けで管理
🧩 UIパーツ
- 共通ヘッダー(ログイン状態によってリンク切替)
- ローディング状態やエラーメッセージの表示制御
- フォームの状態管理はReact Hooksで実装
第7章:サーバー選定と今後の方針
🚫 Vercelを使わなかった理由
- 商用利用の予定があり、無料枠では不安定
- 専用ドメインの活用/バックアップ/IP制限などに対応したい
✅ XサーバーVPSを採用予定
- OSレベルでNode.jsを動かせる自由度
- SQLite → PostgreSQLなどへの将来的な切替にも対応
(補足:Xサーバーの共用サーバーではNext.jsのSSR機能が動作しない)
第8章:学びと今後の拡張
🧠 学んだこと
- Next.js App Routerの構造と思想
- PrismaでのDB構築〜接続〜操作の一連の流れ
- 認証/API設計/状態管理/UI設計
- ローカル開発環境の整備とトラブル対処(PowerShellなど)
🔮 今後追加予定の機能
- JWTやCookieによるセッション管理
- 投稿・応募などのデータ構造と連携
- 管理者によるユーザー管理UI
- 画像アップロード機能
- メール通知機能(SendGridやSMTP)
- 本番サーバーへのデプロイ(VPS設定)
おわりに:AIの助けと自力理解のバランス
Cursor AIやChatGPTを使えば、「動くコード」はすぐに手に入るようになりました。しかし、動いたコードをどうカスタマイズするか・どこが壊れるかを理解するには、やはり土台の知識が必要です。
今回のように、
- まず動かしてみる →
- 動作を確認しながらコードを読む →
- 自力で一部書き換えてみる
というステップを繰り返すことで、「AIでの開発」が未来の普通になる時代にも、しっかりと手綱を握って開発ができる人材になれると感じています。
本記事がその一歩になれば幸いです。