https://github.com/robreed64/bjj-checkin
· scanned 2026-06-15 23:53 UTC (2 months, 3 weeks ago)
75 raw signals (0 security + 75 graph)
Last scanned 2 months, 3 weeks ago · v1 · 74 actionable findings from 1 signal source. 1 repeated signal grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 1258 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 |
|---|---|---|---|
daysAgo |
software | healthy | prisma/seed.ts:daysAgo |
main |
software | healthy | prisma/seed.ts:main |
role |
software | healthy | src/auth.config.ts:role |
PhotoUploader |
software | healthy | src/components/PhotoUploader.tsx:PhotoUploader |
handleFile |
software | healthy | src/components/PhotoUploader.tsx:handleFile |
parse |
software | healthy | src/components/VideoPlayer.tsx:parse |
VideoPlayer |
software | healthy | src/components/VideoPlayer.tsx:VideoPlayer |
LogoutButton |
software | healthy | src/components/LogoutButton.tsx:LogoutButton |
InstallPrompt |
software | healthy | src/components/InstallPrompt.tsx:InstallPrompt |
handler |
software | healthy | src/components/InstallPrompt.tsx:handler |
install |
software | healthy | src/components/InstallPrompt.tsx:install |
dismiss |
software | healthy | src/components/InstallPrompt.tsx:dismiss |
ConfigWarnings |
software | healthy | src/components/ConfigWarnings.tsx:ConfigWarnings |
EyeIcon |
software | healthy | src/components/PasswordInput.tsx:EyeIcon |
PasswordInput |
software | healthy | src/components/PasswordInput.tsx:PasswordInput |
SignaturePad |
software | healthy | src/components/SignaturePad.tsx:SignaturePad |
getCtx |
software | healthy | src/components/SignaturePad.tsx:getCtx |
toPoint |
software | healthy | src/components/SignaturePad.tsx:toPoint |
clear |
software | healthy | src/components/SignaturePad.tsx:clear |
loadSquareSdk |
software | healthy | src/components/payments/SquareCardForm.tsx:loadSquareSdk |
SquareCardForm |
software | healthy | src/components/payments/SquareCardForm.tsx:SquareCardForm |
submit |
software | healthy | src/components/payments/SquareCardForm.tsx:submit |
Home |
software | healthy | src/app/page.tsx:Home |
RootLayout |
software | healthy | src/app/layout.tsx:RootLayout |
LoginForm |
software | healthy | src/app/login/page.tsx:LoginForm |
handleSubmit |
software | healthy | src/app/login/page.tsx:handleSubmit |
LoginPage |
software | healthy | src/app/login/page.tsx:LoginPage |
KioskExitModal |
software | healthy | src/app/kiosk/KioskExitModal.tsx:KioskExitModal |
submit |
software | healthy | src/app/kiosk/KioskExitModal.tsx:submit |
QRScannerView |
software | healthy | src/app/kiosk/QRScannerView.tsx:QRScannerView |
WaiverScreen |
software | healthy | src/app/kiosk/WaiverScreen.tsx:WaiverScreen |
submit |
software | healthy | src/app/kiosk/WaiverScreen.tsx:submit |
Confetti |
software | healthy | src/app/kiosk/page.tsx:Confetti |
MilestoneBanner |
software | healthy | src/app/kiosk/page.tsx:MilestoneBanner |
BeltBadge |
software | healthy | src/app/kiosk/page.tsx:BeltBadge |
Initials |
software | healthy | src/app/kiosk/page.tsx:Initials |
KioskPage |
software | healthy | src/app/kiosk/page.tsx:KioskPage |
onBeforeUnload |
software | healthy | src/app/kiosk/page.tsx:onBeforeUnload |
onPopState |
software | healthy | src/app/kiosk/page.tsx:onPopState |
handleSelect |
software | healthy | src/app/kiosk/page.tsx:handleSelect |
handleCheckIn |
software | healthy | src/app/kiosk/page.tsx:handleCheckIn |
handleReset |
software | healthy | src/app/kiosk/page.tsx:handleReset |
KioskSignup |
software | healthy | src/app/kiosk/new/KioskSignup.tsx:KioskSignup |
validateInfo |
software | healthy | src/app/kiosk/new/KioskSignup.tsx:validateInfo |
KioskNewPage |
software | healthy | src/app/kiosk/new/page.tsx:KioskNewPage |
GET |
software | healthy | src/app/api/settings/public/route.ts:GET |
GET |
software | healthy | src/app/api/push/vapid-public-key/route.ts:GET |
POST |
software | healthy | src/app/api/push/subscribe/route.ts:POST |
DELETE |
software | healthy | src/app/api/push/subscribe/route.ts:DELETE |
POST |
software | healthy | src/app/api/leads/route.ts:POST |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
ERRORS.md |
software | healthy | ERRORS.md |
vercel.json |
software | healthy | vercel.json |
postcss.config.mjs |
software | healthy | postcss.config.mjs |
tailwind.config.ts |
software | healthy | tailwind.config.ts |
package.json |
software | healthy | package.json |
claude.md |
software | healthy | claude.md |
package-lock.json |
software | healthy | package-lock.json |
.env.example |
software | healthy | .env.example |
tsconfig.json |
software | healthy | tsconfig.json |
eslint.config.mjs |
software | healthy | eslint.config.mjs |
vitest.config.ts |
software | healthy | vitest.config.ts |
next.config.ts |
software | healthy | next.config.ts |
seed.ts |
software | healthy | prisma/seed.ts |
manifest.json |
software | healthy | public/manifest.json |
sw.js |
software | healthy | public/sw.js |
ci.yml |
software | healthy | .github/workflows/ci.yml |
auth.config.ts |
software | healthy | src/auth.config.ts |
auth.ts |
software | healthy | src/auth.ts |
middleware.ts |
software | healthy | src/middleware.ts |
next-auth.d.ts |
software | healthy | src/types/next-auth.d.ts |
prisma-mock.ts |
software | healthy | src/test/prisma-mock.ts |
PhotoUploader.tsx |
software | healthy | src/components/PhotoUploader.tsx |
VideoPlayer.tsx |
software | healthy | src/components/VideoPlayer.tsx |
LogoutButton.tsx |
software | healthy | src/components/LogoutButton.tsx |
InstallPrompt.tsx |
software | healthy | src/components/InstallPrompt.tsx |
ConfigWarnings.tsx |
software | healthy | src/components/ConfigWarnings.tsx |
PasswordInput.tsx |
software | healthy | src/components/PasswordInput.tsx |
SignaturePad.tsx |
software | healthy | src/components/SignaturePad.tsx |
SquareCardForm.tsx |
software | healthy | src/components/payments/SquareCardForm.tsx |
globals.css |
software | healthy | src/app/globals.css |
page.tsx |
software | healthy | src/app/page.tsx |
layout.tsx |
software | healthy | src/app/layout.tsx |
page.tsx |
software | healthy | src/app/login/page.tsx |
KioskExitModal.tsx |
software | healthy | src/app/kiosk/KioskExitModal.tsx |
QRScannerView.tsx |
software | healthy | src/app/kiosk/QRScannerView.tsx |
WaiverScreen.tsx |
software | healthy | src/app/kiosk/WaiverScreen.tsx |
page.tsx |
software | healthy | src/app/kiosk/page.tsx |
KioskSignup.tsx |
software | healthy | src/app/kiosk/new/KioskSignup.tsx |
page.tsx |
software | healthy | src/app/kiosk/new/page.tsx |
route.ts |
software | healthy | src/app/api/settings/public/route.ts |
route.ts |
software | healthy | src/app/api/push/vapid-public-key/route.ts |
route.ts |
software | healthy | src/app/api/push/subscribe/route.ts |
route.ts |
software | healthy | src/app/api/auth/[...nextauth]/route.ts |
route.ts |
software | healthy | src/app/api/leads/route.ts |
route.ts |
software | healthy | src/app/api/kiosk/exit/route.ts |
route.ts |
software | healthy | src/app/api/meta/program-types/route.ts |
route.ts |
software | healthy | src/app/api/square/webhook/route.ts |
route.test.ts |
software | healthy | src/app/api/square/webhook/route.test.ts |
route.ts |
software | healthy | src/app/api/admin/settings/route.ts |
route.ts |
software | healthy | src/app/api/admin/users/route.ts |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
prisma |
software | healthy | prisma |
public |
software | healthy | public |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
types |
software | healthy | src/types |
test |
software | healthy | src/test |
components |
software | healthy | src/components |
payments |
software | healthy | src/components/payments |
app |
software | healthy | src/app |
login |
software | healthy | src/app/login |
kiosk |
software | healthy | src/app/kiosk |
new |
software | healthy | src/app/kiosk/new |
api |
software | healthy | src/app/api |
settings |
software | healthy | src/app/api/settings |
public |
software | healthy | src/app/api/settings/public |
push |
software | healthy | src/app/api/push |
vapid-public-key |
software | healthy | src/app/api/push/vapid-public-key |
subscribe |
software | healthy | src/app/api/push/subscribe |
auth |
software | healthy | src/app/api/auth |
[...nextauth] |
software | healthy | src/app/api/auth/[...nextauth] |
leads |
software | healthy | src/app/api/leads |
kiosk |
software | healthy | src/app/api/kiosk |
exit |
software | healthy | src/app/api/kiosk/exit |
meta |
software | healthy | src/app/api/meta |
program-types |
software | healthy | src/app/api/meta/program-types |
square |
software | healthy | src/app/api/square |
webhook |
software | healthy | src/app/api/square/webhook |
admin |
software | healthy | src/app/api/admin |
settings |
software | healthy | src/app/api/admin/settings |
users |
software | healthy | src/app/api/admin/users |
[id] |
software | healthy | src/app/api/admin/users/[id] |
push |
software | healthy | src/app/api/admin/push |
send |
software | healthy | src/app/api/admin/push/send |
bookings |
software | healthy | src/app/api/admin/bookings |
[id] |
software | healthy | src/app/api/admin/bookings/[id] |
media |
software | healthy | src/app/api/admin/media |
video |
software | healthy | src/app/api/admin/media/video |
families |
software | healthy | src/app/api/admin/families |
[memberId] |
software | healthy | src/app/api/admin/families/[memberId] |
discount |
software | healthy | src/app/api/admin/families/[memberId]/discount |
classes |
software | healthy | src/app/api/admin/classes |
[id] |
software | healthy | src/app/api/admin/classes/[id] |
roster |
software | healthy | src/app/api/admin/classes/[id]/roster |
active |
software | healthy | src/app/api/admin/classes/active |
marketing |
software | healthy | src/app/api/admin/marketing |
messages |
software | healthy | src/app/api/admin/marketing/messages |
workflows |
software | healthy | src/app/api/admin/marketing/workflows |
[id] |
software | healthy | src/app/api/admin/marketing/workflows/[id] |
toggle |
software | healthy | src/app/api/admin/marketing/workflows/[id]/toggle |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
PhotoUploader |
frontend | healthy | src/components/PhotoUploader.tsx |
VideoPlayer |
frontend | healthy | src/components/VideoPlayer.tsx |
LogoutButton |
frontend | healthy | src/components/LogoutButton.tsx |
InstallPrompt |
frontend | healthy | src/components/InstallPrompt.tsx |
ConfigWarnings |
frontend | healthy | src/components/ConfigWarnings.tsx |
PasswordInput |
frontend | healthy | src/components/PasswordInput.tsx |
SignaturePad |
frontend | healthy | src/components/SignaturePad.tsx |
SquareCardForm |
frontend | healthy | src/components/payments/SquareCardForm.tsx |
Home |
frontend | healthy | src/app/page.tsx |
RootLayout |
frontend | healthy | src/app/layout.tsx |
LoginPage |
frontend | healthy | src/app/login/page.tsx |
KioskExitModal |
frontend | healthy | src/app/kiosk/KioskExitModal.tsx |
QRScannerView |
frontend | healthy | src/app/kiosk/QRScannerView.tsx |
WaiverScreen |
frontend | healthy | src/app/kiosk/WaiverScreen.tsx |
KioskPage |
frontend | healthy | src/app/kiosk/page.tsx |
KioskSignup |
frontend | healthy | src/app/kiosk/new/KioskSignup.tsx |
AdminSidebar |
frontend | healthy | src/app/admin/AdminSidebar.tsx |
FullscreenGate |
frontend | healthy | src/app/admin/FullscreenGate.tsx |
SettingsPage |
frontend | healthy | src/app/admin/settings/page.tsx |
WeekCalendar |
frontend | healthy | src/app/admin/schedule/WeekCalendar.tsx |
ClassForm |
frontend | healthy | src/app/admin/schedule/ClassForm.tsx |
RosterClient |
frontend | healthy | src/app/admin/schedule/[id]/roster/RosterClient.tsx |
EditSeriesForm |
frontend | healthy | src/app/admin/schedule/[id]/edit-series/EditSeriesForm.tsx |
NewUserPage |
frontend | healthy | src/app/admin/users/new/page.tsx |
EditUserPage |
frontend | healthy | src/app/admin/users/[id]/page.tsx |
NotificationComposer |
frontend | healthy | src/app/admin/notifications/NotificationComposer.tsx |
EmbedSnippetCard |
frontend | healthy | src/app/admin/leads/EmbedSnippetCard.tsx |
CreatePortalAccount |
frontend | healthy | src/app/admin/families/CreatePortalAccount.tsx |
FamilyDiscountActions |
frontend | healthy | src/app/admin/families/FamilyDiscountActions.tsx |
WorkflowManager |
frontend | healthy | src/app/admin/marketing/WorkflowManager.tsx |
ComposeMessage |
frontend | healthy | src/app/admin/marketing/messages/ComposeMessage.tsx |
POSTerminal |
frontend | healthy | src/app/admin/pos/POSTerminal.tsx |
ItemsManager |
frontend | healthy | src/app/admin/pos/items/ItemsManager.tsx |
BeltRequirementsEditor |
frontend | healthy | src/app/admin/belts/BeltRequirementsEditor.tsx |
MemberFilters |
frontend | healthy | src/app/admin/members/MemberFilters.tsx |
NewMemberPage |
frontend | healthy | src/app/admin/members/new/page.tsx |
AttendanceManager |
frontend | healthy | src/app/admin/members/[id]/AttendanceManager.tsx |
DeleteMemberButton |
frontend | healthy | src/app/admin/members/[id]/DeleteMemberButton.tsx |
WaiverToggle |
frontend | healthy | src/app/admin/members/[id]/WaiverToggle.tsx |
FamilyManager |
frontend | healthy | src/app/admin/members/[id]/FamilyManager.tsx |
BeltStripesEditor |
frontend | healthy | src/app/admin/members/[id]/BeltStripesEditor.tsx |
MemberQRCode |
frontend | healthy | src/app/admin/members/[id]/MemberQRCode.tsx |
CreateMemberAccount |
frontend | healthy | src/app/admin/members/[id]/CreateMemberAccount.tsx |
ProgressionSection |
frontend | healthy | src/app/admin/members/[id]/ProgressionSection.tsx |
EditMemberForm |
frontend | healthy | src/app/admin/members/[id]/edit/EditMemberForm.tsx |
StepRegion |
frontend | healthy | src/app/admin/setup/StepRegion.tsx |
StepTaxAndPOS |
frontend | healthy | src/app/admin/setup/StepTaxAndPOS.tsx |
WizardShell |
frontend | healthy | src/app/admin/setup/WizardShell.tsx |
StepWaiver |
frontend | healthy | src/app/admin/setup/StepWaiver.tsx |
StepDone |
frontend | healthy | src/app/admin/setup/StepDone.tsx |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
/page.tsx |
frontend | healthy | src/app/page.tsx |
/login |
frontend | healthy | src/app/login/page.tsx |
/kiosk |
frontend | healthy | src/app/kiosk/page.tsx |
/kiosk/new |
frontend | healthy | src/app/kiosk/new/page.tsx |
/dashboard |
frontend | healthy | src/app/dashboard/page.tsx |
/admin |
frontend | healthy | src/app/admin/page.tsx |
/admin/settings |
frontend | healthy | src/app/admin/settings/page.tsx |
/admin/schedule |
frontend | healthy | src/app/admin/schedule/page.tsx |
/admin/schedule/new |
frontend | healthy | src/app/admin/schedule/new/page.tsx |
/admin/schedule/[id]/roster |
frontend | healthy | src/app/admin/schedule/[id]/roster/page.tsx |
/admin/schedule/[id]/edit |
frontend | healthy | src/app/admin/schedule/[id]/edit/page.tsx |
/admin/schedule/[id]/edit-series |
frontend | healthy | src/app/admin/schedule/[id]/edit-series/page.tsx |
/admin/users |
frontend | healthy | src/app/admin/users/page.tsx |
/admin/users/new |
frontend | healthy | src/app/admin/users/new/page.tsx |
/admin/users/[id] |
frontend | healthy | src/app/admin/users/[id]/page.tsx |
/admin/notifications |
frontend | healthy | src/app/admin/notifications/page.tsx |
/admin/leads |
frontend | healthy | src/app/admin/leads/page.tsx |
/admin/families |
frontend | healthy | src/app/admin/families/page.tsx |
/admin/marketing |
frontend | healthy | src/app/admin/marketing/page.tsx |
/admin/marketing/messages |
frontend | healthy | src/app/admin/marketing/messages/page.tsx |
/admin/pos |
frontend | healthy | src/app/admin/pos/page.tsx |
/admin/pos/sales |
frontend | healthy | src/app/admin/pos/sales/page.tsx |
/admin/pos/items |
frontend | healthy | src/app/admin/pos/items/page.tsx |
/admin/belts |
frontend | healthy | src/app/admin/belts/page.tsx |
/admin/reports |
frontend | healthy | src/app/admin/reports/page.tsx |
/admin/members |
frontend | healthy | src/app/admin/members/page.tsx |
/admin/members/new |
frontend | healthy | src/app/admin/members/new/page.tsx |
/admin/members/[id] |
frontend | healthy | src/app/admin/members/[id]/page.tsx |
/admin/members/[id]/edit |
frontend | healthy | src/app/admin/members/[id]/edit/page.tsx |
/admin/members/at-risk |
frontend | healthy | src/app/admin/members/at-risk/page.tsx |
/admin/setup |
frontend | healthy | src/app/admin/setup/page.tsx |
/admin/setup/schedule |
frontend | healthy | src/app/admin/setup/schedule/page.tsx |
/admin/setup/users |
frontend | healthy | src/app/admin/setup/users/page.tsx |
/admin/setup/kiosk |
frontend | healthy | src/app/admin/setup/kiosk/page.tsx |
/admin/setup/families |
frontend | healthy | src/app/admin/setup/families/page.tsx |
/admin/setup/marketing |
frontend | healthy | src/app/admin/setup/marketing/page.tsx |
/admin/setup/pos |
frontend | healthy | src/app/admin/setup/pos/page.tsx |
/admin/setup/belts |
frontend | healthy | src/app/admin/setup/belts/page.tsx |
/admin/setup/reports |
frontend | healthy | src/app/admin/setup/reports/page.tsx |
/admin/setup/members |
frontend | healthy | src/app/admin/setup/members/page.tsx |
/admin/setup/curriculum |
frontend | healthy | src/app/admin/setup/curriculum/page.tsx |
/admin/setup/plans |
frontend | healthy | src/app/admin/setup/plans/page.tsx |
/admin/setup/features |
frontend | healthy | src/app/admin/setup/features/page.tsx |
/admin/curriculum |
frontend | healthy | src/app/admin/curriculum/page.tsx |
/admin/curriculum/[id] |
frontend | healthy | src/app/admin/curriculum/[id]/page.tsx |
/admin/plans |
frontend | healthy | src/app/admin/plans/page.tsx |
/admin/plans/new |
frontend | healthy | src/app/admin/plans/new/page.tsx |
/admin/plans/[id]/edit |
frontend | healthy | src/app/admin/plans/[id]/edit/page.tsx |
/enroll |
frontend | healthy | src/app/enroll/page.tsx |
/member |
frontend | healthy | src/app/member/page.tsx |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
for |
software | healthy | prisma/seed.ts:for |
drop |
software | healthy | prisma/seed.ts:drop |
start |
software | healthy | src/app/api/admin/classes/route.ts:start |
end |
software | healthy | src/app/api/admin/classes/route.ts:end |
in |
software | healthy | src/app/api/admin/classes/[id]/route.ts:in |
has |
software | healthy | src/app/api/member/bookings/route.test.ts:has |
is |
software | healthy | src/app/api/member/bookings/route.test.ts:is |
they |
software | healthy | src/app/api/checkin/route.ts:they |
has |
software | healthy | src/app/api/checkin/route.test.ts:has |
is |
software | healthy | src/app/api/checkin/route.test.ts:is |
is |
software | healthy | src/app/admin/schedule/WeekCalendar.tsx:is |
only |
software | healthy | src/app/admin/schedule/WeekCalendar.tsx:only |
is |
software | healthy | src/app/admin/notifications/NotificationComposer.tsx:is |
is |
software | healthy | src/app/member/schedule/page.tsx:is |
only |
software | healthy | src/app/member/schedule/page.tsx:only |
changes |
software | healthy | src/app/member/profile/ProfileClient.tsx:changes |
threshold |
software | healthy | src/lib/marketing-triggers.test.ts:threshold |
is |
software | healthy | src/lib/waitlist.test.ts:is |
StripeProvider |
software | healthy | src/lib/payments/stripe-provider.ts:StripeProvider |
SquareProvider |
software | healthy | src/lib/payments/square-provider.ts:SquareProvider |
CardDeclinedError |
software | healthy | src/lib/payments/types.ts:CardDeclinedError |
NoCardOnFileError |
software | healthy | src/lib/payments/types.ts:NoCardOnFileError |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::src/app/login/page.tsx |
security | healthy | src/app/login/page.tsx |
auth::src/app/change-password/ChangePasswordForm.tsx |
security | healthy | src/app/change-password/ChangePasswordForm.tsx |
auth::src/middleware.ts |
security | healthy | src/middleware.ts |
auth::src/auth.ts |
security | healthy | src/auth.ts |
auth::package.json |
security | healthy | package.json |
auth::src/components/LogoutButton.tsx |
security | healthy | src/components/LogoutButton.tsx |
auth::src/auth.config.ts |
security | healthy | src/auth.config.ts |
auth::src/lib/require-auth.ts |
security | healthy | src/lib/require-auth.ts |
auth::src/types/next-auth.d.ts |
security | healthy | src/types/next-auth.d.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
password_literal::src/app/kiosk/new/KioskSignup.tsx |
security | healthy | src/app/kiosk/new/KioskSignup.tsx |
password_literal::src/app/kiosk/new/KioskSignup.tsx |
security | healthy | src/app/kiosk/new/KioskSignup.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-y5372ymi |
software | healthy | /tmp/repobility-clone-y5372ymi |
| Label | Layer | Status | Path |
|---|---|---|---|
postgresql |
data | healthy | .env.example |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::ci |
cicd | healthy | .github/workflows/ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
test |
cicd | healthy | .github/workflows/ci.yml |
This page is publicly accessible at:
https://repobility.com/scan/bc0c79ca-416e-4eb3-9f97-eecc2a1b9333/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/bc0c79ca-416e-4eb3-9f97-eecc2a1b9333/
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.