{"id":24770778,"url":"https://github.com/okamyuji/todo","last_synced_at":"2026-04-30T18:31:52.246Z","repository":{"id":273041684,"uuid":"918529393","full_name":"okamyuji/Todo","owner":"okamyuji","description":"A modern full-stack task management dashboard built with Go and Vue.js, featuring real-time analytics, visual metrics, and responsive design using Tailwind CSS.","archived":false,"fork":false,"pushed_at":"2026-04-25T00:15:54.000Z","size":25,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-25T02:30:56.887Z","etag":null,"topics":["analytics","chart-js","dashboard","go","golang","real-time-analytics","tailwindcss","task-management","todo-app","vuejs3"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/okamyuji.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-18T06:50:15.000Z","updated_at":"2026-04-25T00:15:52.000Z","dependencies_parsed_at":"2025-01-18T08:32:28.098Z","dependency_job_id":"5e68033a-ee29-4c24-a872-53747200a907","html_url":"https://github.com/okamyuji/Todo","commit_stats":null,"previous_names":["okamyuji/todo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/okamyuji/Todo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/okamyuji%2FTodo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/okamyuji%2FTodo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/okamyuji%2FTodo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/okamyuji%2FTodo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/okamyuji","download_url":"https://codeload.github.com/okamyuji/Todo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/okamyuji%2FTodo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32473804,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analytics","chart-js","dashboard","go","golang","real-time-analytics","tailwindcss","task-management","todo-app","vuejs3"],"created_at":"2025-01-29T03:56:28.450Z","updated_at":"2026-04-30T18:31:52.232Z","avatar_url":"https://github.com/okamyuji.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Todo Analytics Dashboard\n\n## 概要\n\nTodo Analytics Dashboardは、タスク管理とその分析を組み合わせたモダンなWebアプリケーションです。\nGoによるバックエンド、Vue.jsによるフロントエンド、そしてTailwind CSSによるスタイリングを採用しています。\n\n## 主な機能\n\n- タスクの作成・管理\n- リアルタイムの完了状態トグル\n- カテゴリ別・優先度別の分析\n- ビジュアルダッシュボード（円グラフ・棒グラフ）\n- レスポンシブデザイン\n\n## 技術スタック\n\n- バックエンド\n    - Go 1.21以上\n    - chi（Webフレームワーク）\n    - embed（静的ファイル埋め込み）\n- フロントエンド\n    - Vue.js 3\n    - Chart.js（グラフ描画）\n    - Tailwind CSS（スタイリング）\n\n## プロジェクト構造\n\n```shell\n.\n├── main.go              # メインアプリケーションファイル\n├── go.mod              # Goモジュール定義\n├── go.sum              # Goモジュールバージョン管理\n├── static/             # 静的ファイル\n│   └── js/\n│       └── app.js      # Vue.jsアプリケーション\n└── templates/          # HTMLテンプレート\n    └── index.html      # メインページテンプレート\n```\n\n## セットアップ方法\n\n### 前提条件\n\n- Go 1.21以上がインストールされていること\n\n### インストール手順\n\n1. リポジトリのクローン\n\n    ```bash\n    git clone [リポジトリURL]\n    cd todo-analytics\n    ```\n\n2. 依存関係のインストール\n\n    ```shell\n    go mod download\n    ```\n\n3. アプリケーションの起動\n\n    ```shell\n    go run main.go\n    ```\n\n4. ブラウザでアクセス\n\n    ```shell\n    http://localhost:8080\n    ```\n\n    ```shell\n    GET /api/todos\n    ```\n\n    レスポンス\n\n    ```json\n    [\n        {\n            \"id\": \"string\",\n            \"title\": \"string\",\n            \"category\": \"string\",\n            \"priority\": 1-3,\n            \"done\": boolean,\n            \"created_at\": \"datetime\",\n            \"done_at\": \"datetime|null\"\n        }\n    ]\n    ```\n\n    ```shell\n    POST /api/todos\n    ```\n\n    リクエストボディ\n\n    ```json\n    {\n        \"title\": \"string\",\n        \"category\": \"string\",\n        \"priority\": 1-3\n    }\n    ```\n\n    ```shell\n    PUT /api/todos/{id}/toggle\n    ```\n\n    ```shell\n    GET /api/analytics\n    ```\n\n    レスポンス\n\n    ```json\n    {\n        \"total_todos\": integer,\n        \"completed_todos\": integer,\n        \"completion_rate\": float,\n        \"average_time\": float,\n        \"category_counts\": {\n            \"category_name\": integer\n        },\n        \"priority_counts\": {\n            \"priority_level\": integer\n        }\n    }\n    ```\n\n## データモデル\n\n### Todo構造体\n\n```go\ntype Todo struct {\n    ID        string     `json:\"id\"`\n    Title     string     `json:\"title\"`\n    Category  string     `json:\"category\"`\n    Priority  int        `json:\"priority\"`\n    Done      bool       `json:\"done\"`\n    CreatedAt time.Time  `json:\"created_at\"`\n    DoneAt    *time.Time `json:\"done_at,omitempty\"`\n}\n```\n\n### Analytics構造体\n\n```go\ntype Analytics struct {\n    TotalTodos      int            `json:\"total_todos\"`\n    CompletedTodos  int            `json:\"completed_todos\"`\n    CompletionRate  float64        `json:\"completion_rate\"`\n    AverageTime     float64        `json:\"average_time\"`\n    CategoryCounts  map[string]int `json:\"category_counts\"`\n    PriorityCounts  map[int]int    `json:\"priority_counts\"`\n}\n```\n\n## 開発ガイドライン\n\n### Usage\n\n#### ビルド\n\n```go\n$ go build\n```\n\n#### テスト\n\n```go\n\u003e go test ./... --shuffle=on #テストの実行\n```\n\n#### linterやspell checker\n\nformatter, linter, spell checkerなどを実行します\n\n```shell\n\u003e sh lint.sh\n```\n\n仕様については以下のコマンドにより確認してください\n\n```shell\n\u003e sh lint.sh --help\n```\n\nなお、formatterやlinterが導入済みである必要があります。macOSユーザーであれば、全て以下のコマンドで導入可能です\n\n```shell\n\u003e go install golang.org/x/tools/cmd/goimports@latest\n\u003e go install honnef.co/go/tools/cmd/staticcheck@latest\n\u003e brew install golangci-lint\n\u003e brew install typos-cli\n\u003e brew install codespell\n```\n\nWindowsユーザーの場合、`goimports`, `staticcheck`の導入には同じコマンドが使用できますが、`golangci-lint`, `typos`, `codespell`については公式サイトを参照してください([`golangci-lint`](https://golangci-lint.run/usage/install/#local-installation), [`typos`](https://github.com/crate-ci/typos#install), [`codespell`](https://github.com/codespell-project/codespell#installation))\n\n### バックエンド開発\n\n- 新しいエンドポイントの追加は`main.go`のルーター設定に行う\n- データ構造の変更は`Todo`構造体と`Analytics`構造体を更新\n- エラーハンドリングは適切なHTTPステータスコードを返す\n\n### フロントエンド開発\n\n- コンポーネントロジックは`app.js`に集中\n- 新しい機能は適切なVueメソッドとして実装\n- チャート更新は`updateCharts`メソッドを拡張\n- スタイリングはTailwind CSSのユーティリティクラスを使用\n\n## エラーハンドリング\n\nアプリケーションは以下の状況で適切なエラーハンドリングを実装\n\n- API呼び出しの失敗\n- データベース操作の失敗\n- 不正なリクエストデータ\n- 存在しないリソースへのアクセス\n\n## パフォーマンス最適化\n\n- インメモリデータストアの使用\n- チャートの効率的な更新\n- Vue.jsの算出プロパティ活用\n- 静的アセットの適切なキャッシング\n\n## セキュリティ考慮事項\n\n- 入力データのバリデーション\n- XSS対策\n- CSRF対策\n- 適切なHTTPヘッダー設定\n\n## 今後の改善点\n\n1. データの永続化（データベース統合）\n2. ユーザー認証の実装\n3. タスクの期限日設定機能\n4. より詳細な分析機能\n5. タスクのフィルタリング機能\n6. バッチ処理による定期的なタスクのクリーンアップ\n\n## ライセンス\n\nMITライセンス\n\n## 貢献ガイドライン\n\n1. Issueの作成\n2. ブランチの作成（feature/fix）\n3. 変更の実装\n4. テストの実行\n5. プルリクエストの作成\n\n## 開発環境設定\n\n推奨される開発環境の設定:\n\n```shell\n# Go環境\ngo version \u003e= 1.21\ngo mod vendor\n\n# エディタ設定（VSCode）\n- Go拡張機能\n- Vue.js拡張機能\n- Tailwind CSS IntelliSense\n```\n\n## トラブルシューティング\n\nよくある問題と解決方法\n\n1. テンプレートエラー\n\n    ```shell\n    panic: template: index.html: function not defined\n    ```\n\n    解決策: Vue.jsの構文とGoのテンプレート構文が競合していないか確認\n\n2. 静的ファイルが読み込めない\n\n    ```shell\n    404 Not Found: /static/js/app.js\n    ```\n\n    解決策: ファイルパスとembedディレクティブを確認\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fokamyuji%2Ftodo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fokamyuji%2Ftodo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fokamyuji%2Ftodo/lists"}