https://github.com/timzc/classrank
· scanned 2026-06-16 00:37 UTC (2 months, 2 weeks ago)
60 raw signals (0 security + 60 graph)
Last scanned 2 months, 2 weeks ago · v1 · 56 actionable findings from 1 signal source. 4 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 320 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 |
|---|---|---|---|
main |
software | healthy | manage.py:7 |
renderDetails |
software | healthy | frontend/tests/daily-details.test.tsx:renderDetails |
expandRow |
software | healthy | frontend/tests/daily-details.test.tsx:expandRow |
App |
software | healthy | frontend/src/App.tsx:App |
TopNav |
software | healthy | frontend/src/components/layout/top-nav.tsx:TopNav |
AppShell |
software | healthy | frontend/src/components/layout/app-shell.tsx:AppShell |
invalidateYearScoped |
software | healthy | frontend/src/components/layout/academic-year-switcher.tsx:i… |
AcademicYearProvider |
software | healthy | frontend/src/components/layout/academic-year-switcher.tsx:A… |
setYearId |
software | healthy | frontend/src/components/layout/academic-year-switcher.tsx:s… |
useCurrentYear |
software | healthy | frontend/src/components/layout/academic-year-switcher.tsx:u… |
AcademicYearSwitcher |
software | healthy | frontend/src/components/layout/academic-year-switcher.tsx:A… |
ResultTable |
software | healthy | frontend/src/components/upload/result-table.tsx:ResultTable |
update |
software | healthy | frontend/src/components/upload/result-table.tsx:update |
remove |
software | healthy | frontend/src/components/upload/result-table.tsx:remove |
ManualJsonDialog |
software | healthy | frontend/src/components/upload/manual-json-dialog.tsx:Manua… |
copyTemplate |
software | healthy | frontend/src/components/upload/manual-json-dialog.tsx:copyT… |
Dropzone |
software | healthy | frontend/src/components/upload/dropzone.tsx:Dropzone |
pickImages |
software | healthy | frontend/src/components/upload/dropzone.tsx:pickImages |
EmptyState |
software | healthy | frontend/src/components/common/empty-state.tsx:EmptyState |
LoadingButton |
software | healthy | frontend/src/components/common/loading-button.tsx:LoadingBu… |
SheetHeader |
software | healthy | frontend/src/components/ui/sheet.tsx:SheetHeader |
Calendar |
software | healthy | frontend/src/components/ui/calendar.tsx:Calendar |
AlertDialogHeader |
software | healthy | frontend/src/components/ui/alert-dialog.tsx:AlertDialogHead… |
AlertDialogFooter |
software | healthy | frontend/src/components/ui/alert-dialog.tsx:AlertDialogFoot… |
DialogHeader |
software | healthy | frontend/src/components/ui/dialog.tsx:DialogHeader |
DialogFooter |
software | healthy | frontend/src/components/ui/dialog.tsx:DialogFooter |
Toaster |
software | healthy | frontend/src/components/ui/sonner.tsx:Toaster |
Skeleton |
software | healthy | frontend/src/components/ui/skeleton.tsx:Skeleton |
DateRangePicker |
software | healthy | frontend/src/components/dashboard/date-range-picker.tsx:Dat… |
StatCard |
software | healthy | frontend/src/components/dashboard/stat-card.tsx:StatCard |
DailyDetails |
software | healthy | frontend/src/components/dashboard/daily-details.tsx:DailyDe… |
DailyRow |
software | healthy | frontend/src/components/dashboard/daily-details.tsx:DailyRow |
StudentName |
software | healthy | frontend/src/components/dashboard/daily-details.tsx:Student… |
startEdit |
software | healthy | frontend/src/components/dashboard/daily-details.tsx:startEd… |
submit |
software | healthy | frontend/src/components/dashboard/daily-details.tsx:submit |
RankingTable |
software | healthy | frontend/src/components/dashboard/ranking-table.tsx:Ranking… |
ChartTooltip |
software | healthy | frontend/src/components/dashboard/student-score-chart.tsx:C… |
ChartStrip |
software | healthy | frontend/src/components/dashboard/student-score-chart.tsx:C… |
StudentScoreChart |
software | healthy | frontend/src/components/dashboard/student-score-chart.tsx:S… |
FocusedTrendChart |
software | healthy | frontend/src/components/dashboard/focused-trend-chart.tsx:F… |
StudentFormDialog |
software | healthy | frontend/src/components/students/student-form-dialog.tsx:St… |
StudentDetailSheet |
software | healthy | frontend/src/components/students/student-detail-sheet.tsx:S… |
getCsrfToken |
software | healthy | frontend/src/lib/csrf.ts:getCsrfToken |
cn |
software | healthy | frontend/src/lib/utils.ts:cn |
buildQs |
software | healthy | frontend/src/lib/api/stats.ts:buildQs |
qs |
software | healthy | frontend/src/lib/api/records.ts:qs |
request |
software | healthy | frontend/src/lib/api/client.ts:request |
method |
software | healthy | frontend/src/lib/api/client.ts:method |
message |
software | healthy | frontend/src/lib/api/client.ts:message |
safeJson |
software | healthy | frontend/src/lib/api/client.ts:safeJson |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README.md |
software | healthy | README.md |
start.sh |
software | healthy | start.sh |
Dockerfile |
software | healthy | Dockerfile |
manage.py |
software | healthy | manage.py |
.env.example |
software | healthy | .env.example |
PRD.md |
software | healthy | PRD.md |
requirements.txt |
software | healthy | requirements.txt |
docker-compose.yml |
software | healthy | docker-compose.yml |
docker-entrypoint.sh |
software | healthy | docker-entrypoint.sh |
vite.config.ts |
software | healthy | frontend/vite.config.ts |
tailwind.config.ts |
software | healthy | frontend/tailwind.config.ts |
package.json |
software | healthy | frontend/package.json |
tsconfig.node.json |
software | healthy | frontend/tsconfig.node.json |
index.html |
software | healthy | frontend/index.html |
package-lock.json |
software | healthy | frontend/package-lock.json |
components.json |
software | healthy | frontend/components.json |
tsconfig.json |
software | healthy | frontend/tsconfig.json |
postcss.config.js |
software | healthy | frontend/postcss.config.js |
daily-details.test.tsx |
software | healthy | frontend/tests/daily-details.test.tsx |
csrf.test.ts |
software | healthy | frontend/tests/csrf.test.ts |
api-client.test.ts |
software | healthy | frontend/tests/api-client.test.ts |
main.tsx |
software | healthy | frontend/src/main.tsx |
App.tsx |
software | healthy | frontend/src/App.tsx |
setup.ts |
software | healthy | frontend/src/test/setup.ts |
top-nav.tsx |
software | healthy | frontend/src/components/layout/top-nav.tsx |
app-shell.tsx |
software | healthy | frontend/src/components/layout/app-shell.tsx |
academic-year-switcher.tsx |
software | healthy | frontend/src/components/layout/academic-year-switcher.tsx |
result-table.tsx |
software | healthy | frontend/src/components/upload/result-table.tsx |
manual-json-dialog.tsx |
software | healthy | frontend/src/components/upload/manual-json-dialog.tsx |
dropzone.tsx |
software | healthy | frontend/src/components/upload/dropzone.tsx |
empty-state.tsx |
software | healthy | frontend/src/components/common/empty-state.tsx |
loading-button.tsx |
software | healthy | frontend/src/components/common/loading-button.tsx |
table.tsx |
software | healthy | frontend/src/components/ui/table.tsx |
sheet.tsx |
software | healthy | frontend/src/components/ui/sheet.tsx |
calendar.tsx |
software | healthy | frontend/src/components/ui/calendar.tsx |
alert-dialog.tsx |
software | healthy | frontend/src/components/ui/alert-dialog.tsx |
dialog.tsx |
software | healthy | frontend/src/components/ui/dialog.tsx |
dropdown-menu.tsx |
software | healthy | frontend/src/components/ui/dropdown-menu.tsx |
button.tsx |
software | healthy | frontend/src/components/ui/button.tsx |
card.tsx |
software | healthy | frontend/src/components/ui/card.tsx |
popover.tsx |
software | healthy | frontend/src/components/ui/popover.tsx |
switch.tsx |
software | healthy | frontend/src/components/ui/switch.tsx |
textarea.tsx |
software | healthy | frontend/src/components/ui/textarea.tsx |
tabs.tsx |
software | healthy | frontend/src/components/ui/tabs.tsx |
toggle-group.tsx |
software | healthy | frontend/src/components/ui/toggle-group.tsx |
sonner.tsx |
software | healthy | frontend/src/components/ui/sonner.tsx |
input.tsx |
software | healthy | frontend/src/components/ui/input.tsx |
select.tsx |
software | healthy | frontend/src/components/ui/select.tsx |
skeleton.tsx |
software | healthy | frontend/src/components/ui/skeleton.tsx |
label.tsx |
software | healthy | frontend/src/components/ui/label.tsx |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
ANY /api/parse/ |
api | healthy | core/urls.py |
ANY /api/records/ |
api | healthy | core/urls.py |
ANY /api/records/save/ |
api | healthy | core/urls.py |
ANY /api/records/daily-details/ |
api | healthy | core/urls.py |
ANY /api/records/<int:record_id>/ |
api | healthy | core/urls.py |
ANY /api/records/<int:record_id>/update/ |
api | healthy | core/urls.py |
ANY /api/records/<int:record_id>/delete/ |
api | healthy | core/urls.py |
ANY /api/records/delete-by-date/ |
api | healthy | core/urls.py |
ANY /api/students/ |
api | healthy | core/urls.py |
ANY /api/students/add/ |
api | healthy | core/urls.py |
ANY /api/students/<int:student_id>/ |
api | healthy | core/urls.py |
ANY /api/students/<int:student_id>/delete/ |
api | healthy | core/urls.py |
ANY /api/students/<int:student_id>/history/ |
api | healthy | core/urls.py |
ANY /api/students/focused/ |
api | healthy | core/urls.py |
ANY /api/config/<str:key>/ |
api | healthy | core/urls.py |
ANY /api/config/<str:key>/set/ |
api | healthy | core/urls.py |
ANY /api/stats/ |
api | healthy | core/urls.py |
ANY /api/stats/range/ |
api | healthy | core/urls.py |
ANY /api/data/export/ |
api | healthy | core/urls.py |
ANY /api/data/import/ |
api | healthy | core/urls.py |
ANY /api/data/clear/ |
api | healthy | core/urls.py |
ANY /api/academic-years/ |
api | healthy | core/urls.py |
ANY /api/academic-years/add/ |
api | healthy | core/urls.py |
ANY /api/academic-years/<int:year_id>/update/ |
api | healthy | core/urls.py |
ANY /api/academic-years/<int:year_id>/delete/ |
api | healthy | core/urls.py |
ANY /api/academic-years/<int:year_id>/activate/ |
api | healthy | core/urls.py |
ANY /admin/ |
api | healthy | classrank/urls.py |
ANY /api/ |
api | healthy | classrank/urls.py |
ANY /legacy/ |
api | healthy | classrank/urls.py |
ANY /^.*$ |
api | healthy | classrank/urls.py |
| Label | Layer | Status | Path |
|---|---|---|---|
frontend |
software | healthy | frontend |
tests |
software | healthy | frontend/tests |
src |
software | healthy | frontend/src |
test |
software | healthy | frontend/src/test |
components |
software | healthy | frontend/src/components |
layout |
software | healthy | frontend/src/components/layout |
upload |
software | healthy | frontend/src/components/upload |
common |
software | healthy | frontend/src/components/common |
ui |
software | healthy | frontend/src/components/ui |
dashboard |
software | healthy | frontend/src/components/dashboard |
students |
software | healthy | frontend/src/components/students |
lib |
software | healthy | frontend/src/lib |
api |
software | healthy | frontend/src/lib/api |
routes |
software | healthy | frontend/src/routes |
settings |
software | healthy | frontend/src/routes/settings |
styles |
software | healthy | frontend/src/styles |
docs |
software | healthy | docs |
superpowers |
software | healthy | docs/superpowers |
plans |
software | healthy | docs/superpowers/plans |
specs |
software | healthy | docs/superpowers/specs |
templates |
software | healthy | templates |
core |
software | healthy | core |
templatetags |
software | healthy | core/templatetags |
services |
software | healthy | core/services |
migrations |
software | healthy | core/migrations |
classrank |
software | healthy | classrank |
| Label | Layer | Status | Path |
|---|---|---|---|
ApiError |
software | healthy | frontend/src/lib/api/client.ts:ApiError |
StudentAdmin |
software | healthy | core/admin.py:6 |
ScoreRecordAdmin |
software | healthy | core/admin.py:13 |
ConfigAdmin |
software | healthy | core/admin.py:20 |
AcademicYear |
software | healthy | core/models.py:4 |
Meta |
software | healthy | core/models.py:103 |
Student |
software | healthy | core/models.py:26 |
ScoreRecord |
software | healthy | core/models.py:53 |
Config |
software | healthy | core/models.py:96 |
OCRService |
software | healthy | core/services/ocr_service.py:13 |
Migration |
software | healthy | core/migrations/0004_rename_ocr_config_keys.py:39 |
Migration |
software | healthy | core/migrations/0002_academicyear_scorerecord_academic_year… |
Migration |
software | healthy | core/migrations/0003_seed_first_academic_year.py:24 |
| Label | Layer | Status | Path |
|---|---|---|---|
App |
frontend | healthy | frontend/src/App.tsx |
DashboardPage |
frontend | healthy | frontend/src/routes/dashboard.tsx |
UploadPage |
frontend | healthy | frontend/src/routes/upload.tsx |
StudentsPage |
frontend | healthy | frontend/src/routes/students.tsx |
SettingsDataPage |
frontend | healthy | frontend/src/routes/settings/data.tsx |
SettingsApiPage |
frontend | healthy | frontend/src/routes/settings/api.tsx |
SettingsLayout |
frontend | healthy | frontend/src/routes/settings/layout.tsx |
SettingsAcademicYearsPage |
frontend | healthy | frontend/src/routes/settings/academic-years.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
upload |
frontend | healthy | frontend/src/App.tsx |
students |
frontend | healthy | frontend/src/App.tsx |
settings |
frontend | healthy | frontend/src/App.tsx |
api |
frontend | healthy | frontend/src/App.tsx |
academic-years |
frontend | healthy | frontend/src/App.tsx |
data |
frontend | healthy | frontend/src/App.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
AcademicYear |
data | healthy | core/models.py |
Student |
data | healthy | core/models.py |
ScoreRecord |
data | healthy | core/models.py |
Config |
data | healthy | core/models.py |
| Label | Layer | Status | Path |
|---|---|---|---|
0004_rename_ocr_config_keys.py |
data | healthy | core/migrations/0004_rename_ocr_config_keys.py |
0002_academicyear_scorerecord_academic_year.py |
data | healthy | core/migrations/0002_academicyear_scorerecord_academic_year… |
__init__.py |
data | healthy | core/migrations/__init__.py |
0003_seed_first_academic_year.py |
data | healthy | core/migrations/0003_seed_first_academic_year.py |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8000 |
network | healthy | Dockerfile |
port:5173 |
network | healthy | frontend/vite.config.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
web |
hardware | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-dlomyxak |
software | healthy | /tmp/repobility-clone-dlomyxak |
| Label | Layer | Status | Path |
|---|---|---|---|
sqlite |
data | healthy | README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | start.sh |
This page is publicly accessible at:
https://repobility.com/scan/3cec557f-c8ac-4a40-a7f7-09268f072920/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/3cec557f-c8ac-4a40-a7f7-09268f072920/
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.