{"id":47664560,"url":"https://github.com/imdevan/pypo","last_synced_at":"2026-04-02T11:51:49.439Z","repository":{"id":310149268,"uuid":"1038887423","full_name":"imdevan/pypo","owner":"imdevan","description":"PyPo - Python + Expo","archived":false,"fork":false,"pushed_at":"2026-02-18T23:35:48.000Z","size":2670,"stargazers_count":0,"open_issues_count":17,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-19T04:59:48.167Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/imdevan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-08-16T02:39:16.000Z","updated_at":"2026-02-18T23:36:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"3706bf4d-2336-4238-aeef-6df1a7fdfe14","html_url":"https://github.com/imdevan/pypo","commit_stats":null,"previous_names":["imdevan/pypo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/imdevan/pypo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imdevan%2Fpypo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imdevan%2Fpypo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imdevan%2Fpypo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imdevan%2Fpypo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imdevan","download_url":"https://codeload.github.com/imdevan/pypo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imdevan%2Fpypo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31305828,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T09:48:21.550Z","status":"ssl_error","status_checked_at":"2026-04-02T09:48:19.196Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-04-02T11:51:47.710Z","updated_at":"2026-04-02T11:51:49.431Z","avatar_url":"https://github.com/imdevan.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PyPo\n\n🐍 Python + 🏃🏻‍♂️ Expo\n\ntl;dr:\nThis project started out as the official [FastAPI project template](https://github.com/fastapi/full-stack-fastapi-template) + [Infinite Red's ignite Expo boilerplate](https://github.com/infinitered/ignite/) plus my own choices for building a cross language React Native app.\n\n## What is in this project?\n\nBasically I took Fast API Template and replaced the included frontend with Infinite Red's expo boilerplate.\n\nI added the OpenAPI Typescript client such that all data (user data, and item data) are loaded via hook using the OpenAPI generated hooks. And the OpenAPI generated React Query client.\n\n# Pypo - Turborepo\n\nThis is a monorepo containing both the backend API and the Expo mobile application.\n\n## Structure\n\n```\npypo/\n├── app/\n│   ├── backend/     # FastAPI backend\n│   └── expo/        # Expo React Native app\n├── turbo.json       # Turborepo configuration\n└── package.json     # Root workspace configuration\n```\n\n## Prerequisites\n\n- Node.js \u003e= 20.0.0\n- Bun (package manager)\n- Python 3.10+\n- uv (Python package manager)\n\n## Getting Started\n\n1. Install dependencies:\n\n   ```bash\n   bun install\n   ```\n\n2. Install Python dependencies for the backend:\n\n   ```bash\n   cd app/backend\n   uv sync\n   ```\n\n3. Start development servers:\n\n   ```bash\n   # Start both backend and expo\n   bun run dev\n\n   # Or start individually\n   bun run dev --filter=backend\n   bun run dev --filter=expo\n   ```\n\n## Available Scripts\n\n### Root Level (Turborepo)\n\n- `bun run build` - Build all applications\n- `bun run dev` - Start development servers for all applications\n- `bun run test` - Run tests for all applications\n- `bun run lint` - Lint all applications\n- `bun run clean` - Clean all applications\n- `bun run format` - Format code with Prettier\n\n### Backend (`app/backend/`)\n\n- `bun run dev` - Start FastAPI development server\n- `bun run test` - Run pytest tests\n- `bun run lint` - Run ruff linter\n- `bun run format` - Format code with ruff\n\n### Expo (`app/expo/`)\n\n- `bun run dev` - Start Expo development server\n- `bun run android` - Run on Android\n- `bun run ios` - Run on iOS\n- `bun run web` - Run on web\n- `bun run test` - Run Jest tests\n- `bun run lint` - Run ESLint\n\n## Development\n\n### Backend Development\n\nThe backend is a FastAPI application located in `app/backend/`. It uses:\n\n- FastAPI for the web framework\n- SQLModel for ORM\n- Alembic for database migrations\n- Pytest for testing\n- Ruff for linting and formatting\n\n### Expo Development\n\nThe Expo app is located in `app/expo/` and includes:\n\n- React Native with Expo\n- TypeScript\n- React Navigation\n- TanStack Query for data fetching\n- Zustand for state management\n\n## Docker\n\nThe project includes Docker Compose configurations for easy deployment:\n\n```bash\n# Start all services\ndocker-compose up -d\n\n# Start with Traefik (production-like)\ndocker-compose -f docker-compose.traefik.yml up -d\n```\n\n## Contributing\n\n1. Make sure all tests pass: `bun run test`\n2. Ensure code is properly formatted: `bun run format`\n3. Check linting: `bun run lint`\n4. Commit your changes\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimdevan%2Fpypo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimdevan%2Fpypo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimdevan%2Fpypo/lists"}