0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

未経験から勉強のためにWebアプリケーションを作成した話

Last updated at Posted at 2024-11-20

hi guys
フロントをnuxtで
バックをnextでっていう指令を受けたので勉強のためにアプリケーション作ったよ
完成品はこんな感じだよ
image.png

この記事の目的

  • 作成したアプリの概要を共有
  • 使用した技術スタックや機能要件を解説
  • 開発中に苦労した点や改善すべき部分を振り返る

作成したアプリケーションの概要

アプリの目的

テナント・商品・注文・売上を管理できる 簡易管理システム を開発しました。このシステムは、複数のテナントを所有するオーナーが各テナントの情報や売上状況を一元管理できるツールとして利用されることを想定しているよ

主な機能

  1. アカウント管理
    • ユーザーの作成・編集・削除
  2. テナント管理
    • テナントの作成・編集・削除
    • オーナーごとのテナント表示
  3. 商品管理
    • 商品の登録・編集・削除
    • テナントごとの商品表示
  4. 注文管理
    • 注文の作成・削除
    • 注文履歴表示
  5. 売上管理
    • 全期間の総売上表示
    • テナントごとの売上表示
    • 期間を指定した絞り込み機能

技術要件

フロントエンド

  • Nuxt.js
    • モダンなフロントエンドフレームワーク
  • Tailwind CSS
    • スタイリングの効率化を図るために採用
  • TypeScript
    • 型安全なコーディングでバグを減らす

バックエンド

  • Next.js
    • APIエンドポイントの実装に利用
  • Prisma
    • データベースとのやりとりを簡素化
  • TypeScript
    • フロントエンド同様、型安全を確保

データベース

  • MySQL

機能要件

アプリは以下の要件を満たすように設計しました。

基本設計

  • ユーザーごとに複数のテナントを管理可能
  • テナントには複数の商品を紐づけ可能
  • 商品に紐づく注文を管理

画面要件

  1. アカウント管理画面
    • ユーザー情報のCRUD操作
  2. テナント管理画面
    • オーナーごとにテナントを表示し、CRUD操作可能
  3. 商品管理画面
    • テナントごとに商品を表示し、CRUD操作可能
  4. 注文管理画面
    • 注文履歴を表示し、CRUD操作可能
  5. 売上管理画面
    • 全期間・期間別・テナント別の売上表示

改善すべき部分

いっぱい改善案があるけど、最低限必要な部分

1. バリデーション

現状、フロントエンド・バックエンドの両方で入力バリデーションが不十分な箇所があります。特に以下を改善したいです:

  • フロントエンドでのリアルタイムバリデーション
  • サーバーサイドでの詳細なエラーメッセージ

2. UI/UX

  • デザイン性に乏しい
  • 操作性を高めるために、以下を追加予定:
    • 検索機能
    • ページネーション

3. ログイン機能

  • 現在は認証機能が未実装であり、誰でもシステムにアクセスできる状態です。
  • ClerkやJWTを使った認証機能の実装を検討しています。clerkが簡単だからそっち予定

4. テスト

  • 手動テストのみで動作確認を行っており、自動テストは未実装です。
  • JestやCypressを用いたテストを導入予定です。

苦労したポイント

  1. バックエンドとフロントエンドのデータ連携
    • Prismaで関連データ(例:テナント情報を持つ商品)を取得する際の設定に時間がかかりました。
  2. 型定義
    • TypeScriptの型エラーに悩まされることが多く、型の設計には工夫が必要でした。
  3. CORSエラー
    • フロントエンドとバックエンド間の通信で何度もCORSエラーが発生し、その都度調整が必要でした。

学びと感想

  • Nuxt.jsとNext.jsは割と直感的で使いやすかったです。ルーティングの機能便利!
  • 今後は改善点を一つ一つ修正し、さらなるスキルアップを目指していきたいです。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?