A Flutter app to help students find suitable mentors based on skills, interests, and availability. Includes mentor/student profiles, matching, session booking, and feedback with reports. Now integrated with Firebase Firestore for real-time data persistence.
- Mentor profiles: skills, experience, availability, contact
- Student profiles: interests, goals, desired skills
- Matching: suggests mentors for a selected student
- Session booking: create requests; approve/reject
- Feedback: leave ratings/comments; reports with average ratings per mentor
- Firebase Firestore: real-time database for persistent storage across sessions
- Go to Firebase Console
- Click "Create a project" and name it
learnturn - Enable Firestore Database in
testmode (for development)
Run the FlutterFire CLI in your project root:
dart pub global activate flutterfire_cli
flutterfire configureSelect your Firebase project and platforms (e.g., Windows, Web). This generates lib/firebase_options.dart with your project credentials.
Replace the placeholder values in the generated file with your actual Firebase credentials:
static const FirebaseOptions web = FirebaseOptions(
apiKey: 'YOUR_API_KEY',
appId: 'YOUR_APP_ID',
messagingSenderId: 'YOUR_MESSAGING_SENDER_ID',
projectId: 'YOUR_PROJECT_ID',
authDomain: 'YOUR_AUTH_DOMAIN',
storageBucket: 'YOUR_STORAGE_BUCKET',
);cd C:\Users\geeth\Desktop\LearnTurn
flutter pub get
flutter runCollections auto-created on first use:
mentors– mentor profilesstudents– student profilessessions– booking requests and statusfeedbacks– session feedback and ratings
- On app start,
HomeScreenloads data from Firestore - If empty, mock data (mentors/students) is seeded automatically
- Sessions and feedbacks sync to Firestore in real-time
- Reports aggregate feedback per mentor from Firestore
- Firebase not initializing: Check
firebase_options.dartand ensure your credentials are correct - Firestore permission denied: Use
testmode rules during development; secure them before production - FlutterFire CLI not found: Run
dart pub global activate flutterfire_clifirst