codedna 0.9.0__tar.gz → 0.9.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. codedna-0.9.1/PKG-INFO +398 -0
  2. codedna-0.9.1/README.md +346 -0
  3. {codedna-0.9.0 → codedna-0.9.1}/codedna/__init__.py +1 -1
  4. {codedna-0.9.0 → codedna-0.9.1}/pyproject.toml +3 -3
  5. codedna-0.9.0/PKG-INFO +0 -577
  6. codedna-0.9.0/README.md +0 -525
  7. {codedna-0.9.0 → codedna-0.9.1}/.gitignore +0 -0
  8. {codedna-0.9.0 → codedna-0.9.1}/LICENSE +0 -0
  9. {codedna-0.9.0 → codedna-0.9.1}/codedna/ai.py +0 -0
  10. {codedna-0.9.0 → codedna-0.9.1}/codedna/ai_box.py +0 -0
  11. {codedna-0.9.0 → codedna-0.9.1}/codedna/ai_fingerprint.py +0 -0
  12. {codedna-0.9.0 → codedna-0.9.1}/codedna/analyzer.py +0 -0
  13. {codedna-0.9.0 → codedna-0.9.1}/codedna/api.py +0 -0
  14. {codedna-0.9.0 → codedna-0.9.1}/codedna/auth.py +0 -0
  15. {codedna-0.9.0 → codedna-0.9.1}/codedna/bus_factor.py +0 -0
  16. {codedna-0.9.0 → codedna-0.9.1}/codedna/cli.py +0 -0
  17. {codedna-0.9.0 → codedna-0.9.1}/codedna/db.py +0 -0
  18. {codedna-0.9.0 → codedna-0.9.1}/codedna/demo.py +0 -0
  19. {codedna-0.9.0 → codedna-0.9.1}/codedna/git_hook.py +0 -0
  20. {codedna-0.9.0 → codedna-0.9.1}/codedna/integrations/__init__.py +0 -0
  21. {codedna-0.9.0 → codedna-0.9.1}/codedna/integrations/github_bot.py +0 -0
  22. {codedna-0.9.0 → codedna-0.9.1}/codedna/integrations/jira.py +0 -0
  23. {codedna-0.9.0 → codedna-0.9.1}/codedna/integrations/lemonsqueezy.py +0 -0
  24. {codedna-0.9.0 → codedna-0.9.1}/codedna/interview.py +0 -0
  25. {codedna-0.9.0 → codedna-0.9.1}/codedna/onboarding.py +0 -0
  26. {codedna-0.9.0 → codedna-0.9.1}/codedna/plan.py +0 -0
  27. {codedna-0.9.0 → codedna-0.9.1}/codedna/protection.py +0 -0
  28. {codedna-0.9.0 → codedna-0.9.1}/codedna/rate_limit.py +0 -0
  29. {codedna-0.9.0 → codedna-0.9.1}/codedna/scorer.py +0 -0
  30. {codedna-0.9.0 → codedna-0.9.1}/codedna/sprint_health.py +0 -0
  31. {codedna-0.9.0 → codedna-0.9.1}/codedna/survey.py +0 -0
  32. {codedna-0.9.0 → codedna-0.9.1}/codedna/tech_debt.py +0 -0
  33. {codedna-0.9.0 → codedna-0.9.1}/codedna/webhooks.py +0 -0
  34. {codedna-0.9.0 → codedna-0.9.1}/dashboard/.env.local.example +0 -0
  35. {codedna-0.9.0 → codedna-0.9.1}/dashboard/.gitignore +0 -0
  36. {codedna-0.9.0 → codedna-0.9.1}/dashboard/Dockerfile +0 -0
  37. {codedna-0.9.0 → codedna-0.9.1}/dashboard/README.md +0 -0
  38. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/ai-compare/page.tsx +0 -0
  39. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/api/auth/login/route.ts +0 -0
  40. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/api/auth/logout/route.ts +0 -0
  41. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/api/auth/me/route.ts +0 -0
  42. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/api/auth/register/route.ts +0 -0
  43. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/api/billing/checkout/route.ts +0 -0
  44. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/billing/page.tsx +0 -0
  45. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/bus-factor/page.tsx +0 -0
  46. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/commits/page.tsx +0 -0
  47. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/debt/page.tsx +0 -0
  48. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/favicon.ico +0 -0
  49. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/feedback/page.tsx +0 -0
  50. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/files/page.tsx +0 -0
  51. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/fonts/GeistMonoVF.woff +0 -0
  52. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/fonts/GeistVF.woff +0 -0
  53. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/globals.css +0 -0
  54. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/interview/page.tsx +0 -0
  55. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/layout.tsx +0 -0
  56. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/login/page.tsx +0 -0
  57. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/onboarding/page.tsx +0 -0
  58. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/page.tsx +0 -0
  59. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/pricing/page.tsx +0 -0
  60. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/protected/page.tsx +0 -0
  61. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/register/page.tsx +0 -0
  62. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/repos/page.tsx +0 -0
  63. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/settings/integrations/page.tsx +0 -0
  64. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/sprints/page.tsx +0 -0
  65. {codedna-0.9.0 → codedna-0.9.1}/dashboard/app/trends/page.tsx +0 -0
  66. {codedna-0.9.0 → codedna-0.9.1}/dashboard/components/AuthProvider.tsx +0 -0
  67. {codedna-0.9.0 → codedna-0.9.1}/dashboard/components/ClientProviders.tsx +0 -0
  68. {codedna-0.9.0 → codedna-0.9.1}/dashboard/components/CommitTable.tsx +0 -0
  69. {codedna-0.9.0 → codedna-0.9.1}/dashboard/components/CostInfoTooltip.tsx +0 -0
  70. {codedna-0.9.0 → codedna-0.9.1}/dashboard/components/ErrorBanner.tsx +0 -0
  71. {codedna-0.9.0 → codedna-0.9.1}/dashboard/components/FeatureGate.tsx +0 -0
  72. {codedna-0.9.0 → codedna-0.9.1}/dashboard/components/FileHeatmap.tsx +0 -0
  73. {codedna-0.9.0 → codedna-0.9.1}/dashboard/components/LanguageSwitcher.tsx +0 -0
  74. {codedna-0.9.0 → codedna-0.9.1}/dashboard/components/NavClient.tsx +0 -0
  75. {codedna-0.9.0 → codedna-0.9.1}/dashboard/components/OverviewTitles.tsx +0 -0
  76. {codedna-0.9.0 → codedna-0.9.1}/dashboard/components/QuickInsights.tsx +0 -0
  77. {codedna-0.9.0 → codedna-0.9.1}/dashboard/components/RiskBadge.tsx +0 -0
  78. {codedna-0.9.0 → codedna-0.9.1}/dashboard/components/SummaryCards.tsx +0 -0
  79. {codedna-0.9.0 → codedna-0.9.1}/dashboard/components/UnderstandingChart.tsx +0 -0
  80. {codedna-0.9.0 → codedna-0.9.1}/dashboard/components/UpgradeBanner.tsx +0 -0
  81. {codedna-0.9.0 → codedna-0.9.1}/dashboard/lib/api.ts +0 -0
  82. {codedna-0.9.0 → codedna-0.9.1}/dashboard/lib/auth.ts +0 -0
  83. {codedna-0.9.0 → codedna-0.9.1}/dashboard/lib/i18n/en.ts +0 -0
  84. {codedna-0.9.0 → codedna-0.9.1}/dashboard/lib/i18n/index.tsx +0 -0
  85. {codedna-0.9.0 → codedna-0.9.1}/dashboard/lib/i18n/tr.ts +0 -0
  86. {codedna-0.9.0 → codedna-0.9.1}/dashboard/lib/plan.ts +0 -0
  87. {codedna-0.9.0 → codedna-0.9.1}/dashboard/next-env.d.ts +0 -0
  88. {codedna-0.9.0 → codedna-0.9.1}/dashboard/next.config.mjs +0 -0
  89. {codedna-0.9.0 → codedna-0.9.1}/dashboard/package-lock.json +0 -0
  90. {codedna-0.9.0 → codedna-0.9.1}/dashboard/package.json +0 -0
  91. {codedna-0.9.0 → codedna-0.9.1}/dashboard/postcss.config.mjs +0 -0
  92. {codedna-0.9.0 → codedna-0.9.1}/dashboard/tailwind.config.ts +0 -0
  93. {codedna-0.9.0 → codedna-0.9.1}/dashboard/tsconfig.json +0 -0
