About this project

DevDNA is a web application that turns your public GitHub activity into an analysis report and a developer profile badge. It works exclusively via GitHub OAuth, meaning only you can analyze your own account—there is no anonymous lookup or ranking of other developers. ## What DevDNA provides - **Developer classification**: Ten distinct profile types based on commit patterns, repositories used, and collaboration behavior - **Evidence badge**: An SVG image generated at `devdna-production-1d53.up.railway.app/api/badge/{username}.svg`, designed for inclusion in GitHub READMEs or profile pages - **Shareable report card**: A standalone page at `https://devdna.catchmeif404.com/dev/{username}` containing a deterministic summary of your coding habits, stack preferences, and developer type - **Language support**: Interface and sharing text available in English and Korean - **Privacy design**: Raw repository and commit data are not persisted; only the final analyzed results are stored ## How to add the badge Paste this Markdown into any GitHub README: ```markdown [![DevDNA](https://devdna-production-1d53.up.railway.app/api/badge/YOUR_USERNAME.svg)](https://devdna.catchmeif404.com/dev/YOUR_USERNAME) ``` If the backend has not yet run an analysis for the account, the endpoint returns a placeholder `AWAITING EVIDENCE` badge instead of a broken image. ## Technology stack | Area | Technology | |---|---| | Frontend | Next.js, TypeScript, Tailwind CSS, Cloudflare Workers | | Backend | Spring Boot (Java 21), Flyway migrations, Railway deployment | | Database | PostgreSQL | | Authentication | GitHub OAuth | ## Running locally ```bash cp .env.example .env docker compose up -d ``` - Frontend: http://localhost:3010 - Backend API: http://localhost:8090 Create a GitHub OAuth App and set `GITHUB_CLIENT_ID` and `GITHUB_CLIENT_SECRET`. The local callback URL must be configured as `http://localhost:8090/api/auth/github/callback`. ## Known limitations - Summaries are produced by rule-based templates rather than probabilistic models; commit-type classification optionally calls Claude API when configured - Only final analysis results persist—raw GitHub data is streamed and discarded - In-flight analyses do not automatically resume if the backend restarts - Result ownership may not fully normalize after a GitHub username change