React Native (Expo) port of the SuperStudy web app. Students can find teachers, manage appointments, and use the AI Study Helper. Teachers can manage students and schedule lessons.
-
Install dependencies
npm install
-
Environment variables
Create a
.envfile in the project root (or useapp.config.js/ EAS secrets) with:-
Firebase (required for auth and Firestore):
EXPO_PUBLIC_FIREBASE_API_KEYEXPO_PUBLIC_FIREBASE_AUTH_DOMAINEXPO_PUBLIC_FIREBASE_PROJECT_IDEXPO_PUBLIC_FIREBASE_STORAGE_BUCKETEXPO_PUBLIC_FIREBASE_MESSAGING_SENDER_IDEXPO_PUBLIC_FIREBASE_APP_ID
-
Study Helper (optional):
EXPO_PUBLIC_GEMINI_API_KEY— for the AI study tutor (get from Google AI Studio).
-
Google Sign-In (development builds only): In Expo Go, only email/password sign-in is shown; the Google button is hidden. To use Google Sign-In, run a development build (
npx expo run:iosornpx expo run:android). Then in Google Cloud Console → your OAuth 2.0 Client ID (Web application) → Authorized redirect URIs, add the exact URI printed in Metro when you open Login (e.g.superstudy://redirect).
Use the same Firebase project as your web app so users and data are shared.
-
-
Run
npx expo start
Then open in iOS Simulator, Android emulator, or Expo Go.
- Auth: Email/password and Google sign-in (same Firestore
usersand roles: student/teacher). New Google users get a default student profile. - Students: Dashboard, Find Teachers (filter by subject/location), My Teachers, Study Helper (Gemini-powered hints).
- Teachers: Dashboard, Students (add by email/phone, schedule appointments, remove), Profile (edit subject, location, rules).
- Shared: Star ratings, city selector (Nominatim/Israel), Google Calendar links via
expo-linking, clipboard for contact info.
App.tsx— Root withFirebaseAuthProviderandRootNavigator.src/context/FirebaseAuth.tsx— Auth state and profile (with AsyncStorage cache).src/navigation/— Stack (Home, Login, Signup, StudyHelper) and tab navigators (Student vs Teacher).src/screens/— Home, Login, Signup, Study Helper, student screens, teacher screens.src/components/— StarRating, CitySelector.src/utils/— googleCalendar (linking), firebase, auth.