Backend (FastAPI + SQLAlchemy + SQLite): - JWT auth with access/refresh tokens, bcrypt password hashing - User model with member/organizer/admin roles, auto-approve members - Championship, Registration, ParticipantList, Notification models - Alembic async migrations, seed data with test users - Registration endpoint returns tokens for members, pending for organizers - /registrations/my returns championship title/date/location via eager loading - Admin endpoints: list users, approve/reject organizers Mobile (React Native + Expo + TypeScript): - Zustand auth store, Axios client with token refresh interceptor - Role-based registration (Member vs Organizer) with contextual form labels - Tab navigation with Ionicons, safe area headers, admin tab for admin role - Championships list with status badges, detail screen with registration progress - My Registrations with championship title, progress bar, and tap-to-navigate - Admin panel with pending/all filter, approve/reject with confirmation - Profile screen with role badge, Ionicons info rows, sign out - Password visibility toggle (Ionicons), keyboard flow hints (returnKeyType) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
35 lines
898 B
JSON
35 lines
898 B
JSON
{
|
|
"name": "mobile",
|
|
"version": "1.0.0",
|
|
"main": "index.ts",
|
|
"scripts": {
|
|
"start": "expo start",
|
|
"android": "expo start --android",
|
|
"ios": "expo start --ios",
|
|
"web": "expo start --web"
|
|
},
|
|
"dependencies": {
|
|
"@hookform/resolvers": "^5.2.2",
|
|
"@react-navigation/bottom-tabs": "^7.14.0",
|
|
"@react-navigation/native": "^7.1.28",
|
|
"@react-navigation/native-stack": "^7.13.0",
|
|
"@tanstack/react-query": "^5.90.21",
|
|
"axios": "^1.13.5",
|
|
"expo": "~54.0.33",
|
|
"expo-secure-store": "^15.0.8",
|
|
"expo-status-bar": "~3.0.9",
|
|
"react": "19.1.0",
|
|
"react-hook-form": "^7.71.2",
|
|
"react-native": "0.81.5",
|
|
"react-native-safe-area-context": "^5.7.0",
|
|
"react-native-screens": "4.16.0",
|
|
"zod": "^4.3.6",
|
|
"zustand": "^5.0.11"
|
|
},
|
|
"devDependencies": {
|
|
"@types/react": "~19.1.0",
|
|
"typescript": "~5.9.2"
|
|
},
|
|
"private": true
|
|
}
|