Skip to content

Social Media App where a user can publicly talk about any particular topic be it via text or voice chat, a user can also interact with other people on the platform via voice channels and text messages. Users can also share photo's, videos etc

Notifications You must be signed in to change notification settings

akshat-sahijpal/Social-Network

Repository files navigation

Social-Network

Social Network is a social media app, where a user can publicly talk about any particular topic be it via text or voice chat.

About

It simply uses firebase as a backend and performs authentication and storage operations on firebase itself, a user simply authenticates his/her google account and gets inside the whole network. Further, the user can post about something in text format or image format. Also, a user has a profile and can view others people profile too can follow others etc.

This is a Beginner Friendly Repository made for Open Source Enthusiasts who can contribute to the App.

To contribute in this project, you can update the existing applications.

Features :

  • Write About Anything - Convey your feelings, thoughts in form of a post
  • Delete/Update Post - Delete/Update Posts easily.
  • Camera Photos - You can open camera inside the application, click and upload the photo with a post.
  • Add Image from gallery - Add Images in Post to keep it Awesome.
  • Profiles - Visit any user profile and connect(follow) with them .
  • Voice Channel [Beta] - Voice chat with anyone.

Contributing

You can star ⭐ and fork 🍽️ this repository on GitHub by navigating at the top of this repository.

Getting Started

  • Fork it.

  • Clone your forked repo and move inside it:

    git clone https://github.com/akshat-sahijpal/Social-Network.git && cd SocialNet

  • Checkout to a new branch to work on an issue:

    `git checkout -b my-amazing-feature`
    
  • Running the project

open the project in Android Studio and run!

  • Once you're all done coding, it's time to open a PR :) Run the following commands from the root of the project directory:

    `git add .`
    
    `git commit -m "A short description about the feature."`
    
    `git push origin <my-amazing-feature>`
    
     Ope n your forked repo in your browser and then raise a PR to the `master` branch of this repository!
    

Built With 🛠

  • Kotlin - First class and official programming language for Android development.
  • Coroutines - For asynchronous and more..
  • Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
  • 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.
    • ViewBinding - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
    • Room - SQLite object mapping library.
  • Dependency Injection -
    • Hilt-Dagger - Standard library to incorporate Dagger dependency injection into an Android application.
    • Hilt-ViewModel - DI for injecting ViewModel.
  • Retrofit - A type-safe HTTP client for Android and Java.
  • Moshi - A modern JSON library for Kotlin and Java.
  • Moshi Converter - A Converter which uses Moshi for serialization to and from JSON.
  • Coil-kt - An image loading library for Android backed by Kotlin Coroutines.
  • Material Components for Android - Modular and customizable Material Design UI components for Android.
  • Gradle Kotlin DSL - For writing Gradle build scripts using Kotlin.
  • Pager 3 - For Pagination of data

Architecture

This app uses MVVM (Model View View-Model) architecture.

App

| Third | Fourth | | Third | Fourth |
| First | Sec | | Five |

Demo

Demo Video
bandicam.2021-10-02.23-35-04-327.mp4