Skip to content

Commit 0bd2dc6

Browse files
Update README.md
1 parent 324a360 commit 0bd2dc6

1 file changed

Lines changed: 140 additions & 13 deletions

File tree

README.md

Lines changed: 140 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,9 @@
2626

2727
### ⚡ Quick Numbers
2828

29-
| | |
30-
|:---:|:---:|
31-
| ![Dimensions](https://img.shields.io/badge/5-Portfolio%20Dimensions-5e6ad2?style=flat-square) | ![Signals](https://img.shields.io/badge/10%2B-Depth%20Signals-34d399?style=flat-square) |
32-
| ![Types](https://img.shields.io/badge/7-Project%20Types-a78bfa?style=flat-square) | ![Dependencies](https://img.shields.io/badge/0-Dependencies-f87171?style=flat-square) |
29+
| | | | |
30+
|:---:|:---:|:---:|:---:|
31+
| ![Dimensions](https://img.shields.io/badge/5-Portfolio%20Dimensions-5e6ad2?style=flat-square) | ![Signals](https://img.shields.io/badge/10%2B-Depth%20Signals-34d399?style=flat-square) | ![Types](https://img.shields.io/badge/7-Project%20Types-a78bfa?style=flat-square) | ![Dependencies](https://img.shields.io/badge/0-Dependencies-f87171?style=flat-square) |
3332

3433
</div>
3534

@@ -39,7 +38,7 @@
3938

4039
Devora is not a star counter. It is an intelligent portfolio analyzer that goes deep into every repository to detect **what you actually built**, **how technically complex it is**, and **what it would take to score higher**.
4140

42-
It identifies project types, detects 10 technical depth signals, and surfaces your strongest and weakest repos — then generates AI-powered insights using Groq's `llama3-8b-8192` model to give you real, actionable feedback.
41+
Most GitHub profile tools just count stars or show commit streaks. Devora does something fundamentally different — it reads your file tree, parses your README, inspects your directory structure, and runs 10 technical signal detectors across every repo you own. Then it aggregates all of that into a 5-dimension portfolio score, generates an AI-powered insight report, and gives you a step-by-step roadmap to improve.
4342

4443
Everything runs in the browser. No backend. No build step. No npm install.
4544

@@ -53,7 +52,7 @@ Enter Username → Fetch All Repos → Analyze Each Repo → Score 5 Dimensions
5352

5453
**Step 1 — Repository Discovery**
5554

56-
All public repositories are fetched. Profile README repos (same name as username) are automatically excluded from scoring so they do not skew your results.
55+
All public repositories are fetched via the GitHub REST API. Profile README repos (repos with the same name as your username) are automatically excluded from scoring so they do not skew your results.
5756

5857
**Step 2 — Per-Repo Analysis**
5958

@@ -63,9 +62,11 @@ Each repository is scored across 4 sub-dimensions:
6362
|---|---|---|
6463
| Quality | README depth, LICENSE, .gitignore, tests, CI/CD, deployment, topics | 28% |
6564
| Activity | Recency, commit patterns, project age, codebase size | 22% |
66-
| Depth | Technical signal detection (see below) | 30% |
65+
| Depth | Technical signal detection — auth, DB, API, Docker, etc. | 40% |
6766
| Popularity | Stars, forks, original vs fork status | 20% |
6867

68+
> **Note:** Depth carries 40% weight at the repo level — the single most impactful sub-dimension. A repo with auth + database + real-time will score significantly higher than a static page with the same stars.
69+
6970
**Step 3 — Portfolio Score**
7071

7172
Individual repo scores are aggregated into a 5-dimension portfolio score:
@@ -75,7 +76,7 @@ Individual repo scores are aggregated into a 5-dimension portfolio score:
7576
| Reputation | 30% | Stars, forks, and follower count across all repos |
7677
| Activity | 20% | Recent commits, active repo ratio, account longevity |
7778
| Technical Depth | 25% | Advanced signal detection across all repos |
78-
| Diversity | 15% | Language variety (tiers: C/Rust/Go > TS/Python > JS) and project type range (fullstack, CLI, ML, library, etc.) — fastest boost: add a project in a second language |
79+
| Diversity | 15% | Language variety and project type range |
7980
| Quality | 10% | Documentation and structure health |
8081

8182
---
@@ -84,21 +85,23 @@ Individual repo scores are aggregated into a 5-dimension portfolio score:
8485

8586
### Capability Detection — 10 Signals
8687

87-
Devora scans file names, directory names, and README text for each repository:
88+
Devora scans file names, directory names, and README text for each repository. Signals are detected using exact file path matching and regex patterns against README content:
8889

8990
| Signal | How It Is Detected | Score Boost |
9091
|---|---|---|
91-
| **Auth** | `auth.js`, `passport.js`, `bcrypt`, `jsonwebtoken`, `nextauth` in files or README | +15 pts |
92-
| **Database** | `prisma`, `mongoose`, `models/` dir, `mongodb`, `postgresql` in README | +15 pts |
92+
| **Auth** | `auth.js`, `passport.js`, `bcrypt`, `jsonwebtoken`, `nextauth`, `supabase.auth.signInWithPassword` in files or README | +15 pts |
93+
| **Database** | `prisma`, `mongoose`, `models/` dir, `.from('tablename')`, `mongodb`, `postgresql` in README | +15 pts |
9394
| **API Design** | `routes/` dir, `graphql`, `openapi`, REST patterns | +12 pts |
9495
| **AI / ML** | `openai`, `langchain`, `tensorflow`, `pytorch`, `groq` in README | +20 pts |
9596
| **Testing** | `tests/` dir, `jest.config.js`, `pytest.ini`, `cypress.config.js` | +12 pts |
9697
| **Docker** | `Dockerfile`, `docker-compose.yml` in root | +10 pts |
9798
| **CI/CD** | `.github/workflows/`, `.travis.yml`, `jenkinsfile` | +8 pts |
9899
| **TypeScript** | `tsconfig.json` present, or language === TypeScript | +8 pts |
99-
| **Real-time** | `socket.io`, `websocket`, SSE patterns in README | +12 pts |
100+
| **Real-time** | `socket.io`, `websocket`, SSE patterns, `supabase.channel()` in README | +12 pts |
100101
| **State Management** | `redux`, `zustand`, `vuex`, `recoil` in README | +8 pts |
101102

103+
A single repo can score up to **+120 depth points** if it triggers all 10 signals.
104+
102105
### Activity Score Breakdown
103106

104107
```
@@ -127,6 +130,8 @@ Fork count: 10k+ owned forks = +2, 500+ = +1
127130
Quality repos: 4+ repos scoring 70+ = +1
128131
```
129132

133+
This ensures that a score of 90+ reflects genuine impact — not just good formatting.
134+
130135
### Project Type Awareness
131136

132137
Devora detects 7 project types from file structure and directory names:
@@ -143,6 +148,98 @@ Devora detects 7 project types from file structure and directory names:
143148

144149
---
145150

151+
## 🌍 Portfolio Diversity — Deep Dive
152+
153+
Diversity carries **15% of your total score** and is one of the fastest dimensions to improve. It rewards breadth across two axes: the languages you use and the kinds of projects you ship.
154+
155+
### Language Tiers
156+
157+
Not all languages are weighted equally. Devora groups languages into tiers based on technical depth and market rarity:
158+
159+
| Tier | Languages | Why It Matters |
160+
|---|---|---|
161+
| **Tier 1** — Highest | C, C++, Rust, Zig, Assembly | Low-level, memory-managed, high complexity |
162+
| **Tier 2** — High | Go, Java, Kotlin, Swift, Haskell, Erlang, Scala | Strongly typed, production-grade ecosystems |
163+
| **Tier 3** — Medium | TypeScript, Python, Ruby, Elixir, Dart | Modern, widely adopted, strong signal |
164+
| **Tier 4** — Baseline | JavaScript, PHP, CSS, HTML, Shell | Common starting point — good, but expected |
165+
166+
Using **even one Tier 1 or Tier 2 language** across your portfolio unlocks a bonus that JavaScript-only profiles cannot reach.
167+
168+
### How Diversity Is Calculated
169+
170+
```
171+
Language Score = min(unique_languages / 4, 1.0) × 60 → max 60 pts
172+
Project Score = min(unique_project_types / 4, 1.0) × 30 → max 30 pts
173+
Tier Bonus = +10 pts if any Tier-1 or Tier-2 language present
174+
175+
Total Diversity = Language Score + Project Score + Tier Bonus (max 100)
176+
```
177+
178+
### Real-World Examples
179+
180+
| Profile Type | Languages | Project Types | Estimated Diversity |
181+
|---|---|---|---|
182+
| JS-only frontend dev | JavaScript, HTML, CSS | static, frontend-app | ~35 / 100 |
183+
| Full-stack JS dev | JavaScript, TypeScript | backend, frontend-app, fullstack | ~55 / 100 |
184+
| Polyglot developer | JS, Python, Go, TypeScript | backend, cli, ml-ai, library | ~85 / 100 |
185+
| Systems + web | Rust, Go, TypeScript, Python | cli, library, backend, frontend-app | ~98 / 100 |
186+
187+
### How to Improve Diversity — Action Table
188+
189+
| Action | Estimated Gain | Difficulty |
190+
|---|---|---|
191+
| Add one Python project (data script, CLI, API) | +15–20 pts | 🟢 Easy |
192+
| Build a CLI tool in any language | +8 pts (new project type) | 🟢 Easy |
193+
| Publish an npm or pip library | +8 pts (new project type) | 🟡 Medium |
194+
| Add a Jupyter notebook / ML experiment | +8 pts (new project type `ml-ai`) | 🟡 Medium |
195+
| Build one project in Go or Rust | +10 pts (Tier-1/2 bonus unlocked) | 🔴 Hard |
196+
| Reach 4 distinct languages | Full language score (60/60) | 🟡 Medium |
197+
198+
> **Fastest single action:** Add one Python project — even a simple CLI tool or data analysis notebook. It adds a new language (Tier 3) and a new project type (`cli` or `ml-ai`) in a single commit, giving you both the language score and the type score boost simultaneously.
199+
200+
---
201+
202+
## ⚙️ Configuration
203+
204+
All environment credentials and app-level settings live in `src/config/`:
205+
206+
```
207+
src/
208+
└── config/
209+
└── env.config.js # Supabase URL, anon key, Groq API keys
210+
```
211+
212+
### `src/config/env.config.js`
213+
214+
```js
215+
export const ENV = {
216+
supabase: {
217+
url: "YOUR_SUPABASE_URL",
218+
anonKey: "YOUR_SUPABASE_ANON_KEY",
219+
},
220+
groq: {
221+
keys: [
222+
"YOUR_GROQ_KEY_1",
223+
"YOUR_GROQ_KEY_2",
224+
],
225+
},
226+
github: {
227+
apiBase: "https://api.github.com",
228+
},
229+
};
230+
```
231+
232+
Fill in your own values before running locally. Never commit real credentials — add `src/config/env.config.js` to `.gitignore` if you fork this repo privately.
233+
234+
**Getting your keys:**
235+
236+
| Key | Where to get it | Free? |
237+
|---|---|---|
238+
| Supabase URL + anon key | [supabase.com](https://supabase.com) → Project Settings → API | ✅ Yes |
239+
| Groq API key | [console.groq.com](https://console.groq.com) → API Keys | ✅ Yes |
240+
241+
---
242+
146243
## 🤖 AI Insight Engine
147244

148245
Powered by **Groq `llama3-8b-8192`** with 4 built-in API keys and automatic rotation:
@@ -269,6 +366,34 @@ Inspired by [Linear](https://linear.app) — minimal, fast, sharp, and keyboard-
269366

270367
---
271368

369+
## 🗂️ Project Structure
370+
371+
```
372+
devora/
373+
├── index.html # Entry point — open directly in browser
374+
├── style.css # Full design system (Linear-inspired)
375+
├── app.js # App bootstrap, routing, auth listeners
376+
├── api.js # GitHub + Groq + Supabase API calls
377+
├── scoring.js # Core scoring engine
378+
├── components.js # Reusable UI components
379+
├── views.js # Page-level view renderers
380+
├── src/
381+
│ └── config/
382+
│ └── env.config.js # Environment config — Supabase + Groq keys
383+
├── tests/
384+
│ ├── scoring.test.js # 15 scoring algorithm tests
385+
│ └── detection.test.js # 18 signal detection tests
386+
├── .github/
387+
│ └── workflows/
388+
│ └── ci.yml # GitHub Actions — runs tests on every push
389+
├── supabase-setup.sql # Database schema
390+
├── CONTRIBUTING.md # Contributor guide
391+
├── LICENSE
392+
└── package.json
393+
```
394+
395+
---
396+
272397
## 🧪 Tests
273398

274399
```bash
@@ -292,6 +417,8 @@ open devora/index.html
292417

293418
No `npm install`. No webpack. No framework. Open `index.html` directly and it works.
294419

420+
If you want to use your own Supabase + Groq credentials, fill in `src/config/env.config.js`.
421+
295422
---
296423

297424
## 📋 Dashboard Sections
@@ -319,7 +446,7 @@ No `npm install`. No webpack. No framework. Open `index.html` directly and it wo
319446

320447
## 🤝 Contributing
321448

322-
Devora welcomes contributors of all skill levels! Read [CONTRIBUTING.md](CONTRIBUTING.md) for the full guide — project structure, good first issues, PR checklist, and commit style.
449+
Devora welcomes contributors of all skill levels — from fixing a typo to adding a new scoring signal. Read [CONTRIBUTING.md](CONTRIBUTING.md) for the full guide.
323450

324451
```bash
325452
git clone https://github.com/shaikhshahnawaz13/devora.git

0 commit comments

Comments
 (0)