1
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?

React + Supabaseでデジタル名刺アプリ開発

Last updated at Posted at 2026-01-12

はじめに

デジタル名刺アプリを作成しました。この記事では、アプリの概要、実装した機能、使用した技術、そして開発を通じて学んだことを紹介します。

アプリ概要

ユーザーは自分のプロフィール情報(名前、自己紹介、好きな技術、SNSアカウントなど)を登録し、ユーザーIDで検索して他のユーザーの名刺情報を閲覧できます。

画面収録 2026-01-12 19.51.16.gif

主な機能

  • Supabase 上のデータベースに名刺情報を保存・取得
  • ユーザーIDによる名刺の検索・表示
  • 名刺の新規登録機能
  • GitHub、Qiita、Xへのリンク表示
  • Chakra UIでスタイル調整
  • react-hook-formでフォーム管理/バリデーション
  • GitHub Actionsのスケジュール機能を使ったcronジョブ(毎日自動で前日のデータを削除)

使用した技術

  • React(Vite)
  • TypeScript
  • Chakra UI
  • react-hook-form
  • Supabase
  • React Router
  • Vitest / React Testing Library
  • Firebase Hosting
  • GitHub Actions(CI/CD、スケジュール機能)

画面構成

アプリは3つの主要な画面で構成されています。

1. トップページ(名刺検索)

ユーザーIDを入力して名刺を検索する画面です。検索結果は名刺詳細画面に遷移して表示されます。また、「新規登録」ボタンから名刺登録画面へ遷移できます。

スクリーンショット 2026-01-12 18.37.43.png

2. 名刺詳細画面

検索したユーザーの詳細情報を表示する画面です。以下の情報が表示されます

  • 名前、ID、自己紹介
  • 好きな技術
  • GitHub、Qiita、Xへのリンク

スクリーンショット 2026-01-12 18.38.18.png

3. 名刺登録画面

新しい名刺を登録する画面です。必須項目(ID、お名前、自己紹介、好きな技術)と任意項目(GitHub ID、Qiita ID、X ID)を入力して登録できます。react-hook-formを使用し、バリデーションを実装しています。

スクリーンショット 2026-01-12 19.57.47.png

学んだこと・感じたこと

今回特に学んだのは、データベース周りです。テーブル設計は以下のようになっています。

スクリーンショット 2026-01-12 19.20.35.png

今回は外部キー制約を設定しました。外部キーを設定しておくと、DB側でデータの整合性を保証してくれます。例えば、usersテーブルのレコードを削除しようとすると、user_skillテーブルのuser_idと紐づけられているため、削除できないように設定できます。他にはuser_skillテーブルでskillsテーブルに存在しないIDを登録しようとすると、エラーが出るようになります。このように外部キー制約を設定すると、アプリケーション側のバグや不正なデータの追加を防げるため、より安全なアプリケーションを構築できます。

過去に作成したアプリでも、CI/CDやSupabaseでのデータ管理、Firebaseへのデプロイ、react-hook-formなどを使用してきたので、今回の開発では以前よりも理解が深まり、使えるようになったと感じました。

過去の記事↓
https://qiita.com/potato11/items/e5f6b0dc6ea22923d644
https://qiita.com/potato11/items/24e3595fa2abbdea3ca6

JISOUのメンバー募集中!

プログラミングコーチング JISOU では、新たなメンバーを募集しています。
実践的なカリキュラムで、あなたのエンジニアとしてのキャリアを最短で飛躍させましょう!

興味のある方は、ぜひホームページからお気軽にカウンセリングをお申し込みください!
▼▼▼

https://projisou.jp/

1
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
1
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?