{"id":50492434,"url":"https://github.com/khovan123/philo-mind","last_synced_at":"2026-06-02T04:01:17.756Z","repository":{"id":360417168,"uuid":"1250038799","full_name":"khovan123/philo-mind","owner":"khovan123","description":"PhiloMind is an interactive learning platform that helps young people learn philosophy, history and political economy through role-playing, debate, AI character chat and real-life social situations to develop critical thinking and the ability to see multi-dimensional problems.","archived":false,"fork":false,"pushed_at":"2026-05-26T09:14:23.000Z","size":1426,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-26T11:16:52.656Z","etag":null,"topics":["expressjs","monorepo","nativewind","prisma","react-native","tailwindcss"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/khovan123.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-26T08:47:40.000Z","updated_at":"2026-05-26T09:15:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/khovan123/philo-mind","commit_stats":null,"previous_names":["khovan123/philo-mind"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/khovan123/philo-mind","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khovan123%2Fphilo-mind","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khovan123%2Fphilo-mind/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khovan123%2Fphilo-mind/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khovan123%2Fphilo-mind/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/khovan123","download_url":"https://codeload.github.com/khovan123/philo-mind/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khovan123%2Fphilo-mind/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33805341,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-02T02:00:07.132Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["expressjs","monorepo","nativewind","prisma","react-native","tailwindcss"],"created_at":"2026-06-02T04:01:16.753Z","updated_at":"2026-06-02T04:01:17.741Z","avatar_url":"https://github.com/khovan123.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PhiloMind\n\nMonorepo project powered by **Express.js** (backend) and **React Native / Expo** (frontend).\n\n## Tech Stack\n\n| Layer    | Technology                                        |\n| -------- | ------------------------------------------------- |\n| Frontend | Expo SDK 56, React Native 0.85, React 19          |\n| Styling  | TailwindCSS v4 + NativeWind v5 + react-native-css |\n| Backend  | Express.js 5, TypeScript 5                        |\n| Monorepo | npm workspaces                                    |\n| Shared   | @philo-mind/shared (types, constants, utilities)  |\n\n## Design\n\n🎨 **UI/UX Design:** [Stitch Project](https://stitch.withgoogle.com/projects/16360193101983963529)\n\n## Project Structure\n\n```\nphilo-mind/\n├── apps/\n│   ├── backend/                 # Express.js API server\n│   │   ├── src/\n│   │   │   ├── config/          # App configuration\n│   │   │   ├── controllers/     # Route controllers\n│   │   │   ├── middleware/       # Express middleware\n│   │   │   ├── models/          # Data models\n│   │   │   ├── routes/          # Route definitions\n│   │   │   ├── services/        # Business logic\n│   │   │   ├── types/           # TypeScript types\n│   │   │   ├── utils/           # Utility functions\n│   │   │   ├── validators/      # Input validation\n│   │   │   ├── __tests__/       # Tests\n│   │   │   └── index.ts         # Entry point\n│   │   ├── .env.example\n│   │   ├── package.json\n│   │   └── tsconfig.json\n│   │\n│   └── frontend/                # React Native (Expo) app\n│       ├── src/\n│       │   ├── app/             # Expo Router pages\n│       │   ├── components/      # Reusable UI components\n│       │   ├── constants/       # App constants\n│       │   ├── features/        # Feature modules\n│       │   ├── hooks/           # Custom React hooks\n│       │   ├── lib/             # Utilities (cn, etc.)\n│       │   ├── navigation/      # Navigation config\n│       │   ├── services/        # API services\n│       │   ├── stores/          # State management\n│       │   ├── tw/              # TailwindCSS components\n│       │   ├── types/           # TypeScript types\n│       │   ├── utils/           # Utility functions\n│       │   ├── assets/          # App assets\n│       │   ├── __tests__/       # Tests\n│       │   └── global.css       # TailwindCSS global styles\n│       ├── assets/              # Static assets (icons, images)\n│       ├── metro.config.js      # Metro + NativeWind config\n│       ├── postcss.config.mjs   # PostCSS for TailwindCSS v4\n│       ├── nativewind-env.d.ts  # NativeWind type declarations\n│       ├── .env.example\n│       ├── package.json\n│       └── tsconfig.json\n│\n├── packages/\n│   └── shared/                  # Shared types \u0026 utilities\n│       ├── src/\n│       │   ├── types/\n│       │   ├── constants/\n│       │   ├── utils/\n│       │   └── index.ts\n│       ├── package.json\n│       └── tsconfig.json\n│\n├── .gitignore\n├── package.json                 # Root monorepo config\n└── README.md\n```\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js \u003e= 20\n- npm \u003e= 10\n\n### Installation\n\n```bash\n# Install all dependencies from root\nnpm install\n```\n\n### Development\n\n```bash\n# Start backend (Express.js)\nnpm run backend:dev\n\n# Start frontend (Expo)\nnpm run frontend:dev\n\n# Start for specific platform\nnpm run frontend:ios\nnpm run frontend:android\nnpm run frontend:web\n\n# Build shared package\nnpm run shared:build\n```\n\n### Using TailwindCSS in Frontend\n\nImport CSS-wrapped components from `@/tw`:\n\n```tsx\nimport { View, Text, ScrollView } from \"@/tw\";\nimport { Image } from \"@/tw/image\";\nimport { cn } from \"@/lib/utils\";\n\nexport default function MyScreen() {\n  return (\n    \u003cScrollView className=\"flex-1 bg-white\"\u003e\n      \u003cView className={cn(\"p-4 gap-4\", isSpecial \u0026\u0026 \"bg-primary\")}\u003e\n        \u003cText className=\"text-xl font-bold text-gray-900\"\u003eHello TailwindCSS!\u003c/Text\u003e\n      \u003c/View\u003e\n    \u003c/ScrollView\u003e\n  );\n}\n```\n\n## Scripts Reference\n\n| Script                     | Description                   |\n| -------------------------- | ----------------------------- |\n| `npm run backend:dev`      | Start backend with hot reload |\n| `npm run backend:build`    | Build backend TypeScript      |\n| `npm run frontend:dev`     | Start Expo dev server         |\n| `npm run frontend:ios`     | Start on iOS simulator        |\n| `npm run frontend:android` | Start on Android emulator     |\n| `npm run frontend:web`     | Start web version             |\n| `npm run shared:build`     | Build shared package          |\n| `npm run clean`            | Remove all node_modules       |\n\n## API Deployment\n\nThe production API image uses a multi-stage Docker build and is configured for\nFly.io. See [Fly.io API Deployment](docs/fly-deployment.md) for secret injection,\ndeployment, migration, and health-check commands.\n\nSee [EAS Build and OTA Updates](docs/eas-build.md) for signed iOS and Android\npreview/production builds and OTA release channels.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhovan123%2Fphilo-mind","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkhovan123%2Fphilo-mind","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhovan123%2Fphilo-mind/lists"}