Skip to content

A minimalistic collaboration android app for organizing a video meeting of up to 20 people, chat in real-time chat and keeping track of tasks to be done.

Notifications You must be signed in to change notification settings

anshul3pathi/Cohorts

Repository files navigation

Cohorts

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 Cohorts

Install The app on your Android device by downloading the latest APK from the given link.

Get Latest APK

Demo Link

Demo

Compile instructions

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.

Screenshots

Features

Login

Login with Google or the user can login with Email and Password.

Cohorts

Cohort is a group in which members can start a video meet, chat with members and add tasks to be done.

Add New Cohort

Add new Cohort by giving it a name and maybe a description.

Add members in a Cohort

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.

Cohort Info

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 a Cohort

Delete the Cohort by clicking on Cohort, click on 3 dots on top right and then select Delete Cohort.

Video Calling

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.

Chats

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.

Tasks

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 new Task

Add a new task by clicking on the + icon.

Task Detail

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.

Profile

View your Profile by coming to the Cohort screen clicking the 3 dots and selecting Profile

Dark Mode

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.

Design Methodologies

Agile

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.

Modularised

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.

Built with

  • 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.

Architecture 🗼

This project follows the famous MVVM architecture but doesn't have the Room Database layer. The remote service used is from Firebase.

About

A minimalistic collaboration android app for organizing a video meeting of up to 20 people, chat in real-time chat and keeping track of tasks to be done.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages