https://github.com/sqrDAO/danang-hub-app
· scanned 2026-06-16 00:20 UTC (2 months, 2 weeks ago)
25 raw signals (0 security + 25 graph)
Last scanned 2 months, 2 weeks ago · v1 · 20 actionable findings from 1 signal source. 5 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 523 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 |
|---|---|---|---|
toHCMDate |
software | healthy | functions/migrate-bookings-hours.js:toHCMDate |
get |
software | healthy | functions/migrate-bookings-hours.js:get |
buildHCMTimestamp |
software | healthy | functions/migrate-bookings-hours.js:buildHCMTimestamp |
run |
software | healthy | functions/migrate-bookings-hours.js:run |
getTransporter |
software | healthy | functions/index.js:getTransporter |
getMinutesSinceMidnight |
software | healthy | functions/index.js:getMinutesSinceMidnight |
isWeekday |
software | healthy | functions/index.js:isWeekday |
getDayNumber |
software | healthy | functions/index.js:getDayNumber |
isOnAvailableDay |
software | healthy | functions/index.js:isOnAvailableDay |
isWithinAmenityHours |
software | healthy | functions/index.js:isWithinAmenityHours |
fmt |
software | healthy | functions/index.js:fmt |
isWithinBusinessHours |
software | healthy | functions/index.js:isWithinBusinessHours |
getStartOfTodayHubTimezone |
software | healthy | functions/index.js:getStartOfTodayHubTimezone |
prefs |
software | healthy | functions/index.js:prefs |
currentAttendees |
software | healthy | functions/index.js:currentAttendees |
beforeAttendees |
software | healthy | functions/index.js:beforeAttendees |
afterAttendees |
software | healthy | functions/index.js:afterAttendees |
RouteFallback |
software | healthy | src/App.jsx:RouteFallback |
App |
software | healthy | src/App.jsx:App |
getInitialLanguage |
software | healthy | src/i18n/index.js:getInitialLanguage |
applyDocumentLanguage |
software | healthy | src/i18n/index.js:applyDocumentLanguage |
parseHubDateTime |
software | healthy | src/utils/timezone.js:parseHubDateTime |
formatEventDateTime |
software | healthy | src/utils/timezone.js:formatEventDateTime |
formatDateDDMMYYYY |
software | healthy | src/utils/timezone.js:formatDateDDMMYYYY |
formatEventDate |
software | healthy | src/utils/timezone.js:formatEventDate |
formatEventTime |
software | healthy | src/utils/timezone.js:formatEventTime |
toDatetimeLocalHub |
software | healthy | src/utils/timezone.js:toDatetimeLocalHub |
get |
software | healthy | src/utils/timezone.js:get |
Avatar |
software | healthy | src/components/Avatar.jsx:Avatar |
getInitials |
software | healthy | src/components/Avatar.jsx:getInitials |
getColorFromName |
software | healthy | src/components/Avatar.jsx:getColorFromName |
UnifiedCalendar |
software | healthy | src/components/UnifiedCalendar.jsx:UnifiedCalendar |
handlePrevMonth |
software | healthy | src/components/UnifiedCalendar.jsx:handlePrevMonth |
handleNextMonth |
software | healthy | src/components/UnifiedCalendar.jsx:handleNextMonth |
handleToday |
software | healthy | src/components/UnifiedCalendar.jsx:handleToday |
CalendarSkeleton |
software | healthy | src/components/LoadingSkeleton.jsx:CalendarSkeleton |
CardSkeleton |
software | healthy | src/components/LoadingSkeleton.jsx:CardSkeleton |
Header |
software | healthy | src/components/Header.jsx:Header |
toggleLanguage |
software | healthy | src/components/Header.jsx:toggleLanguage |
handleLogout |
software | healthy | src/components/Header.jsx:handleLogout |
toggleMobileMenu |
software | healthy | src/components/Header.jsx:toggleMobileMenu |
closeMobileMenu |
software | healthy | src/components/Header.jsx:closeMobileMenu |
handleClickOutside |
software | healthy | src/components/Header.jsx:handleClickOutside |
checkActiveSection |
software | healthy | src/components/Header.jsx:checkActiveSection |
observerCallback |
software | healthy | src/components/Header.jsx:observerCallback |
isActive |
software | healthy | src/components/Header.jsx:isActive |
isSectionActive |
software | healthy | src/components/Header.jsx:isSectionActive |
NavLink |
software | healthy | src/components/Header.jsx:NavLink |
Modal |
software | healthy | src/components/Modal.jsx:Modal |
Footer |
software | healthy | src/components/Footer.jsx:Footer |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
vite.config.js |
software | healthy | vite.config.js |
README.md |
software | healthy | README.md |
CLAUDE.md |
software | healthy | CLAUDE.md |
.eslintrc.cjs |
software | healthy | .eslintrc.cjs |
package.json |
software | healthy | package.json |
index.html |
software | healthy | index.html |
firebase.json |
software | healthy | firebase.json |
package-lock.json |
software | healthy | package-lock.json |
firestore.indexes.json |
software | healthy | firestore.indexes.json |
.env.example |
software | healthy | .env.example |
.eslintrc.js |
software | healthy | functions/.eslintrc.js |
package.json |
software | healthy | functions/package.json |
.env.danang-hub-app |
software | healthy | functions/.env.danang-hub-app |
package-lock.json |
software | healthy | functions/package-lock.json |
migrate-bookings-hours.js |
software | healthy | functions/migrate-bookings-hours.js |
index.js |
software | healthy | functions/index.js |
product-vision.md |
software | healthy | docs/product-vision.md |
todo.lint-ratchet.md |
software | healthy | docs/backlog/todo.lint-ratchet.md |
done.admin-mobile-fixes.md |
software | healthy | docs/backlog/done.admin-mobile-fixes.md |
todo.mobile-gallery-fixes.md |
software | healthy | docs/backlog/todo.mobile-gallery-fixes.md |
architecture.md |
software | healthy | docs/knowledge/architecture.md |
README.md |
software | healthy | docs/knowledge/README.md |
data-flow.md |
software | healthy | docs/knowledge/data-flow.md |
firebase-hosting-merge.yml |
software | healthy | .github/workflows/firebase-hosting-merge.yml |
firebase-hosting-pull-request.yml |
software | healthy | .github/workflows/firebase-hosting-pull-request.yml |
App.jsx |
software | healthy | src/App.jsx |
main.jsx |
software | healthy | src/main.jsx |
index.js |
software | healthy | src/i18n/index.js |
timezone.js |
software | healthy | src/utils/timezone.js |
BottomNav.css |
software | healthy | src/components/BottomNav.css |
Avatar.jsx |
software | healthy | src/components/Avatar.jsx |
UnifiedCalendar.jsx |
software | healthy | src/components/UnifiedCalendar.jsx |
LoadingSkeleton.jsx |
software | healthy | src/components/LoadingSkeleton.jsx |
Header.jsx |
software | healthy | src/components/Header.jsx |
LoadingSkeleton.css |
software | healthy | src/components/LoadingSkeleton.css |
Modal.jsx |
software | healthy | src/components/Modal.jsx |
Avatar.css |
software | healthy | src/components/Avatar.css |
Footer.jsx |
software | healthy | src/components/Footer.jsx |
BookingCalendar.jsx |
software | healthy | src/components/BookingCalendar.jsx |
Footer.css |
software | healthy | src/components/Footer.css |
Toast.jsx |
software | healthy | src/components/Toast.jsx |
Modal.css |
software | healthy | src/components/Modal.css |
ProtectedRoute.jsx |
software | healthy | src/components/ProtectedRoute.jsx |
AuthPrompt.jsx |
software | healthy | src/components/AuthPrompt.jsx |
Toast.css |
software | healthy | src/components/Toast.css |
UnifiedCalendar.css |
software | healthy | src/components/UnifiedCalendar.css |
AmenityPhotoLightbox.jsx |
software | healthy | src/components/AmenityPhotoLightbox.jsx |
Layout.css |
software | healthy | src/components/Layout.css |
BookingCalendar.css |
software | healthy | src/components/BookingCalendar.css |
Header.css |
software | healthy | src/components/Header.css |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
App |
frontend | healthy | src/App.jsx |
Avatar |
frontend | healthy | src/components/Avatar.jsx |
UnifiedCalendar |
frontend | healthy | src/components/UnifiedCalendar.jsx |
CalendarSkeleton |
frontend | healthy | src/components/LoadingSkeleton.jsx |
Header |
frontend | healthy | src/components/Header.jsx |
Modal |
frontend | healthy | src/components/Modal.jsx |
Footer |
frontend | healthy | src/components/Footer.jsx |
BookingCalendar |
frontend | healthy | src/components/BookingCalendar.jsx |
ToastContainer |
frontend | healthy | src/components/Toast.jsx |
ProtectedRoute |
frontend | healthy | src/components/ProtectedRoute.jsx |
AuthPrompt |
frontend | healthy | src/components/AuthPrompt.jsx |
AmenityPhotoLightbox |
frontend | healthy | src/components/AmenityPhotoLightbox.jsx |
Layout |
frontend | healthy | src/components/Layout.jsx |
BottomNav |
frontend | healthy | src/components/BottomNav.jsx |
Amenities |
frontend | healthy | src/pages/Amenities.jsx |
Events |
frontend | healthy | src/pages/Events.jsx |
Home |
frontend | healthy | src/pages/Home.jsx |
Login |
frontend | healthy | src/pages/auth/Login.jsx |
AdminBookings |
frontend | healthy | src/pages/admin/Bookings.jsx |
AdminAmenities |
frontend | healthy | src/pages/admin/Amenities.jsx |
AdminEvents |
frontend | healthy | src/pages/admin/Events.jsx |
AdminDashboard |
frontend | healthy | src/pages/admin/Dashboard.jsx |
AdminMembers |
frontend | healthy | src/pages/admin/Members.jsx |
MemberBookings |
frontend | healthy | src/pages/member/Bookings.jsx |
MemberEvents |
frontend | healthy | src/pages/member/Events.jsx |
MemberProfile |
frontend | healthy | src/pages/member/Profile.jsx |
MemberDashboard |
frontend | healthy | src/pages/member/Dashboard.jsx |
| Label | Layer | Status | Path |
|---|---|---|---|
/Amenities |
frontend | healthy | src/pages/Amenities.jsx |
/Events |
frontend | healthy | src/pages/Events.jsx |
/Home |
frontend | healthy | src/pages/Home.jsx |
/auth/Login |
frontend | healthy | src/pages/auth/Login.jsx |
/admin/Bookings |
frontend | healthy | src/pages/admin/Bookings.jsx |
/admin/Amenities |
frontend | healthy | src/pages/admin/Amenities.jsx |
/admin/Events |
frontend | healthy | src/pages/admin/Events.jsx |
/admin/Dashboard |
frontend | healthy | src/pages/admin/Dashboard.jsx |
/admin/Members |
frontend | healthy | src/pages/admin/Members.jsx |
/member/Bookings |
frontend | healthy | src/pages/member/Bookings.jsx |
/member/Events |
frontend | healthy | src/pages/member/Events.jsx |
/member/Profile |
frontend | healthy | src/pages/member/Profile.jsx |
/member/Dashboard |
frontend | healthy | src/pages/member/Dashboard.jsx |
/ |
frontend | healthy | src/App.jsx |
/login |
frontend | healthy | src/App.jsx |
/admin |
frontend | healthy | src/App.jsx |
/admin/members |
frontend | healthy | src/App.jsx |
/admin/amenities |
frontend | healthy | src/App.jsx |
/admin/bookings |
frontend | healthy | src/App.jsx |
/admin/events |
frontend | healthy | src/App.jsx |
/admin/profile |
frontend | healthy | src/App.jsx |
/member |
frontend | healthy | src/App.jsx |
/member/bookings |
frontend | healthy | src/App.jsx |
/member/events |
frontend | healthy | src/App.jsx |
/member/profile |
frontend | healthy | src/App.jsx |
* |
frontend | healthy | src/App.jsx |
| Label | Layer | Status | Path |
|---|---|---|---|
functions |
software | healthy | functions |
docs |
software | healthy | docs |
backlog |
software | healthy | docs/backlog |
knowledge |
software | healthy | docs/knowledge |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
i18n |
software | healthy | src/i18n |
utils |
software | healthy | src/utils |
components |
software | healthy | src/components |
contexts |
software | healthy | src/contexts |
locales |
software | healthy | src/locales |
pages |
software | healthy | src/pages |
auth |
software | healthy | src/pages/auth |
admin |
software | healthy | src/pages/admin |
member |
software | healthy | src/pages/member |
services |
software | healthy | src/services |
styles |
software | healthy | src/styles |
video |
software | healthy | video |
src |
software | healthy | video/src |
| Label | Layer | Status | Path |
|---|---|---|---|
VITE_FIREBASE_AUTH_DOMAIN |
cicd | healthy | — |
VITE_GEMINI_API_KEY |
cicd | healthy | — |
VITE_FIREBASE_PROJECT_ID |
cicd | healthy | — |
VITE_FIREBASE_APP_ID |
cicd | healthy | — |
GITHUB_TOKEN |
cicd | healthy | — |
VITE_FIREBASE_MESSAGING_SENDER_ID |
cicd | healthy | — |
VITE_FIREBASE_API_KEY |
cicd | healthy | — |
FIREBASE_SERVICE_ACCOUNT_DANANG_HUB_APP |
cicd | healthy | — |
VITE_FIREBASE_STORAGE_BUCKET |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
002.321.023.465 |
network | healthy | src/components/Footer.jsx |
016.093.036.306 |
network | healthy | src/components/Footer.jsx |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::README.md |
security | healthy | README.md |
auth::video/screens.json |
security | healthy | video/screens.json |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::firebase-hosting-merge |
cicd | healthy | .github/workflows/firebase-hosting-merge.yml |
gha::firebase-hosting-pull-request |
cicd | healthy | .github/workflows/firebase-hosting-pull-request.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
build_and_deploy |
cicd | healthy | .github/workflows/firebase-hosting-merge.yml |
build_and_preview |
cicd | healthy | .github/workflows/firebase-hosting-pull-request.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-i89sq2v0 |
software | healthy | /tmp/repobility-clone-i89sq2v0 |
| Label | Layer | Status | Path |
|---|---|---|---|
pubsub |
data | healthy | functions/index.js |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::gcp |
hardware | healthy | functions/package-lock.json |
| Label | Layer | Status | Path |
|---|---|---|---|
dotenv::functions/.env.danang-hub-app |
security | healthy | functions/.env.danang-hub-app |
This page is publicly accessible at:
https://repobility.com/scan/6cd1550c-e9df-4afc-846c-8d04d788b02b/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/6cd1550c-e9df-4afc-846c-8d04d788b02b/
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.