Database Migrations:
- Alembic configuration and env.py
- Initial schema migration (001_initial_schema.py) with all 25 entities
- Support for all 7 MVPs + authentication + compliance
- Ready to run: alembic upgrade head
Authentication System:
- Registration/login endpoints with Argon2 password hashing
- JWT token generation and refresh token rotation
- Account lockout protection (5 failed attempts)
- Token refresh with automatic rotation
- Logout with token invalidation
- Audit logging for all auth events
- Pydantic schemas for validation
- Email-based account enumeration prevention
Frontend Scaffolding:
Web (Next.js 14):
- TypeScript configuration
- Next.js App Router setup
- Tailwind CSS configured
- API client setup (Axios + React Query)
- Zustand for state management
- Directory structure for all 7 MVPs
- Layout and navigation stubs
- Responsive design ready
Mobile (React Native/Expo):
- Expo 51+ configuration
- TypeScript setup
- Expo Router for navigation
- Tab-based navigation structure
- All 7 MVP screens scaffolded
- iOS and Android support
- Accessibility components ready
Project Status:
- Backend: 85% complete (foundation + auth + migrations)
- Web: 10% complete (scaffolding only)
- Mobile: 10% complete (scaffolding only)
- Tests: Not yet implemented
All code follows OpenSpec standards and design system guidelines.
Job ID: MTAD-IMPL-2025-11-18-CL
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
38 lines
1.1 KiB
JSON
38 lines
1.1 KiB
JSON
{
|
|
"name": "morethanadiagnosis-mobile",
|
|
"version": "0.1.0",
|
|
"description": "MoreThanADiagnosis - Mobile platform (React Native/Expo)",
|
|
"main": "expo-router/build/index.js",
|
|
"scripts": {
|
|
"start": "expo start",
|
|
"android": "expo start --android",
|
|
"ios": "expo start --ios",
|
|
"web": "expo start --web",
|
|
"build": "eas build",
|
|
"build:ios": "eas build --platform ios",
|
|
"build:android": "eas build --platform android",
|
|
"submit": "eas submit",
|
|
"lint": "eslint .",
|
|
"type-check": "tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"react": "^18.2.0",
|
|
"react-native": "^0.73.0",
|
|
"expo": "^51.0.0",
|
|
"expo-router": "^3.4.0",
|
|
"expo-constants": "~15.4.0",
|
|
"expo-linking": "~6.0.0",
|
|
"@tanstack/react-query": "^5.25.0",
|
|
"axios": "^1.6.0",
|
|
"zustand": "^4.4.0",
|
|
"typescript": "^5.3.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^20.10.0",
|
|
"@types/react": "^18.2.0",
|
|
"@typescript-eslint/eslint-plugin": "^6.13.0",
|
|
"@typescript-eslint/parser": "^6.13.0",
|
|
"eslint": "^8.54.0",
|
|
"prettier": "^3.1.0"
|
|
}
|
|
}
|