A monorepo containing the Homiio frontend and backend applications.
homiio-monorepo/
├── packages/
│ ├── frontend/ # React Native/Expo frontend application
│ ├── backend/ # Node.js/Express backend API
│ └── shared-types/ # Shared TypeScript types
├── package.json # Root package.json with workspace configuration
└── README.md # This file
- Node.js >= 18.0.0
- npm >= 8.0.0
- Expo CLI (for frontend development)
- Clone the repository:
git clone <repository-url>
cd homiio-monorepo- Install all dependencies:
npm run install:allnpm run devFrontend (React Native/Expo):
npm run dev:frontend
# or
npm run start:frontendBackend (Node.js/Express):
npm run dev:backend
# or
npm run start:backendnpm run buildnpm run build:frontend
npm run build:backendRun tests for all packages:
npm run testRun linting for all packages:
npm run lintClean all build artifacts and node_modules:
npm run cleanThe monorepo is configured for deployment to Vercel with proper shared-types handling.
./scripts/deploy-frontend.sh./scripts/deploy-backend.shFor detailed deployment instructions, see VERCEL_DEPLOYMENT.md.
- React Native application built with Expo
- Uses TypeScript, Tailwind CSS, and NativeWind
- Includes mobile and web platforms
- Node.js/Express API server
- TypeScript backend with MongoDB
- Common TypeScript interfaces and types
When a user signs in or signs up with Oxy, the system automatically creates a personal profile for them if one doesn't already exist. This happens transparently in the background:
- Frontend: The
ProfileProvidercomponent automatically loads profiles when a user authenticates - Backend: The
getOrCreateActiveProfileendpoint automatically creates a default personal profile if none exists - Default Profile: Includes basic settings, trust score initialization, and privacy preferences
- Personal: Default profile type for individual users
- Agency: For property management agencies
- Business: For business entities
- Cooperative: For housing cooperatives
Each personal profile includes an automatic trust score calculation based on:
- Profile completion
- Verification status
- Rental history
- References
- Common TypeScript interfaces and types
- Shared between frontend and backend
- Ensures type consistency across the application
- Status: ✅ IMPLEMENTED - 50+ shared types covering Property, Profile, City, Lease, and Address domains
- Documentation: See SHARED_TYPES_IMPLEMENTATION.md for detailed information
The root package.json includes several workspace scripts for managing the monorepo:
dev: Start all packages in development modebuild: Build all packagestest: Run tests for all packageslint: Run linting for all packagesclean: Clean all build artifactsinstall:all: Install dependencies for all packages
- Adding new packages: Create a new directory in
packages/and add apackage.json - Shared dependencies: Add common dependencies to the root
package.json - Package-specific dependencies: Add to individual package
package.jsonfiles - Type sharing: Use the
shared-typespackage for common interfaces
Each package may have its own environment variables. Check the individual package READMEs for specific configuration requirements.
- Make changes in the appropriate package
- Test your changes locally
- Ensure all packages build successfully
- Submit a pull request
This project is private and proprietary.