Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Easy-CRM, a productivity tool created with Kiro

2025年09月15日に「Dev.to」が公開したITニュース「Easy-CRM, a productivity tool created with Kiro」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

散在したリード情報を一元管理する生産性ツール「Easy-CRM」が開発された。CSV/Excelファイルをアップロードすると、DeepSeek AIがデータを自動標準化し、Webアプリで閲覧、検索、エクスポートが可能。PythonとAWSを組み合わせたサーバーレスで構築され、AI活用には適切な指示が重要だと開発者は語る。

ITニュース解説

Easy-CRMは、企業が抱える顧客リード情報、つまり見込み客のデータを効率的に管理するためのWebアプリケーションである。このツールが開発されたきっかけは、多くの企業で見られる課題、すなわち過去のイベントやさまざまな情報源から得られたリードデータが、ExcelファイルやCSVファイルといった異なる形式で散在し、それらをまとめて管理・活用することが困難であった点にある。バラバラになった情報を一つに集約し、簡単に検索したり、必要なデータを抽出したりできる仕組みが求められていた。

Easy-CRMは、この課題を解決するために設計された。このアプリケーションは、サーバーの管理を意識せずにアプリケーションを構築できる「サーバーレス」という方式を採用している。ユーザーは、様々なフォーマットのCSVファイルやExcelファイルをドラッグ&ドロップで簡単にアップロードできる。システムはアップロードされたデータをただ受け取るだけでなく、最新のAI技術であるDeepSeek AIを利用して、データの形式を自動的に標準化する。これにより、表記ゆれやフォーマットの違いによって発生していたデータの不整合が解消され、統一されたデータとして扱えるようになる。

主要な機能として、アップロードされたリードデータは、Webインターフェースを通じて一覧表示され、詳細なフィルタリングやソート機能により、必要な情報を素早く見つけ出すことが可能である。データ量が多くても、ページネーション機能により快適に閲覧できる。特に注目すべきは、電話番号の完全なサポートである。電話番号の書式を自動的に整えたり、入力された番号が正しい形式であるかを検証したりするほか、クリックするだけで電話をかけられる「tel:リンク」も生成されるため、顧客への連絡がスムーズに行える。さらに、重複するリードデータはメールアドレスを基準に自動的に検出され、処理されることで、データの精度が保たれる。データ処理の進行状況はリアルタイムで表示され、必要であれば処理をキャンセルすることも可能である。Excelファイルに複数のワークシートがある場合でも、すべてのシートのデータが自動的に処理されるため、手作業でシートごとにコピー&ペーストする必要はない。最終的には、フィルタリングされた状態で必要なデータだけをCSV形式でエクスポートする機能も提供される。大規模なファイルを処理する際には、AWS SQSという仕組みを使ってバッチ処理が行われ、システムが効率的かつスケーラブルに動作するよう設計されている。ユーザー認証にはAWS Cognitoが用いられ、JSON Web Token (JWT)による検証が行われるため、セキュアなアクセスが保証される。

このシステムを支える技術スタックは多岐にわたる。バックエンドでは、Python 3.13で記述されたコードが、AWS Lambdaという、イベントに応じてコードを実行するサービス上で動いている。データは高速で柔軟なNoSQLデータベースであるAmazon DynamoDBに格納され、アップロードされたファイルはAmazon S3というオブジェクトストレージサービスに保存される。上述のバッチ処理にはAmazon SQSが利用されている。フロントエンドは、Vanilla HTML5、CSS、JavaScriptという基本的なWeb技術で作られており、デザインにはTailwind CSSが用いられている。インフラの構築と管理には、AWSリソースの構成をコードとして定義し、自動的にデプロイするCloudFormationが活用されている。AIによるデータ標準化にはDeepSeek AIのAPIが組み込まれ、ユーザー認証にはAWS Cognitoが利用されている。Webコンテンツの高速配信にはAmazon CloudFrontがコンテンツデリバリネットワーク(CDN)として使われ、SSL証明書によって通信のセキュリティが確保されている。

このアプリケーションの開発プロセスでは、KiroというAIアシスタントが積極的に活用された。開発者はまず、プロジェクトの開始段階で、AWS Lambdaがどのように情報を処理するか、データベースのスキーマはどうあるべきかといった具体的なアーキテクチャや、必要な機能のロジックをKiroに詳細に説明した。これにより、Kiroは実装の詳細やテストケースをタスクごとに生成し、開発者はそれらを一つずつ確認しながら進めることができた。実装段階では、Kiroが特定の標準や規約、例えばPythonの仮想環境(venv)を常に使用するといったルールに従うように指導することで、開発環境の混乱を防いだ。最小限の機能を持つ製品(MVP)が完成した後、バグ修正には「Vibe」セッションという、よりシンプルで直接的な方法を使い、新機能の追加や機能強化には「Spec」セッションという、アーキテクチャ全体に影響を及ぼす可能性のある変更に対しては、徹底した計画を要する方法を使い分けた。このようにAIアシスタントをガイドすることで、問題の根本原因を素早く特定し、開発時間とコストを節約できたという。特に、複数の処理が同時に同じデータにアクセスしようとした際に予期せぬ結果が生じる「競合状態(race condition)」という問題を、Kiroが解決に貢献した事例が挙げられる。Kiroは原因を調査し、データベースの更新などが完全に実行されるか、全く実行されないかのどちらかになり、途中で中断されることがないようにする「アトミック操作」を実装することで、問題を解消した。

この開発を通じて得られた重要な学びは、KiroのようなAIを用いたコード生成ツールは非常に強力であるものの、それを効果的に活用するには、やはり十分な知識を持つ人間がガイドする必要があるという点である。プロジェクトが複雑になればなるほど、ユーザーの専門知識がなければ、望む品質の製品を完成させることは難しいという認識に至っている。

Easy-CRMの今後の展望としては、自然言語処理(NLP)を活用して、リードデータに対するより高度なクエリ機能を実装する予定である。これにより、ユーザーはより直感的な方法でデータから洞察を得られるようになるだろう。

関連コンテンツ

関連IT用語