How jcdynamics/silk works
SILK is a school-staff ERP/CRM frontend: staff sign in, enter an authenticated tenant shell, then manage admissions inquiries or search student records. Admissions supports inquiry capture, activity-stage updates, and conversion; SIS supports directory search and sibling-group viewing. Data modules select mock or live access, with live requests delegated to SPIDER. The README identifies fees, timetable, examinations, and HR/payroll as future scope, not implemented capabilities. Some server actions and page wiring are unsampled; links are limited to documented or evidenced interactions.
Main entry points: proxy.ts Tenant and route proxy · inquiries.ts Inquiry data access · students.ts Student data access · page.tsx Inquiry page
Components 25
Access and shell
- Login screen
src/app/login/page.tsx - Login form
src/components/auth/login-form.tsx - Login action
src/app/login/actions.ts - Dev session
src/lib/auth/dev-session.ts - Tenant and route proxy
src/proxy.ts - Tenant resolver
src/lib/tenant/resolve-tenant.ts - Dashboard shell
src/app/(dashboard)/layout.tsx - Plan-aware navigation
src/components/layout/sidebar.tsx
Admissions CRM
- Inquiry page
src/app/(dashboard)/crm/inquiries/page.tsx - Inquiry board
src/components/crm/inquiry-board.tsx - Inquiry capture and conversion
src/components/crm/quick-entry-drawer.tsx - Inquiry actions
src/app/(dashboard)/crm/inquiries/actions.ts
Student records
- Student directory page
src/app/(dashboard)/students/page.tsx - Student directory
src/components/sis/student-directory-table.tsx - Sibling group view
src/components/sis/sibling-hub-drawer.tsx - Student actions
src/app/(dashboard)/students/actions.ts
Data integration
- Inquiry data access
src/lib/data/inquiries.ts - Student data access
src/lib/data/students.ts - Mock or live selector
src/lib/data/data-source.ts - Typed API client
src/lib/apiClient.ts
Shared services
- Tenant preferences
src/hooks/useTenantPreferences.tsx - Plan entitlements
src/hooks/usePlanEntitlement.ts
Other components
- School staff
- SPIDER backend
- Staff browser
Connections 27
- School staff → Login screen: opens
- Login screen → Login form: renders
- Login form → Login action: submits
- Login action → Dev session: checks and encodes
- Staff browser → Tenant and route proxy: requests routes
- Tenant and route proxy → Tenant resolver: resolves tenant
- Tenant and route proxy → Dev session: decodes cookie
- Tenant and route proxy → Dashboard shell: permits dashboard
- Dashboard shell → Plan-aware navigation: renders navigation
- Plan-aware navigation → Plan entitlements: checks plan
- School staff → Inquiry page: manages admissions
- Inquiry page → Inquiry data access: loads inquiries
- Inquiry page → Inquiry board: renders board
- Inquiry board → Inquiry capture and conversion: opens capture or conversion
- Inquiry board → Inquiry actions: logs activity
- Inquiry actions → Inquiry data access: updates inquiry
- School staff → Student directory page: opens directory
- Student directory page → Student data access: loads students
- Student directory page → Student directory: renders directory
- Student directory → Student actions: requests sibling group
- Student actions → Student data access: loads sibling group
- Student directory → Sibling group view: shows group
- Inquiry data access → Mock or live selector: selects source
- Student data access → Mock or live selector: selects source
- Inquiry data access → Typed API client: requests live data
- Student data access → Typed API client: requests live data
- Typed API client → SPIDER backend: sends REST requests