Git Product home page Git Product logo

dankmemes's Introduction

Dank Memes (work-in-progress ๐Ÿ‘ท๐Ÿ”ง๏ธ๐Ÿ‘ทโ€โ™€๏ธโ›)

License Apache 2.0 CircleCI Codacy Badge

This is a social media app for sharing memes (funny pictures). The app is mainly written in Kotlin and uses the Gradle build system. It uses Firebase for the backend with Firebase Functions providing additional server side functions. You can view the Functions code in the Dank-Memes-Functions repo with the guide on deploying it.

You can download the app from the Play Store here: Dank Memes

Features

  • 100% Kotlin
  • MVVM Architecture
  • Koin for DI
  • Coroutines
  • RxJava
  • Firebase
    • Firebase Auth
    • Firebase Database
    • Firebase Storage
    • Firebase Firestore
    • Crashlytics
    • Performance Monitoring
    • GCM
  • Android Jetpack

Project setup

To setup the project in your machine

  • Clone the repo
foo@bar:~$ git clone https://github.com/tirgei/DankMemes.git

You can then import the project to your Android Studio then head to your Firebase Console

  • Create a new Dank Memes project.

  • Enable Email/ Google sign in

  • Add a new Android project under Project Settings menu

  • Fill in the project details then download the google-services.json file and place it in app/ directory

  • Create a keys.xml file in the app/src/main/res/values/ directory where we will place our API keys.

First we'll add the Google Sign In Key to enable users to sign in with Google. This can be obtained from the Authentication page of your Firebase Project. Under the Sign-In method tab you should see the Google option and on expanding it copy the Web client ID under the Web SDK configuration option:

// Google Sign in key
<string name="google_signin_key">YOUR_GOOGLE_SIGN_IN_KEY</string>

For native ads, the following are required (You can use test IDs from the Admob docs)

// Admob
<string name="admob_app_id">YOUR_ADMOB_APP_ID</string>
<string name="admob_native_ad_id">YOUR_ADMOB_TEST_AD_ID</string>

The Test IDs are:

  • admob_app_id - ca-app-pub-3940256099942544~3347511713
  • admob_native_ad_id - ca-app-pub-3940256099942544/2247696110

If you are having issues configuring ads or you simply want the ad free version, checkout the ad-free-version branch:

foo@bar:~$ git checkout ad-free-version
  • Sync your gradle. After successful sync, you can run the app to test it out.

Screenshots

Login Registration Home page
Navigation Favorites Notification
My Profile Comments Post Meme
Edit Profile

License

Copyright 2020 Vincent Tirgei

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

dankmemes's People

Contributors

tirgei avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.