A React Native mobile application for students to access the STEP Education Center platform.
- 🔐 Secure Authentication - JWT-based login with encrypted token storage
- 📊 Dashboard - Quick overview of courses, attendance, and grades
- 📚 Course Management - View enrolled courses and materials
- 💰 KHQR Payments - Pay invoices using Bakong QR codes
- 📝 Assignments - Submit and track assignments
- 📈 Grades - View academic performance
- Framework: React Native with Expo
- Language: TypeScript
- Styling: NativeWind (Tailwind CSS for React Native)
- Navigation: React Navigation
- State: React Context API
- API: Axios with JWT interceptors
- Storage: Expo SecureStore
- Node.js 18+ installed
- Expo Go app on your mobile device (iOS/Android)
- Backend server running on
http://localhost:5001
- Install dependencies:
npm install- Start the development server:
npm start- Scan the QR code with Expo Go app
# Android
npm run android
# iOS
npm run ios
# Web (for testing)
npm run webStudentMobileApp/
├── src/
│ ├── context/ # React Context providers
│ │ └── AuthContext.tsx
│ ├── lib/ # Utilities and API client
│ │ └── apiClient.ts
│ ├── screens/ # App screens
│ │ ├── LoginScreen.tsx
│ │ └── DashboardScreen.tsx
│ └── components/ # Reusable components (to be added)
├── App.tsx # Main app entry
├── app.json # Expo configuration
├── package.json
└── tailwind.config.js
The app connects to the existing School Management System backend:
- Base URL:
http://localhost:5001/api - Authentication: JWT tokens stored in SecureStore
- Endpoints Used:
POST /auth/login- User authenticationGET /financial/invoices- Student invoicesPOST /financial/bakong-qr- Generate KHQR codes- More endpoints to be integrated...
- Project setup
- API client with JWT
- Authentication context
- Login screen
- Basic dashboard
- Courses list screen
- Course details screen
- Assignments screen
- Grades/Transcript screen
- Invoice list screen
- Bakong KHQR payment modal
- Payment history
- Real-time payment verification
- Push notifications
- Profile management
- Offline support
- App icons and splash screen
- For local development, ensure your mobile device and computer are on the same network
- Update
API_BASE_URLinsrc/lib/apiClient.tsto your computer's local IP when testing on physical devices - The app currently uses the same backend as the web application
© 2026 STEP Education Center