閉じる

Next.jsとPrismaで学ぶWebアプリ開発入門

※この記事の内容は、生成AI(ChatGPT)を活用して作成しています。正確性には配慮していますが、技術的な仕様や利用規約は変動する可能性があるため、最新情報は各公式サイト等でご確認ください。

本記事は、ノーコードやCursor AIの生成コードをきっかけにWeb開発に興味を持った方や、Next.jsを使って会員制Webサイトを自作したいと考えている初学者に向けて書かれています。筆者自身が実際に開発を行った際の手順と学びを元に、初めてのフルスタック開発でも迷わないように丁寧に解説しています。

「Cursor AIで動くものは作れたけど、なぜ動いているのかは理解できていない」──そんな不安を感じている方にも、一歩ずつ仕組みを解説していきます。


第1章:プロジェクト全体像

🛠 開発の目的

  • ランサーズのようなユーザー登録型Webサービスを、Next.jsで自作する
  • フロントエンドとバックエンドを1つのプロジェクト内で完結させる
  • 商用利用を前提にした構成(XサーバーVPSなどでデプロイ可能な構成)

📦 採用技術スタック

分類技術名用途
フロントエンドNext.js 14 + React + TypeScriptUI構築、ルーティング
スタイリングglobals.cssCSSをシンプルに一元管理
バックエンドNext.js API RoutesAPIの作成
データベース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?Noglobals.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 設定

  1. Prismaをインストール
npm install prisma --save-dev
npx prisma init --datasource-provider sqlite
  1. Prismaスキーマ(prisma/schema.prisma)を定義
model User {
  id        Int      @id @default(autoincrement())
  email     String   @unique
  password  String
  name      String
  createdAt DateTime @default(now())
}
  1. マイグレーションの実行
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での開発」が未来の普通になる時代にも、しっかりと手綱を握って開発ができる人材になれると感じています。

本記事がその一歩になれば幸いです。

CONTACT

お問い合わせはエールクエスト公式サイトよりお願いいたします。