This project is an Android application where teachers can share posts, students can comment on them, and teachers can initiate private messaging with students under specific conditions. The app also includes a chatbot feature that answers user questions related to the app.
- Only teachers can share posts.
- Posts are stored using Firebase Firestore and Firebase Storage.
- Posts can be liked and saved by users.
- Students can comment on teachers' posts.
- Teachers can view comments on their posts.
- Teachers can initiate private discussions with students through a "Discuss" button.
- Teachers can start private conversations with students who comment on their posts.
- Messaging functionality is developed as a separate module.
- Students can only reply to a teacher's message after the teacher starts the conversation.
- The chatbot answers app-related user questions.
- User data is fetched from Firebase.
- Integrated with Google Generative AI via a JSON-based API.
Here are the screenshots of the application, grouped in rows of three for better readability.
- Language: Kotlin
- Architecture: MVVM (Model-View-ViewModel)
- Firebase: Firestore, Authentication, Storage
- Hilt: For dependency injection
- RecyclerView: For listing posts and comments
- StateFlow: For managing data flows
- android-image-cropper: For image cropping
- AdMob: For ad integration
- Retrofit: For a chatbot api
- User roles are managed using a
Role
enum class (Teacher and Student). - Only users with the teacher role can share posts.
App
: Home featuresChatModule
: Manages teacher-student messaging.ChatbotModule
: Handles chatbot questions and answers.
- Clone the repository:
git clone https://github.com/murat-dayan/LessOnline.git cd lessonline