codedna-0.9.1/PKG-INFO ADDED
@@ -0,0 +1,398 @@
1
+ Metadata-Version: 2.4
2
+ Name: codedna
3
+ Version: 0.9.1
4
+ Summary: AI Code Transparency Tool — detect AI-written code, analyze commit quality, track understanding debt, sprint health, bus factor, and more
5
+ Project-URL: Homepage, https://codedna.dev
6
+ Project-URL: Repository, https://github.com/natureco-official/codedna
7
+ Project-URL: Issues, https://github.com/natureco-official/codedna/issues
8
+ Project-URL: Changelog, https://github.com/natureco-official/codedna/blob/main/CHANGELOG.md
9
+ Author-email: NatureCo <hello@natureco.me>
10
+ Maintainer-email: Gencay Olgun <info@natureco.me>
11
+ License: MIT
12
+ License-File: LICENSE
13
+ Keywords: ai,ai-detection,bus-factor,code-analysis,code-quality,commit-analysis,developer-tools,devops,discord,docker,export,feedback,git,multi-repo,slack,sprint-health,team-analytics,technical-debt,transparency,trends,webhook
14
+ Classifier: Development Status :: 4 - Beta
15
+ Classifier: Environment :: Console
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: License :: OSI Approved :: MIT License
18
+ Classifier: Natural Language :: English
19
+ Classifier: Natural Language :: Turkish
20
+ Classifier: Operating System :: MacOS
21
+ Classifier: Operating System :: Microsoft :: Windows
22
+ Classifier: Operating System :: OS Independent
23
+ Classifier: Operating System :: POSIX :: Linux
24
+ Classifier: Programming Language :: Python :: 3
25
+ Classifier: Programming Language :: Python :: 3.10
26
+ Classifier: Programming Language :: Python :: 3.11
27
+ Classifier: Programming Language :: Python :: 3.12
28
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
29
+ Classifier: Topic :: Software Development :: Quality Assurance
30
+ Classifier: Topic :: Utilities
31
+ Classifier: Typing :: Typed
32
+ Requires-Python: >=3.10
33
+ Requires-Dist: bcrypt>=5.0.0
34
+ Requires-Dist: fastapi>=0.138.0
35
+ Requires-Dist: gitpython>=3.1.50
36
+ Requires-Dist: pyjwt>=2.13.0
37
+ Requires-Dist: rich>=15.0.0
38
+ Requires-Dist: tree-sitter-javascript>=0.25.0
39
+ Requires-Dist: tree-sitter-python>=0.25.0
40
+ Requires-Dist: tree-sitter-typescript>=0.23.2
41
+ Requires-Dist: tree-sitter>=0.25.2
42
+ Requires-Dist: typer>=0.26.7
43
+ Requires-Dist: uvicorn[standard]>=0.49.0
44
+ Provides-Extra: dashboard
45
+ Requires-Dist: next-cmd>=0.5.0; extra == 'dashboard'
46
+ Provides-Extra: dev
47
+ Requires-Dist: black>=24.0.0; extra == 'dev'
48
+ Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
49
+ Requires-Dist: pytest>=8.0.0; extra == 'dev'
50
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
51
+ Description-Content-Type: text/markdown
52
+
53
+ <div align="center">
54
+
55
+ # 🧬 CodeDNA — AI Code Transparency Tool
56
+
57
+ **Understand every line of code you commit. Is it really yours, or AI's?**
58
+
59
+ Detect which code was written by AI, measure how well developers actually understand their commits, analyze commit quality, track trends, and map out "understanding debt" across your entire team.
60
+
61
+ [![PyPI version](https://badge.fury.io/py/codedna.svg)](https://pypi.org/project/codedna/)
62
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
63
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
64
+ [![GitHub stars](https://img.shields.io/github/stars/natureco-official/codedna.svg)](https://github.com/natureco-official/codedna/stargazers)
65
+
66
+ [**Quick Start**](#-quick-start) • [**Features**](#-features) • [**Commands**](#-commands) • [**Pricing**](#-pricing) • [**Docs**](#-documentation)
67
+
68
+ </div>
69
+
70
+ ---
71
+
72
+ ## 🎯 The Problem
73
+
74
+ In 2026, developers write **78% of their code with AI help** (Copilot, Cursor, ChatGPT, Claude). The result?
75
+
76
+ - 😰 **"Understanding Debt"** — Code is committed, but no one actually knows how it works
77
+ - 🚌 **Bus Factor = 1** — Everyone uses the same AI, no one understands the codebase
78
+ - 💰 **Technical Debt Explosion** — Without human review, AI-generated code decays fast
79
+ - 🐛 **Bug Multiplication** — 3 months later: "Who wrote this? I don't even know what it does"
80
+
81
+ **CodeDNA solves this.** Every commit is scored. Every developer is measured. Every team gets visibility.
82
+
83
+ ---
84
+
85
+ ## ✨ Features
86
+
87
+ ### 🔍 AI Detection (4-metric fingerprint)
88
+ CodeDNA uses 4 heuristics to detect AI-generated code:
89
+
90
+ | Metric | AI Signature | Score |
91
+ |--------|--------------|-------|
92
+ | `comment_ratio > 0.3` | AI over-comments its code | +0.20 |
93
+ | `avg_function_length > 50` | AI produces large monolithic blocks | +0.15 |
94
+ | `single_commit_ratio > 0.7` | Bulk-paste commits are AI-red flag | +0.30 |
95
+ | High complexity + single commit | AI signature → +0.25 |
96
+
97
+ **Total > 0.50 → AI suspected.** Combined with Tree-sitter AST analysis, this gives 80%+ accuracy.
98
+
99
+ ### 🤖 AI Score Explanation
100
+ Each file's score includes a plain-English breakdown of why it scored that way:
101
+ - *"High comment ratio (35%) — AI-generated code tends to over-comment (+0.20)"*
102
+ - *"High single-commit ratio (85%) — bulk paste indicator (+0.30)"*
103
+
104
+ ### 📝 Commit Message Quality Analysis
105
+ - Detects conventional commit types (`feat:`, `fix:`, `docs:`, etc.)
106
+ - Estimates quality score (0-5) based on message clarity
107
+ - Detects ticket references (JIRA, GitHub Issues)
108
+ - Score bonus for scope + ticket references
109
+
110
+ ### 📊 Export & Import
111
+ - `codedna export --format json|csv` — export all data
112
+ - `codedna import file.json` — restore from export
113
+ - API endpoints: `GET /export`, `POST /import`
114
+
115
+ ### 👤 Developer Understanding Score
116
+ - **Survey-based** — Quick Q&A after each commit
117
+ - **Tracked over time** — See your understanding curve
118
+ - **Trend charts** — Dashboard `/trends` page
119
+
120
+ ### 🚌 Bus Factor Analysis
121
+ - **Ownership tracking** — Who owns which file?
122
+ - **Risk identification** — Single points of failure
123
+
124
+ ### 💰 Technical Debt Estimation
125
+ - **Cost in USD** — How much would it cost to fix this?
126
+ - **Trend over time** — Is debt increasing?
127
+
128
+ ### 🏃 Sprint Health
129
+ - **Velocity tracking** — Real commits vs. AI-assisted
130
+ - **Quality metrics** — Per-sprint scoring
131
+
132
+ ### 📈 Trend Charts (Dashboard)
133
+ Time-series visualization of:
134
+ - Daily average AI probability over time
135
+ - Understanding score trend
136
+ - Commit frequency bar chart
137
+
138
+ ### 👀 Live Monitoring (`codedna watch`)
139
+ - Polls git repo for new commits (configurable interval)
140
+ - Auto-runs analysis on each new commit
141
+ - `--once` flag for cron-based usage
142
+ - `--notify` for webhook alerts
143
+
144
+ ### 🔔 Webhook Notifications (Slack/Discord)
145
+ - Configure via `codedna webhook` interactive wizard
146
+ - Automatic alerts on high AI risk detection
147
+ - Protected module violation notifications
148
+ - Configurable risk threshold
149
+
150
+ ### 💬 Feedback Loop
151
+ - Dashboard `/feedback` page
152
+ - Mark AI detections as correct/incorrect/unsure
153
+ - API endpoints for CRUD operations
154
+ - Historical view of all feedback
155
+
156
+ ### 📂 Multi-Repo Dashboard
157
+ - Add/remove repositories via dashboard `/repos`
158
+ - API-backed CRUD with `~/.codedna/repos.json`
159
+ - Centralized view across projects
160
+
161
+ ### 🤖 AI Tool Comparison (Enterprise)
162
+ Copilot vs. Cursor vs. Claude — which tool produces more debt?
163
+
164
+ ### 🎯 Interview Tool (Enterprise)
165
+ Auto-generates questions from real code, records responses, exports reports.
166
+
167
+ ### 🚀 Developer Onboarding
168
+ Ramp-up curve, mentor matching, first PR analysis.
169
+
170
+ ### 🛡️ Protected Modules
171
+ Mark critical files — "AI may not touch auth/, payment/, security/"
172
+
173
+ ### 🐳 Docker Self-Hosted
174
+ ```bash
175
+ docker compose up
176
+ # API → http://localhost:8000
177
+ # Dashboard → http://localhost:3000
178
+ ```
179
+
180
+ ---
181
+
182
+ ## 🚀 Quick Start
183
+
184
+ ### Installation
185
+
186
+ ```bash
187
+ pip install codedna
188
+ ```
189
+
190
+ ### First Use (60 seconds)
191
+
192
+ ```bash
193
+ cd your-awesome-project
194
+ codedna init # Install git hook + create DB
195
+ codedna scan # Analyze all files
196
+ codedna status # Last commit score
197
+ codedna history # Past commits
198
+ ```
199
+
200
+ ### Run the Dashboard
201
+
202
+ ```bash
203
+ codedna dashboard # Web UI (port 3000) + API (port 8000)
204
+ codedna serve # API only (port 8000)
205
+ ```
206
+
207
+ ---
208
+
209
+ ## 📋 Commands (30+ total)
210
+
211
+ ### 📊 Analysis & Reporting
212
+ ```bash
213
+ codedna scan # Full repo AI scan
214
+ codedna status # Last commit score + commit message analysis
215
+ codedna history # Commit history with understanding scores
216
+ codedna report # Generate HTML report
217
+ codedna ai-compare # AI tool comparison (Enterprise)
218
+ codedna export --format json # Export all data (JSON/CSV)
219
+ codedna import file.json # Restore from export
220
+ ```
221
+
222
+ ### 👀 Monitoring
223
+ ```bash
224
+ codedna watch # Live repo monitoring (poll mode)
225
+ codedna watch --once # Single analysis (cron-friendly)
226
+ codedna watch --notify # With webhook alerts
227
+ codedna webhook --show # Show webhook config
228
+ codedna webhook --test # Send test notification
229
+ codedna webhook --reset # Clear webhook config
230
+ ```
231
+
232
+ ### 🛡️ Protection & Policies
233
+ ```bash
234
+ codedna protect add <path> # Add protected module
235
+ codedna protect remove <path> # Remove protection
236
+ codedna protect list # List protected modules
237
+ codedna protect check # Show violations
238
+ ```
239
+
240
+ ### 👥 Team & Process
241
+ ```bash
242
+ codedna onboarding # Developer ramp-up (Team+)
243
+ codedna interview start # Start interview (Enterprise)
244
+ codedna interview list # List interviews
245
+ codedna interview score # Score interview
246
+ codedna bus-factor # Ownership analysis (Team+)
247
+ codedna debt # Technical debt (Team+)
248
+ codedna sprint create # Create sprint
249
+ codedna sprint health # Latest sprint score
250
+ codedna sprint history # All sprints
251
+ ```
252
+
253
+ ### 🌐 Infrastructure
254
+ ```bash
255
+ codedna serve # FastAPI REST (port 8000)
256
+ codedna dashboard # Web dashboard (port 3000)
257
+ codedna pr-comment # GitHub PR comment
258
+ codedna plan # Plan/license management
259
+ codedna setup # AI analysis config wizard
260
+ codedna security-check # Pre-publish secret scanner
261
+ codedna doctor # System health check
262
+ codedna update # Self-upgrade from PyPI
263
+ codedna uninstall # Remove git hook
264
+ ```
265
+
266
+ ---
267
+
268
+ ## 💎 Pricing
269
+
270
+ | Plan | Price | Repos | History | Dashboard | Key Features |
271
+ |------|-------|-------|---------|-----------|--------------|
272
+ | **Free** | $0 | 1 | 7 days | ❌ | AI detection, local only |
273
+ | **Pro** | $12/mo | ∞ | 90 days | ✅ | + Export, Webhooks, Watch |
274
+ | **Team** | $24/mo | ∞ | 365 days | ✅ | + Bus Factor, Sprint, Onboarding |
275
+ | **Enterprise** | $49/mo | ∞ | ∞ | ✅ | + AI Compare, Interview Tool, SSO |
276
+
277
+ ---
278
+
279
+ ## 🔌 Integrations
280
+
281
+ - **GitHub Actions** — Auto-comment on PR
282
+ - **Jira** — Sprint health webhook
283
+ - **Slack** — AI risk notifications
284
+ - **Discord** — Webhook alerts
285
+ - **GitHub Copilot / Cursor / Claude** — AI tool detection
286
+ - **Docker** — Self-hosted deployment
287
+
288
+ ---
289
+
290
+ ## 🛠️ Architecture
291
+
292
+ ```
293
+ CLI (Python, Typer, Tree-sitter, GitPython, SQLite)
294
+
295
+ ├── codedna scan / status / history
296
+ ├── codedna export / import
297
+ ├── codedna watch / webhook
298
+ ├── codedna protect / bus-factor / debt
299
+ ├── codedna sprint / onboarding
300
+ ├── codedna serve / dashboard
301
+ └── codedna doctor / update / security-check
302
+
303
+ ↓ HTTP
304
+ REST API (FastAPI, JWT Auth, Rate Limiting)
305
+ ├── /health, /repo/*
306
+ ├── /commits, /files, /report
307
+ ├── /survey, /sprints, /bus-factor, /debt
308
+ ├── /trends, /trends/commits
309
+ ├── /feedback (POST + GET)
310
+ ├── /repos (GET + POST + DELETE)
311
+ ├── /export, /import
312
+ ├── /auth (register, login, me)
313
+ └── /billing (checkout, webhook, subscription)
314
+
315
+ ↓ HTTP
316
+ Web Dashboard (Next.js 14, TypeScript, Tailwind)
317
+ ├── / (overview + metrics)
318
+ ├── /files, /commits, /report
319
+ ├── /bus-factor, /debt, /sprints
320
+ ├── /trends (charts)
321
+ ├── /feedback (AI accuracy feedback)
322
+ ├── /repos (multi-repo management)
323
+ ├── /ai-compare, /onboarding
324
+ ├── /protected, /interview
325
+ ├── /pricing, /billing
326
+ └── /login, /register
327
+ ```
328
+
329
+ ### Self-Hosted (Docker)
330
+
331
+ ```bash
332
+ git clone https://github.com/natureco-official/codedna.git
333
+ cd codedna
334
+ docker compose up
335
+ ```
336
+
337
+ ---
338
+
339
+ ## 🏗️ Tech Stack
340
+
341
+ - **Python 3.10+** with Typer, FastAPI, Tree-sitter, GitPython, SQLite
342
+ - **Next.js 14** with TypeScript, Tailwind CSS
343
+ - **Docker** — API + Dashboard containers
344
+ - **Lemon Squeezy** — Billing
345
+ - **uv** — Python packaging
346
+
347
+ ---
348
+
349
+ ## 🔒 Security
350
+
351
+ - HMAC-SHA256 webhook verification
352
+ - bcrypt password hashing (cost 12)
353
+ - JWT tokens (7-day expiry)
354
+ - httpOnly + secure + sameSite cookies
355
+ - Parameterized SQL queries
356
+ - Pydantic input validation
357
+ - Rate limiting
358
+ - No telemetry — your code stays yours
359
+
360
+ ---
361
+
362
+ ## 🌍 Supported Languages
363
+
364
+ Python (`.py`), JavaScript (`.js`), TypeScript (`.ts`), JSX (`.jsx`), TSX (`.tsx`)
365
+
366
+ ---
367
+
368
+ ## 🧪 Testing
369
+
370
+ ```bash
371
+ pytest # 23+ tests
372
+ pytest --cov=codedna # With coverage
373
+ ```
374
+
375
+ ---
376
+
377
+ ## 📚 Documentation
378
+
379
+ - CLI Reference — `codedna --help` or per-command `--help`
380
+ - API Reference — http://localhost:8000/docs (when running)
381
+ - [Contributing Guide](CONTRIBUTING.md)
382
+ - [Security Policy](SECURITY.md)
383
+
384
+ ---
385
+
386
+ ## 📜 License
387
+
388
+ MIT License — Copyright (c) 2026 NatureCo
389
+
390
+ ---
391
+
392
+ <div align="center">
393
+
394
+ **Made with 🌿 in Turkey**
395
+
396
+ [⭐ Star us on GitHub](https://github.com/natureco-official/codedna) • [📦 Install from PyPI](https://pypi.org/project/codedna/)
397
+
398
+ </div>