Skip to content

ozaki-taisuke/c-meal-tracker

Repository files navigation

⚠️ 開発中であることにご留意ください

Meal Tracker - 食事管理CLIアプリケーション

SQLite3を使用した個人向け栄養・食事管理アプリケーションです。

機能

  • 食事レコードの追加(食品名、カロリー、タンパク質量)
  • 食事レコードの一覧表示(最新順)
  • 日次サマリー(総カロリー、総タンパク質、記録数)
  • 週次サマリー(指定日数分の集計)
  • CSVファイルからのインポート
  • CSVファイルへのエクスポート
  • 入力検証(空の食品名不可、カロリー >= 0)

必要要件

  • C11対応のCコンパイラ(GCC、Clangなど)
  • CMake 3.10以上
  • SQLite3ライブラリ

🚀 クイックスタート(自動セットアップ)

Windows環境の場合

方法1: vcpkgを使用(推奨 - 完全自動)

# PowerShellで実行
.\setup.ps1

このスクリプトは以下を自動的に実行します:

  • 必要なツール(CMake、Git、コンパイラ)の確認
  • vcpkgのクローンとセットアップ
  • SQLite3のインストール
  • プロジェクトのビルド

必要な前提条件:

方法2: MSYS2/MinGWを使用

# PowerShellで実行(ガイドを表示)
.\setup-msys2.ps1

このスクリプトは、MSYS2のインストールと設定をガイドします。

Linux/macOS環境の場合

# 依存関係のインストール
# Ubuntu/Debian:
sudo apt-get install build-essential cmake libsqlite3-dev

# macOS:
brew install cmake sqlite3

# ビルド
./build.sh

手動セットアップ

自動セットアップスクリプトを使用しない場合は、以下の手順で環境を構築できます。

SQLite3のインストール

Linux (Ubuntu/Debian):

sudo apt-get install libsqlite3-dev

macOS:

brew install sqlite3

Windows: 以下のいずれかの方法でSQLite3をインストールしてください:

  1. MSYS2/MinGW-w64を使用する場合:
pacman -S mingw-w64-x86_64-sqlite3 mingw-w64-x86_64-cmake mingw-w64-x86_64-gcc
  1. vcpkgを使用する場合:
vcpkg install sqlite3:x64-windows
cmake -DCMAKE_TOOLCHAIN_FILE=[vcpkg root]/scripts/buildsystems/vcpkg.cmake ..
  1. 手動でSQLite3をセットアップする場合:
    • SQLite Download Pageから以下をダウンロード:
      • sqlite-amalgamation-*.zip (ソースコード)
      • sqlite-dll-*.zip (DLL、任意)
    • プロジェクトのexternalフォルダに展開
    • CMakeLists.txtで手動パスを設定

注意: Windows環境では、MSYS2/MinGW-w64またはWSL(Windows Subsystem for Linux)の使用を推奨します。

ビルド方法

Linux/macOS の場合

# ビルドディレクトリの作成
mkdir build
cd build

# CMakeの設定
cmake ..

# ビルド
cmake --build .

Windows (MSYS2/MinGW) の場合

# MSYS2 MinGW64ターミナルを開く
mkdir build
cd build

# CMakeの設定
cmake -G "MinGW Makefiles" ..

# ビルド
cmake --build .

Windows (Visual Studio) の場合

SQLite3を手動でセットアップするか、vcpkgを使用してください。

mkdir build
cd build
cmake ..
cmake --build . --config Release

実行方法

# 食事の追加
./meal_tracker add "鶏胸肉" 165 31.0

# 食事一覧の表示(最新10件)
./meal_tracker list

# 全ての食事一覧の表示
./meal_tracker list all

# 今日のサマリー
./meal_tracker summary daily

# 特定の日のサマリー
./meal_tracker summary daily 2025-10-31

# 週次サマリー(過去7日間)
./meal_tracker summary weekly

# 週次サマリー(過去14日間)
./meal_tracker summary weekly 14

# CSVエクスポート
./meal_tracker export meals.csv

# CSVインポート
./meal_tracker import meals.csv

CSVフォーマット

CSVファイルは以下の形式で作成してください:

date,food,kcal,protein
2025-10-31,鶏胸肉,165,31.0
2025-10-31,ブロッコリー,55,4.3
2025-10-30,サーモン,208,20.0

プロジェクト構造

.
├── CMakeLists.txt      # CMakeビルド設定
├── README.md           # このファイル
├── src/
│   ├── main.c         # エントリーポイント
│   ├── db.c           # データベース初期化
│   ├── db.h           # データベースヘッダー
│   ├── commands.c     # コマンド実装
│   └── commands.h     # コマンドヘッダー
└── .github/
    └── copilot-instructions.md  # プロジェクト設定

データベーススキーマ

CREATE TABLE meal (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    date TEXT NOT NULL,
    food TEXT NOT NULL,
    kcal INTEGER NOT NULL CHECK(kcal >= 0),
    protein REAL NOT NULL CHECK(protein >= 0)
);

ライセンス

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors