This repository contains the source code for the MentorMe app built on Android which utilizes Firebase for backend services. This app was developed as part of the CS4039 Software for Mobile Devices course.
MentorMe is a mobile application designed to connect users with mentors. It features user authentication, mentor management, push notifications, chat functionality, and more. The backend services are powered by Firebase.
- User Authentication: Sign up, login, and logout functionalities using Firebase Authentication.
- Mentor Management: Add mentors to the list and favorites.
- Push Notifications: For new messages, mentor updates, and other important events using Firebase Cloud Messaging.
- Real-time Database: Stores messages, bookings, and mentor information using Firebase Realtime Database.
- Storage: Securely stores images and other files using Firebase Storage.
- Chat System: Includes text messages, voice notes, image, video, and file uploads.
- Camera Integration: Take and upload photos within chats.
- Video/Audio Calls: Uses Agora API for making calls.
- Offline Mode: App functions properly offline with Firebase Realtime Database.
- Firebase Authentication is used for user sign up, login, and logout functionalities.
- Email/Password Authentication is implemented for user management.
- Firebase Realtime Database stores user profiles, mentor details, messages, and booking information.
- Real-time updates ensure that users have the latest information and chat messages.
- Firebase Storage is used for storing profile pictures, chat images, and other files.
- Ensures secure and scalable storage for user-generated content.
- Firebase Cloud Messaging (FCM) is used to send push notifications for new messages, mentor updates, and other events.
- Notifications are also displayed within the app's notification screen.
- Displays for 5 seconds before navigating to the next screen.
- Profile Screen: Allows users to update their profile picture, cover photo, and personal information.
- Home Screen: Displays a list of mentors for easy access.
- Chat Screen: Supports text, image, video, and file sharing in real-time.
- Glide: For image caching and loading, ensuring offline accessibility.
- Agora SDK: For implementing video and audio call functionalities.
- hbb20/Android Country Picker: For selecting from list of all countries in the world with search functionality.
- applandeo/Material Calendar View: For customizable material calendar with range date picker.
- Search with Filters: Helps users find mentors based on specific criteria.
- Session Booking: Allows users to book sessions with mentors.
- Favorites: Users can add mentors to their favorites for quick access.
- Reviews: Users can review mentors based on their experiences.
- Notification of Screenshot: Notifies users when a chat screenshot is taken.
- Android Studio Hedgehog or latest version.
- Firebase project set up.
- Agora API credentials.
- Clone the repository:
git clone https://github.com/Vaneeza-7/Mentor-me-android-app-with-Firebase.git
- Open the project in Android Studio.
- Connect to Firebase:
- Add your
google-services.json
file to the app directory. - Configure Firebase in your project settings.
- Add your
- Add Agora API credentials:
- Follow the Agora API documentation to set up your credentials.
- Open the project in Android Studio and run the app on an emulator or physical device.
- The project includes 3 Espresso test cases to validate key functionalities.
- To run the tests:
./gradlew connectedAndroidTest
This project is licensed under the MIT License. See the LICENSE file for details.