Project Structure
Project Structure
SaaniCare is organized as a monorepo managed with pnpm workspaces and Turborepo.
Directory Structure
saanicare-monorepo/
├── apps/
│ ├── Core Portals
│ │ ├── parent-web/ # Next.js 16 (Desktop web for parents)
│ │ ├── parent-mobile/ # React Native + Expo (iOS/Android)
│ │ ├── teacher-web/ # Next.js 16 (Desktop)
│ │ ├── teacher-mobile/ # React Native + Expo (iPad)
│ │ ├── admin-web/ # Next.js 16 (Desktop/iPad)
│ │ ├── child-web/ # Next.js 16 (Child-friendly interface)
│ │ ├── school-district-web/# Next.js 16 (District management)
│ │ └── superadmin-web/ # Next.js 16 (Platform administration)
│ │
│ ├── Financial & Administrative
│ │ ├── accountant-web/ # Next.js 16 (Financial management)
│ │ └── registrar-web/ # Next.js 16 (Enrollment management)
│ │
│ ├── Health & Support
│ │ ├── health-counselor-web/ # Next.js 16 (Nurse & Counselor)
│ │ └── childcare-specialist-web/ # Next.js 16 (Development consultations)
│ │
│ ├── Operational
│ │ ├── transportation-web/ # Next.js 16 (Transportation management)
│ │ ├── librarian-web/ # Next.js 16 (Library management)
│ │ ├── receptionist-web/ # Next.js 16 (Front desk operations)
│ │ ├── cafeteria-web/ # Next.js 16 (Meal planning)
│ │ ├── it-coordinator-web/ # Next.js 16 (IT management)
│ │ └── facilities-web/ # Next.js 16 (Facility management)
│ │
│ ├── Mobile Apps
│ │ ├── driver-mobile/ # React Native (Bus driver app)
│ │ └── security-mobile/ # React Native (Security guard app)
│ │
│ ├── Other
│ │ ├── frontpage-web/ # Next.js 16 (Marketing site)
│ │ ├── docs-web/ # docmd (Documentation site)
│ │ └── api/ # Node.js + Express + Prisma
│ │
├── packages/
│ ├── ui-mobile/ # Shared React Native components
│ ├── ui-web/ # Shared React web components
│ ├── api-client/ # API client & React Query hooks
│ ├── types/ # Shared TypeScript types
│ ├── utils/ # Shared utilities
│ ├── config/ # Shared configs (ESLint, TS, Prettier)
│ └── algorithms/ # AI/LLM algorithms & curriculum logic
└── docs/ # Documentation
Apps
Core Portals (Web)
- parent-web: Desktop web application for parents
- teacher-web: Desktop web application for teachers
- admin-web: Administrative portal for school management
- child-web: Child-friendly interface for students
- school-district-web: District-wide management portal
- superadmin-web: Platform-wide administration portal
Financial & Administrative Portals
- accountant-web: Financial management, billing, and accounting
- registrar-web: Student enrollment and academic records management
Health & Support Portals
- health-counselor-web: Combined portal for nurses and counselors
- childcare-specialist-web: Child development consultation management
Operational Portals
- transportation-web: School transportation and route management
- librarian-web: Library resource and reading program management
- receptionist-web: Front desk operations and visitor management
- cafeteria-web: Meal planning and cafeteria operations
- it-coordinator-web: Technology infrastructure and user support
- facilities-web: Building and facility maintenance management
Mobile Applications
- parent-mobile: React Native app for iOS/Android (parents)
- teacher-mobile: React Native app for iPad (teachers)
- driver-mobile: React Native app for bus drivers
- security-mobile: React Native app for security guards
Other Applications
- frontpage-web: Marketing and landing pages
- docs-web: Documentation website (this site, built with docmd)
- api: Node.js API server with Express and Prisma
Packages
UI Components
- ui-web: Shared React components for web apps
- ui-mobile: Shared React Native components for mobile apps
Utilities
- api-client: TypeScript API client with React Query hooks
- types: Shared TypeScript type definitions
- utils: Shared utility functions
- config: Shared configuration files (ESLint, TypeScript, Prettier)
Business Logic
- algorithms: AI/LLM algorithms for curriculum generation
Monorepo Benefits
- Code Sharing: Shared components and utilities across all apps
- Type Safety: Shared TypeScript types ensure consistency
- Single Source of Truth: One place for shared logic and components
- Efficient Builds: Turborepo caches and parallelizes builds
- Consistent Tooling: Same linting, formatting, and build tools everywhere