This is an android application that I built for the Introduction to Android course of my university. Built on Java, this app features text messaging between registered users. Any user will have to register first by providing a username, email and password. Once logged in after registration, the users can logout anytime they want, or stay logged in. A forgot password feature is also included, where a link will be sent to the registered email to reset the password. The authentication and authorization of users have been controlled by Firebase Authentication. Three tabs are present inside the app UI, where Chats shows the ongoing chats with any user, Users shows the current number of registered users and a search bar to find those users, Profile shows the name and profile picture of the user. The profile picture can be updated anytime by selecting an image from the device. It has been handled using the Firebase Storage feature. All the chats between users are kept stored in the Firebase Realtime Database with a unique ID of each message sent. Whether a user is active or not is shown using a green circle at the bottom of a user's name. It will show green if the user is currently running the app, otherwise the icon will be blank. Whether the sent message has been seen or not is also notified by showing a delivered or seen message at the end of a sequence of messages.
Some potential future upgrades include notification of incoming messages, showing number of unread messages and sending files and images while chatting. Clicking the message in the notification panel will open that chat in the app. Similarly, clicking the chats tab to read unread messages will also enter the chat automatically. The Firebase Storage feature can also be used to send images and files inside the chat.