https://github.com/thanhuy8888/-n_Systematic-Review-AI
· scanned 2026-06-16 00:33 UTC (2 months, 2 weeks ago)
68 raw signals (0 security + 68 graph)
Last scanned 2 months, 2 weeks ago · v1 · 60 actionable findings from 1 signal source. 8 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 321 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
init_db |
software | healthy | apps/api/database.py:10 |
get_db |
software | dead | apps/api/database.py:13 |
read_root |
software | healthy | apps/api/main.py:25 |
get_screening_board_data |
software | healthy | apps/api/routers/screening.py:40 |
submit_review_action |
software | healthy | apps/api/routers/screening.py:92 |
predict_screening |
software | healthy | apps/api/routers/screening.py:124 |
active_learning_update |
software | dead | apps/api/routers/screening.py:159 |
trigger_retrain |
software | healthy | apps/api/routers/screening.py:165 |
extract_data |
software | healthy | apps/api/routers/screening.py:174 |
parse_pdf_file |
software | healthy | apps/api/routers/screening.py:222 |
delete_paper |
software | healthy | apps/api/routers/screening.py:267 |
upload_files |
software | healthy | apps/api/routers/upload.py:20 |
_insert_papers |
software | healthy | apps/api/routers/upload.py:82 |
persist_extraction |
software | healthy | apps/api/routers/review.py:66 |
_serialize |
software | healthy | apps/api/routers/review.py:125 |
list_extractions |
software | healthy | apps/api/routers/review.py:146 |
get_extraction |
software | healthy | apps/api/routers/review.py:181 |
submit_correction |
software | healthy | apps/api/routers/review.py:193 |
accept_extraction |
software | healthy | apps/api/routers/review.py:214 |
reject_extraction |
software | healthy | apps/api/routers/review.py:234 |
review_queue |
software | healthy | apps/api/routers/review.py:258 |
review_stats |
software | healthy | apps/api/routers/review.py:299 |
addPapers |
software | healthy | apps/web/App.tsx:addPapers |
start |
software | healthy | apps/web/App.tsx:start |
handleKeyDown |
software | healthy | apps/web/App.tsx:handleKeyDown |
goNext |
software | healthy | apps/web/App.tsx:goNext |
goPrev |
software | healthy | apps/web/App.tsx:goPrev |
updatePaperStatus |
software | healthy | apps/web/App.tsx:updatePaperStatus |
handleExclude |
software | healthy | apps/web/App.tsx:handleExclude |
confirmExclusion |
software | healthy | apps/web/App.tsx:confirmExclusion |
handleRemovePaper |
software | healthy | apps/web/App.tsx:handleRemovePaper |
handleBatchAIScreening |
software | healthy | apps/web/App.tsx:handleBatchAIScreening |
handleExportEvidenceCSV |
software | healthy | apps/web/App.tsx:handleExportEvidenceCSV |
escape |
software | healthy | apps/web/App.tsx:escape |
handleImportProject |
software | healthy | apps/web/App.tsx:handleImportProject |
handleSeedDemoData |
software | healthy | apps/web/App.tsx:handleSeedDemoData |
handleChange |
software | healthy | apps/web/components/CriteriaEditor.tsx:handleChange |
handleFiles |
software | healthy | apps/web/components/PaperUploader.tsx:handleFiles |
openDB |
software | healthy | apps/web/services/storageService.ts:openDB |
saveProject |
software | healthy | apps/web/services/storageService.ts:saveProject |
loadProject |
software | healthy | apps/web/services/storageService.ts:loadProject |
exportProjectFile |
software | healthy | apps/web/services/storageService.ts:exportProjectFile |
parseRIS |
software | healthy | apps/web/services/parsers.ts:parseRIS |
parseBIB |
software | healthy | apps/web/services/parsers.ts:parseBIB |
API_BASE |
software | healthy | apps/web/services/mlService.ts:API_BASE |
screenPaper |
software | healthy | apps/web/services/mlService.ts:screenPaper |
extractPaperData |
software | healthy | apps/web/services/mlService.ts:extractPaperData |
get_label_from_value |
software | dead | scripts/ingest_rayyan_data.py:13 |
process_exported_rayyan_dataset |
software | healthy | scripts/ingest_rayyan_data.py:23 |
_normalize_text |
software | healthy | sr_core/ingest/pdf_parser.py:48 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
launch.sh |
software | healthy | launch.sh |
convert_jsonl_to_project.py |
software | healthy | convert_jsonl_to_project.py |
README.md |
software | healthy | README.md |
generate_report_metrics.py |
software | healthy | generate_report_metrics.py |
Dockerfile |
software | healthy | Dockerfile |
HUONG_DAN_CHAY_LAI_CHART_CPU.md |
software | healthy | HUONG_DAN_CHAY_LAI_CHART_CPU.md |
check_db.py |
software | healthy | check_db.py |
requirements.txt |
software | healthy | requirements.txt |
docker-compose.yml |
software | healthy | docker-compose.yml |
database.py |
software | healthy | apps/api/database.py |
__init__.py |
software | healthy | apps/api/__init__.py |
models.py |
software | healthy | apps/api/models.py |
main.py |
software | healthy | apps/api/main.py |
__init__.py |
software | healthy | apps/api/routers/__init__.py |
screening.py |
software | healthy | apps/api/routers/screening.py |
upload.py |
software | healthy | apps/api/routers/upload.py |
review.py |
software | healthy | apps/api/routers/review.py |
index.css |
software | healthy | apps/web/index.css |
vite.config.ts |
software | healthy | apps/web/vite.config.ts |
README.md |
software | healthy | apps/web/README.md |
tailwind.config.js |
software | healthy | apps/web/tailwind.config.js |
package.json |
software | healthy | apps/web/package.json |
index.html |
software | healthy | apps/web/index.html |
Dockerfile |
software | healthy | apps/web/Dockerfile |
index.tsx |
software | healthy | apps/web/index.tsx |
package-lock.json |
software | healthy | apps/web/package-lock.json |
tsconfig.json |
software | healthy | apps/web/tsconfig.json |
App.tsx |
software | healthy | apps/web/App.tsx |
metadata.json |
software | healthy | apps/web/metadata.json |
types.ts |
software | healthy | apps/web/types.ts |
postcss.config.js |
software | healthy | apps/web/postcss.config.js |
CriteriaEditor.tsx |
software | healthy | apps/web/components/CriteriaEditor.tsx |
Dashboard.tsx |
software | healthy | apps/web/components/Dashboard.tsx |
PaperUploader.tsx |
software | healthy | apps/web/components/PaperUploader.tsx |
prompt_2026-01-29T02_40_17.630Z.json |
software | healthy | apps/web/migrated_prompt_history/prompt_2026-01-29T02_40_17… |
storageService.ts |
software | healthy | apps/web/services/storageService.ts |
parsers.ts |
software | healthy | apps/web/services/parsers.ts |
mlService.ts |
software | healthy | apps/web/services/mlService.ts |
sample_project.json |
software | healthy | apps/web/public/sample_project.json |
ingest_rayyan_data.py |
software | healthy | scripts/ingest_rayyan_data.py |
__init__.py |
software | healthy | sr_core/__init__.py |
pdf_parser.py |
software | healthy | sr_core/ingest/pdf_parser.py |
parser.py |
software | healthy | sr_core/ingest/parser.py |
rayyan_parser.py |
software | healthy | sr_core/ingest/rayyan_parser.py |
extractive_qa.py |
software | healthy | sr_core/extraction/extractive_qa.py |
baseline.py |
software | healthy | sr_core/screening_model/baseline.py |
bm25.py |
software | healthy | sr_core/screening_model/bm25.py |
transformer_screen.py |
software | healthy | sr_core/screening_model/transformer_screen.py |
finetuned_meta.json |
software | healthy | sr_core/screening_model/finetuned_meta.json |
evaluate_transformer.py |
software | healthy | experiments/baselines/evaluate_transformer.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
Paper |
software | healthy | apps/api/models.py:7 |
ScreeningLabel |
software | healthy | apps/api/models.py:24 |
ReviewAction |
software | healthy | apps/api/models.py:36 |
Extraction |
software | healthy | apps/api/models.py:50 |
Cluster |
software | healthy | apps/api/models.py:77 |
ReviewCriteria |
software | healthy | apps/api/routers/screening.py:19 |
PaperSchema |
software | healthy | apps/api/routers/screening.py:26 |
PredictRequest |
software | healthy | apps/api/routers/screening.py:32 |
ExtractRequest |
software | healthy | apps/api/routers/screening.py:36 |
ExtractionFieldIn |
software | healthy | apps/api/routers/review.py:35 |
PersistRequest |
software | healthy | apps/api/routers/review.py:44 |
CorrectionIn |
software | healthy | apps/api/routers/review.py:50 |
AcceptIn |
software | healthy | apps/api/routers/review.py:56 |
ExtractiveQAPipeline |
software | healthy | sr_core/extraction/extractive_qa.py:29 |
LemmaTokenizer |
software | healthy | sr_core/screening_model/baseline.py:15 |
BaselineModel |
software | healthy | sr_core/screening_model/baseline.py:22 |
BM25Filter |
software | healthy | sr_core/screening_model/bm25.py:5 |
TransformerScreeningModel |
software | healthy | sr_core/screening_model/transformer_screen.py:99 |
_nullcontext |
software | healthy | experiments/baselines/train_ensemble_cpu.py:124 |
DS |
software | healthy | experiments/baselines/train_ensemble_cpu.py:169 |
FocalLoss |
software | healthy | experiments/baselines/finetune_pubmedbert.py:132 |
ScreenDataset |
software | healthy | experiments/baselines/finetune_pubmedbert.py:191 |
ScreenDataset |
software | healthy | experiments/baselines/finetune_pubmedbert_cpu.py:214 |
_nullcontext |
software | healthy | experiments/baselines/finetune_pubmedbert_cpu.py:395 |
| Label | Layer | Status | Path |
|---|---|---|---|
apps |
software | healthy | apps |
api |
software | healthy | apps/api |
routers |
software | healthy | apps/api/routers |
web |
software | healthy | apps/web |
components |
software | healthy | apps/web/components |
migrated_prompt_history |
software | healthy | apps/web/migrated_prompt_history |
services |
software | healthy | apps/web/services |
public |
software | healthy | apps/web/public |
scripts |
software | healthy | scripts |
sr_core |
software | healthy | sr_core |
ingest |
software | healthy | sr_core/ingest |
extraction |
software | healthy | sr_core/extraction |
screening_model |
software | healthy | sr_core/screening_model |
experiments |
software | healthy | experiments |
baselines |
software | healthy | experiments/baselines |
results |
software | healthy | experiments/results |
backup_run3 |
software | healthy | experiments/results/backup_run3 |
backup_run1 |
software | healthy | experiments/results/backup_run1 |
backup_colab_B |
software | healthy | experiments/results/backup_colab_B |
backup_colab_A |
software | healthy | experiments/results/backup_colab_A |
backup_run2 |
software | healthy | experiments/results/backup_run2 |
Document |
software | healthy | Document |
| Label | Layer | Status | Path |
|---|---|---|---|
GET / |
api | healthy | apps/api/main.py |
POST /{paper_id}/action |
api | healthy | apps/api/routers/screening.py |
POST /predict |
api | healthy | apps/api/routers/screening.py |
POST /retrain |
api | healthy | apps/api/routers/screening.py |
POST /extract |
api | healthy | apps/api/routers/screening.py |
POST /parse_pdf |
api | healthy | apps/api/routers/screening.py |
DELETE /{paper_id} |
api | healthy | apps/api/routers/screening.py |
POST / |
api | healthy | apps/api/routers/upload.py |
POST /extractions/persist |
api | healthy | apps/api/routers/review.py |
GET /extractions |
api | healthy | apps/api/routers/review.py |
GET /extractions/{extraction_id} |
api | healthy | apps/api/routers/review.py |
PATCH /extractions/{extraction_id} |
api | healthy | apps/api/routers/review.py |
POST /extractions/{extraction_id}/accept |
api | healthy | apps/api/routers/review.py |
POST /extractions/{extraction_id}/reject |
api | healthy | apps/api/routers/review.py |
GET /queue |
api | healthy | apps/api/routers/review.py |
GET /stats |
api | healthy | apps/api/routers/review.py |
| Label | Layer | Status | Path |
|---|---|---|---|
Paper |
data | healthy | apps/api/models.py |
ScreeningLabel |
data | healthy | apps/api/models.py |
ReviewAction |
data | healthy | apps/api/models.py |
Extraction |
data | healthy | apps/api/models.py |
Cluster |
data | healthy | apps/api/models.py |
papers |
data | healthy | apps/api/models.py |
screening_labels |
data | healthy | apps/api/models.py |
review_actions |
data | healthy | apps/api/models.py |
extractions |
data | healthy | apps/api/models.py |
clusters |
data | healthy | apps/api/models.py |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
image::apps/web/Dockerfile |
hardware | healthy | apps/web/Dockerfile |
backend |
hardware | healthy | docker-compose.yml |
frontend |
hardware | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
App |
frontend | healthy | apps/web/App.tsx |
CriteriaEditor |
frontend | healthy | apps/web/components/CriteriaEditor.tsx |
Dashboard |
frontend | healthy | apps/web/components/Dashboard.tsx |
PaperUploader |
frontend | healthy | apps/web/components/PaperUploader.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8000 |
network | healthy | Dockerfile |
port:80 |
network | healthy | docker-compose.yml |
port:3000 |
network | healthy | apps/web/vite.config.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-mk9ps126 |
software | healthy | /tmp/repobility-clone-mk9ps126 |
| Label | Layer | Status | Path |
|---|---|---|---|
sqlite |
data | healthy | Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
nginx |
network | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
gpu (detected) |
hardware | healthy | sr_core/extraction/extractive_qa.py |
This page is publicly accessible at:
https://repobility.com/scan/c25e07d0-b1d9-4ab8-97c2-a166d099bd87/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/c25e07d0-b1d9-4ab8-97c2-a166d099bd87/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.