A friendly chat whatsup like project in android studio
AndroidTeamChat is a feature-rich chat application developed in Android Studio that closely resembles the functionality of WhatsApp. This project utilizes various technologies to provide seamless communication and a user-friendly experience. It incorporates Room for local storage, Firebase for notifications, and a Node.js server for backend support. The project leverages Room, a local storage solution, to store chat-related data efficiently on the user's device. Firebase is employed to handle real-time notifications, keeping users informed about new messages even when the application is in the background. The Node.js server acts as the backend, enabling seamless communication between users and facilitating a smooth chat experience.
AndroidTeamChat provides a visually appealing and intuitive user interface, ensuring a delightful chatting experience. With its robust feature set and seamless integration of essential technologies, this project serves as an excellent foundation for building a WhatsApp-like chat application in Android Studio.
The login screen is a simple yet crucial component, designed to allow registered users to securely log in with their credentials. This user-friendly screen provides immediate feedback to the user, indicating whether the entered credentials are correct or incorrect. Additionally, it offers convenient navigation options for accessing the settings and registration screens.
![chat Screen](https://private-user-images.githubusercontent.com/110912180/249190552-3c6d18db-23ed-4d74-a66f-bcaefd24f562.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMzNzUyMDEsIm5iZiI6MTcyMzM3NDkwMSwicGF0aCI6Ii8xMTA5MTIxODAvMjQ5MTkwNTUyLTNjNmQxOGRiLTIzZWQtNGQ3NC1hNjZmLWJjYWVmZDI0ZjU2Mi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxMVQxMTE1MDFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lMjUwMjFhMWU5ZmYzNzdlMjUwMDg5ZmZjNDE3NTQ2NjZiODNmMzBlNGNmZDQ5YTIwODZiODVjMmFjNWJiNWY3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.TktJoPreArwzPt5KdvHqZgwvZVCk4NQLAlPLa7ziX1Q)
The registration screen is designed to facilitate the user registration process effectively. It offers a user-friendly interface with fields for entering essential information such as username, password, confirm password, display name, and picture. The screen provides immediate feedback to the user, ensuring the correctness of the entered credentials and guiding them through the registration process.
![chat Screen](https://private-user-images.githubusercontent.com/110912180/249189606-5933b243-bbd9-44b1-91e0-db4b15923768.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMzNzUyMDEsIm5iZiI6MTcyMzM3NDkwMSwicGF0aCI6Ii8xMTA5MTIxODAvMjQ5MTg5NjA2LTU5MzNiMjQzLWJiZDktNDRiMS05MWUwLWRiNGIxNTkyMzc2OC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxMVQxMTE1MDFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1kZmY3MmE3ZWUzZGNmYjNjMDY0NDA4ODBmODU3NDY3ODhiODU2NGE0YjcwYmVmYjI0MTNmNDU2YzgxODM5ZWI4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.0boz4OTX3ktIiX6u3JWOGEAxEAqHKFpldDVZ1JBNkVQ)
The chat screen serves as a platform for users to engage in real-time conversations with their contacts. It offers a straightforward and user-friendly interface that enables seamless communication through sending and receiving messages. Additionally, the screen provides convenient options for deleting the contact and navigating back to the contact list.
![chat Screen](https://private-user-images.githubusercontent.com/110912180/249192110-398b10fd-cafe-42e7-9f1a-e08d2a7c7c01.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMzNzUyMDEsIm5iZiI6MTcyMzM3NDkwMSwicGF0aCI6Ii8xMTA5MTIxODAvMjQ5MTkyMTEwLTM5OGIxMGZkLWNhZmUtNDJlNy05ZjFhLWUwOGQyYTdjN2MwMS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxMVQxMTE1MDFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iMGE3NTc3MGUzOGE2NDJjMTA3ZmRmN2JjZWRhMjU1YzQyMGIwMmY1N2Q1NmYxZjJhZmVlZTFkZDc3YTg1MTgwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.pve1DzuhgSYas8-HZZafIVNW00bqdNae3GVMKWcrKDo)
The contact list screen serves as a central hub for users to manage and interact with their contacts. It provides an organized and user-friendly interface that displays all the user's contacts, offers options to initiate chats, add new contacts, and search for specific contacts. Additionally, the screen showcases the last message exchanged and the corresponding time between the user and each contact, providing valuable context and quick access to recent conversations.
![chat Screen](https://private-user-images.githubusercontent.com/110912180/249191318-a1e84fd7-a79b-4170-ac8e-b8102ae69a5c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMzNzUyMDEsIm5iZiI6MTcyMzM3NDkwMSwicGF0aCI6Ii8xMTA5MTIxODAvMjQ5MTkxMzE4LWExZTg0ZmQ3LWE3OWItNDE3MC1hYzhlLWI4MTAyYWU2OWE1Yy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxMVQxMTE1MDFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xM2UyNTk4ZTI1YzFmMjVkNWQxNmUzZWJjNWJhNjAzZGQ5ODVmMDE3YzYzNGI5YzI0NDMwY2ZmY2M3NThjODBmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.2WuU6CeR4QdXBJUy8OIVHbJABftIoF_Ag6f3D1HHfPo)
The settings screen provides users with customization options and essential functionalities to personalize their experience and manage their account. It offers three distinct options, including the ability to switch between dark mode and light mode, change the server URL, and a logout button. Additionally, the screen ensures smooth navigation by returning the user to the screen they were previously on when pressing the back button.
![chat Screen](https://private-user-images.githubusercontent.com/110912180/249191771-7aeea0fb-34b9-4a7e-b708-efb9f31af8ab.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMzNzUyMDEsIm5iZiI6MTcyMzM3NDkwMSwicGF0aCI6Ii8xMTA5MTIxODAvMjQ5MTkxNzcxLTdhZWVhMGZiLTM0YjktNGE3ZS1iNzA4LWVmYjlmMzFhZjhhYi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxMVQxMTE1MDFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jODBlMzQzNmVmZDE2YTczODY3OTA2ZmE0NTJlMzdiNzczZGQzNTc3M2JlYjRmYzA3MWNkNjVlNzUzNTJiNjNlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.9XTUwWzRPycc7l8BwPfj-8COz_2sSyXMM7Jm0RzBKQs)
The addContact screen allows users to add new contacts to their contact list. It provides a simple and intuitive interface where users can enter the details of the contact they wish to add. The screen communicates with the server to verify the existence of the contact before adding them to the user's contact list. Once the contact is successfully added, the screen seamlessly navigates back to the contact list screen.
![chat Screen](https://private-user-images.githubusercontent.com/110912180/249192469-e261e580-dc97-46a4-91aa-3a2cbfce3fff.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMzNzUyMDEsIm5iZiI6MTcyMzM3NDkwMSwicGF0aCI6Ii8xMTA5MTIxODAvMjQ5MTkyNDY5LWUyNjFlNTgwLWRjOTctNDZhNC05MWFhLTNhMmNiZmNlM2ZmZi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxMVQxMTE1MDFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04NWY4MDNlZmRiZTY3YmExNDhjMTQ2YjExZjA0YTgxMzRkZDA1MjQxODk4NDM4ZDg0YTQ3ZDc1MmNiMzBhMTJlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.W3DojftGcOizctDdLB99HTM1dN0SLIRYlaExyyhWFzA)
The project uses the following technologies:
- Java- in android-studio
- NodeJs- in the server
- Firebase- for notifications
- Room- for local storage
- It is not possible to return from the contact list page
- User must enter in the url option a format of http://xxx.xxx.xxx.xxx:5000/api/ or http://xxx.xxx.xxx.xxx:5000
- In the notifications, only the last message contact sent is shown for each member
- By clicking on logout, all the information of messages and contacts are deleted from the room
To clone and run this application, you'll need Git installed on your computer.
From your command line:
# Clone this repository.
$ git clone https://github.com/IditMedizada/AndroidTeamChat.git
# Go into the repository.
$ cd AndroidTeamChat
# Server side
$ cd NodeJs
$ npm install
$ npm start
# Client side - android
# Open project in android studio
# sync project with Gradle files
# run the app
# Client side - web
# Open the browser- "http://localhost:5000"