A minimalistic collaboration android app for organising a video meet of up to 20 people, chat in realtime chat and add tasks to be done.
Install The app on your Android device by downloading the latest APK from the given link.
Anyone who clones this repo and runs gradle build won't be able to compile the app because they won't have their developing machine's SHA keys registered on Firebase. You will get Firebase Error code: 10. Please ping me on my mail - anshul.3pathi@gmail.com for registering you machine's SHA keys on Firebase.
Login with Google or the user can login with Email and Password.
Cohort is a group in which members can start a video meet, chat with members and add tasks to be done.
Add new Cohort by giving it a name and maybe a description.
Add new member by clicking on the Cohort, clicking the 3 dots on top and selecting Add New Member option. Users, who are on Cohort, can be added using their emails.
View detailed information about the Cohort, edit the name or description of the Cohort, remove a user from the Cohort or leave the Cohort. Get to Cohort info by clicking a Cohort then clicking the 3 dots on top and selecting Cohort Info.
Delete the Cohort by clicking on Cohort, click on 3 dots on top right and then select Delete Cohort.
Users can start a new video meeting in a Cohort by clicking the video icon on the top.
Up to 20 people can join the video meeting. Users can turn on or off their videos, mute of unmute their mics.
Users can chat with all the other members of the Cohort in realtime. Users can also send images in Chat.
Click on the images to view them enlarged and pinch to zoom.
Add Tasks to do within Cohorts. Users can view the tasks, mark them complete or active, delete of with Task details. Click on the check box to mark a task complete or active.
Clear completed Tasks by clicking on 3 dots and selecting Clear Completed. Clear all Tasks by clicking on 3 dots and selecting Clear All.
Add a new task by clicking on the + icon.
Click on the Task to view it's details. Edit the Task by clicking the edit button at bottom right corner of the screen, mark the task complete of active or delete the task by clicking on the top right corner.
View your Profile by coming to the Cohort screen clicking the 3 dots and selecting Profile
App wide dark mode is available. Users can change the theme of the app by coming to Cohort screen clicking the 3 dots and selecting the Theme.
The project is primarily built using the Agile methodology. Each feature is planned first before development begins and developed incrementally without breaking the existing app.
This app is highly modularised. There are different packages for different screens that only contain the logic for that screen, like Activity or Fragment classes, ViewModel, Adapters, etc. Following a modularised approach makes the app scalable and less daunting to understand.
- Kotlin - First class and official programming language for Android development.
- Coroutines - For asynchronous and more..
- Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- LiveData - Data objects that notify views when the underlying database changes.
- ViewModel - Stores UI-related data that isn't destroyed on UI changes.
- DataBinding - Generates a binding class for each XML layout file present in that module and allows you to write powerful binding expressions for binding data directly to layouts.
- Hilt - Dependency Injection Framework
- NavigationComponents - For handling the navigation within the app.
- Glide - An image loading library for Android backed by Kotlin Coroutines.
- Material Components for Android - Modular and customizable Material Design UI components for Android.
- MaterialColors - Android material color palettes.
- Firebase Firestore - For saving users data and Cohort information.
- Firebase Realtime Database - For saving chats belonging to different Cohorts.
- Firebase Authentication - For authenticating the users.
- Firebase Storage - For storing the image files sent in Cohorts chat.
- Jitsi - For establishing peer to peer connection and sharing video feed and audio of users.
This project follows the famous MVVM architecture but doesn't have the Room Database layer. The remote service used is from Firebase.



