SajidEqubal / SpaceChat

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Space Chat

This repository contains the source code and resources for a real-time chat application developed for Android devices, following Clean Architecture principles and utilizing the MVVM (Model-View-ViewModel) architectural pattern.

Overview

The Space Chat is built to provide users with a robust, scalable, and maintainable messaging experience. It features:

  • Real-Time Messaging: Seamless exchange of messages with friends.
  • User Authentication: Secure login and user authentication process.
  • User Profiles: Management and viewing of user profiles.
  • Media Sharing: Capability to share images, videos, and documents within the chat.

Architecture & Design Patterns

The app is built using:

  • Clean Architecture: Embraces the principles of Uncle Bob's Clean Architecture, separating concerns into distinct layers: Domain, Data, and Presentation.
  • MVVM Pattern: Utilizes the Model-View-ViewModel pattern to separate the UI, business logic, and data, ensuring a more maintainable and testable codebase.

Features

The app includes several features:

  • User Authentication: Integrates Firebase Authentication for secure login and registration.
  • Real-Time Database: Firebase Realtime Database integration for instant message updates.
  • Material Design: Follows Android's Material Design guidelines for an intuitive and user-friendly interface.
  • Push Notifications: Integration with Firebase Cloud Messaging for push notifications.
  • Media Sharing: Enables users to share various media files within the chat interface.

Screenshots

Splash Screen SigIn Screen SignUp Screen SignUp Screen
User Select Chat Screen

Getting Started

To run this application locally:

  1. Clone this repository: git clone https://github.com/SajidEqubal/SpaceChat.git
  2. Open the project in Android Studio.
  3. Set up Firebase project and add google-services.json file to the project.
  4. Build and run the application on an Android device or emulator.

Technologies Used

The app is built using:

  • Java: Core programming language for Android app development.
  • Firebase: Backend services including Authentication, Realtime Database, and Cloud Messaging.
  • Android Studio: IDE used for Android application development.

Project Structure

The project structure follows the principles of Clean Architecture:

  • Domain Layer: Contains business logic and use cases.
  • Data Layer: Manages data sources and repositories.
  • Presentation Layer: Includes the UI components, ViewModels, and interaction with the domain layer.

License

This project is licensed under the MIT License.

Acknowledgements

Special thanks to Firebase for their powerful suite of tools. This project was inspired by the need for a user-friendly and efficient messaging app for Android users.

About

License:MIT License


Languages

Language:Java 98.3%Language:Kotlin 1.7%