https://github.com/khovan123/philo-mind
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.
https://github.com/khovan123/philo-mind
expressjs monorepo nativewind prisma react-native tailwindcss
Last synced: about 2 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/khovan123/philo-mind
- Owner: khovan123
- Created: 2026-05-26T08:47:40.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-26T09:14:23.000Z (about 2 months ago)
- Last Synced: 2026-05-26T11:16:52.656Z (about 2 months ago)
- Topics: expressjs, monorepo, nativewind, prisma, react-native, tailwindcss
- Language: TypeScript
- Homepage:
- Size: 1.36 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# PhiloMind
Monorepo project powered by **Express.js** (backend) and **React Native / Expo** (frontend).
## Tech Stack
| Layer | Technology |
| -------- | ------------------------------------------------- |
| Frontend | Expo SDK 56, React Native 0.85, React 19 |
| Styling | TailwindCSS v4 + NativeWind v5 + react-native-css |
| Backend | Express.js 5, TypeScript 5 |
| Monorepo | npm workspaces |
| Shared | @philo-mind/shared (types, constants, utilities) |
## Design
🎨 **UI/UX Design:** [Stitch Project](https://stitch.withgoogle.com/projects/16360193101983963529)
## Project Structure
```
philo-mind/
├── apps/
│ ├── backend/ # Express.js API server
│ │ ├── src/
│ │ │ ├── config/ # App configuration
│ │ │ ├── controllers/ # Route controllers
│ │ │ ├── middleware/ # Express middleware
│ │ │ ├── models/ # Data models
│ │ │ ├── routes/ # Route definitions
│ │ │ ├── services/ # Business logic
│ │ │ ├── types/ # TypeScript types
│ │ │ ├── utils/ # Utility functions
│ │ │ ├── validators/ # Input validation
│ │ │ ├── __tests__/ # Tests
│ │ │ └── index.ts # Entry point
│ │ ├── .env.example
│ │ ├── package.json
│ │ └── tsconfig.json
│ │
│ └── frontend/ # React Native (Expo) app
│ ├── src/
│ │ ├── app/ # Expo Router pages
│ │ ├── components/ # Reusable UI components
│ │ ├── constants/ # App constants
│ │ ├── features/ # Feature modules
│ │ ├── hooks/ # Custom React hooks
│ │ ├── lib/ # Utilities (cn, etc.)
│ │ ├── navigation/ # Navigation config
│ │ ├── services/ # API services
│ │ ├── stores/ # State management
│ │ ├── tw/ # TailwindCSS components
│ │ ├── types/ # TypeScript types
│ │ ├── utils/ # Utility functions
│ │ ├── assets/ # App assets
│ │ ├── __tests__/ # Tests
│ │ └── global.css # TailwindCSS global styles
│ ├── assets/ # Static assets (icons, images)
│ ├── metro.config.js # Metro + NativeWind config
│ ├── postcss.config.mjs # PostCSS for TailwindCSS v4
│ ├── nativewind-env.d.ts # NativeWind type declarations
│ ├── .env.example
│ ├── package.json
│ └── tsconfig.json
│
├── packages/
│ └── shared/ # Shared types & utilities
│ ├── src/
│ │ ├── types/
│ │ ├── constants/
│ │ ├── utils/
│ │ └── index.ts
│ ├── package.json
│ └── tsconfig.json
│
├── .gitignore
├── package.json # Root monorepo config
└── README.md
```
## Getting Started
### Prerequisites
- Node.js >= 20
- npm >= 10
### Installation
```bash
# Install all dependencies from root
npm install
```
### Development
```bash
# Start backend (Express.js)
npm run backend:dev
# Start frontend (Expo)
npm run frontend:dev
# Start for specific platform
npm run frontend:ios
npm run frontend:android
npm run frontend:web
# Build shared package
npm run shared:build
```
### Using TailwindCSS in Frontend
Import CSS-wrapped components from `@/tw`:
```tsx
import { View, Text, ScrollView } from "@/tw";
import { Image } from "@/tw/image";
import { cn } from "@/lib/utils";
export default function MyScreen() {
return (
Hello TailwindCSS!
);
}
```
## Scripts Reference
| Script | Description |
| -------------------------- | ----------------------------- |
| `npm run backend:dev` | Start backend with hot reload |
| `npm run backend:build` | Build backend TypeScript |
| `npm run frontend:dev` | Start Expo dev server |
| `npm run frontend:ios` | Start on iOS simulator |
| `npm run frontend:android` | Start on Android emulator |
| `npm run frontend:web` | Start web version |
| `npm run shared:build` | Build shared package |
| `npm run clean` | Remove all node_modules |
## API Deployment
The production API image uses a multi-stage Docker build and is configured for
Fly.io. See [Fly.io API Deployment](docs/fly-deployment.md) for secret injection,
deployment, migration, and health-check commands.
See [EAS Build and OTA Updates](docs/eas-build.md) for signed iOS and Android
preview/production builds and OTA release channels.