CSRadrX is an AI-powered computer science intelligence platform that monitors research papers, engineering blogs, open-source repositories, and developer communities to detect meaningful ecosystem updates.
The system processes data using an event-driven pipeline and publishes summarized insights via a dashboard and automated channels.
Live: https://csradrx.live
Current MVP flow:
- fetch GitHub repositories
- filter high-signal repos
- enqueue jobs in Redis
- process jobs in a worker
- store
Event,EventAnalysis, andEventScore - expose results through the API
apps/fetcher-> fetches GitHub data and enqueues jobsapps/queue-> consumes jobs, writes DB records, runs analysis and scoringapps/api-> serves stored datapackages/db-> Prisma schema and database configpackages/core-> shared analysis and scoring logic
Install:
- Node.js
- pnpm
- Redis
- PostgreSQL-compatible database
Create or update packages/db/.env with:
DATABASE_URL="your_database_url"
REDIS_URL="redis://127.0.0.1:6379"
GITHUB_TOKEN="your_github_token"You can use packages/db/.env.example as a template.
From the repo root:
pnpm installIf installed via Homebrew:
brew services start redis
redis-cli pingExpected:
PONGStart the worker first:
cd apps/queue
npx tsx src/index.tsIn a second terminal, run the fetcher:
cd apps/fetcher
npx tsx src/github.tsExpected fetcher output:
Queued: owner/repoExpected worker output:
Queue worker ready
Processed job owner/repo: inserted owner/repoIn a third terminal, start the API:
cd apps/api
node --import tsx src/index.tsAvailable endpoints:
Check that events, analysis, and scores exist:
SELECT
e.title,
ea.summary,
es.score
FROM "Event" e
LEFT JOIN "EventAnalysis" ea ON ea."eventId" = e.id
LEFT JOIN "EventScore" es ON es."eventId" = e.id
ORDER BY e."createdAt" DESC
LIMIT 20;apps/fetcherdoes not write to the DB directly- duplicate events are skipped before enqueue using batched URL checks
/trendingcurrently returns GitHub events from the last 48 hours ordered by score