A backend REST API that transforms your GitHub commits into a personal learning history. Every commit you make becomes a trace of what you learned.
- Node.js / Express 5
- PostgreSQL (Neon) / Prisma ORM
- GitHub OAuth + JWT
- node-cron
- GitHub OAuth authentication with JWT tokens
- Sync repositories and commits from GitHub
- Attach concepts to commits manually or automatically
- Auto-detection of technical concepts from commit messages and code diffs
- Learning history timeline with filters (search, month, concept)
- Progression statistics
- Automatic commit sync every hour via cron job
GET /auth/github— Login with GitHubGET /auth/me— Get current userGET /auth/logout— Logout
POST /repositories/sync— Sync repositories from GitHubGET /repositories— List repositories
POST /repositories/:repoId/commits/sync— Sync commitsGET /repositories/:repoId/commits— List commitsPOST /repositories/:repoId/commits/:commitId/files/sync— Sync commit filesGET /repositories/:repoId/commits/:commitId/files— List commit files
POST /concepts— Create a conceptGET /concepts— List conceptsGET /concepts/:id— Get a conceptPUT /concepts/:id— Update a conceptDELETE /concepts/:id— Delete a conceptGET /concepts/:conceptId/commits— Get commits linked to a concept
POST /repositories/:repoId/commits/:commitId/concepts— Link a concept to a commit manuallyPOST /repositories/:repoId/commits/:commitId/concepts/auto— Auto-detect and link concepts
GET /history— Learning timeline (filters: search, month, concept, page, limit)GET /stats— Progression statistics
git clone https://github.com/NajoroRabiaza/CommitMind
cd CommitMind
npm installCreate a .env file based on .env.example and fill in your credentials.
npx prisma generate
npm run devPORT=3000
DATABASE_URL=
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
CALLBACK_URL=http://localhost:3000/auth/github/callback
JWT_SECRET=
- Backend: Render
- Database: Neon PostgreSQL
- Live: https://commitmind.onrender.com