Browse Source

Update Readme doc
remove library module

shivamlivelike 3 years ago
parent
commit
b9f94ae2f9

+ 0 - 1
.idea/gradle.xml

@@ -11,7 +11,6 @@
           <set>
             <option value="$PROJECT_DIR$" />
             <option value="$PROJECT_DIR$/app" />
-            <option value="$PROJECT_DIR$/flickersearchlibrary" />
           </set>
         </option>
         <option name="resolveModulePerSourceSet" value="false" />

+ 30 - 32
README.md

@@ -1,37 +1,35 @@
 # LiveLike Android Code Challenge
-Welcome to the LiveLike Android Code Challenge. 
-The goal of this challenge is to create a Flickr search library **(not application)** that allows you to search or explore images by tags and display it in a gridview using [Flickr API](https://www.flickr.com/services/api/flickr.photos.search.html)
 
-> Please follow instructions in the **Submission** section to correctly submit your project.
+The goal of this challenge is to create an *Giphy search app that allows you to search/explore image by tags and display it a grid view (basic simple UI) using Giphy API (https://developers.giphy.com/docs/api/#quick-start-guide)
+**Search API**: https://developers.giphy.com/docs/api/endpoint/#search
+You can use the API key: **8LtshfHp2uWb6CFpmzPtJmborDaVWu0Z** (In case the API key is not working you can create you own api key)
+**Note**: Make sure to use Giphy API and not Giphy SDK
+**Note**: If there is any issue with Giphy APi, you can use any api to show grid of images
 
-## Project
-The Flickr search library will be responsible for the following:
-1. Deliver results based on search query input
+### Project:-
+
+The Giphy search app will be responsible :-
+
+1. API To deliver results based on search query input
 2. When no query passed in, result set should be empty
-3. Return the recently published images on Flickr
-4. A basic UI which will display a list of images from the result in a grid form
-5. Local storage / Cache mechanism should be handled. 
-   * ex. In the absence of connectivity/ network error, the result should be displayed from local storage
-6. If search query is updated, the old result set should be updated with the new one
-7. Should support options for pagination
-8. Errors should be handled with logs
-
-### Use-Case
-- This library will be used by end users in their application for searching purposes
-- An App can use this library to search Flickr and display the results using their own custom UI
-
-### Hard Requirements
-* The library can be used in a sample project without any compilation/build errors
-* The code should not crash under normal usage
-* The code must be written in Kotlin
-* Must have Pagination support
-
-### Extra Credit
-* Unit Tests
-
-## Submission
--   Create an account with **code.livelike.com**
--   Fork the repository into your local environment
--   Implement as much as you can, you have roughly 72 hours. There is no wrong or right answer.
--   To submit your project **you must submit it as a Pull Request**
+3. A basic default UI which will display list of images from the result in grid form
+4. If search query is updated, the old result set should reset with new one
+5. Should support options for pagination
+6. Errors should handled with logs and shown to users
+
+
+### Hard Requirements:-
+
+* *The code must be written in Kotlin*
+* Pagination support
+
+
+## Extra Credit:-
+* ### Unit Test
+* ### Use of Kotlin Coroutines for Thread Handling
+
+#### Submission Guidelines:-
 
+* Implement as much as you can in the time allotted. There is no wrong or right answer
+* Try not give default UI much importance (Just a very basic UI would be fine)
+* To submit your project you must submit it as a Pull Request

+ 0 - 1
flickersearchlibrary/.gitignore

@@ -1 +0,0 @@
-/build

+ 0 - 37
flickersearchlibrary/build.gradle

@@ -1,37 +0,0 @@
-plugins {
-    id 'com.android.library'
-}
-
-android {
-    compileSdk 30
-
-    defaultConfig {
-        minSdk 21
-        targetSdk 30
-        versionCode 1
-        versionName "1.0"
-
-        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
-        consumerProguardFiles "consumer-rules.pro"
-    }
-
-    buildTypes {
-        release {
-            minifyEnabled false
-            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-        }
-    }
-    compileOptions {
-        sourceCompatibility JavaVersion.VERSION_1_8
-        targetCompatibility JavaVersion.VERSION_1_8
-    }
-}
-
-dependencies {
-
-    implementation 'androidx.appcompat:appcompat:1.4.0'
-    implementation 'com.google.android.material:material:1.4.0'
-    testImplementation 'junit:junit:4.+'
-    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
-    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
-}

+ 0 - 0
flickersearchlibrary/consumer-rules.pro


+ 0 - 21
flickersearchlibrary/proguard-rules.pro

@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-#   http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-#   public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile

+ 0 - 26
flickersearchlibrary/src/androidTest/java/com/livelike/flickersearchlibrary/ExampleInstrumentedTest.java

@@ -1,26 +0,0 @@
-package com.livelike.flickersearchlibrary;
-
-import android.content.Context;
-
-import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static org.junit.Assert.*;
-
-/**
- * Instrumented test, which will execute on an Android device.
- *
- * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
- */
-@RunWith(AndroidJUnit4.class)
-public class ExampleInstrumentedTest {
-    @Test
-    public void useAppContext() {
-        // Context of the app under test.
-        Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
-        assertEquals("com.livelike.flickersearchlibrary.test", appContext.getPackageName());
-    }
-}

+ 0 - 5
flickersearchlibrary/src/main/AndroidManifest.xml

@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.livelike.flickersearchlibrary">
-
-</manifest>

+ 0 - 17
flickersearchlibrary/src/test/java/com/livelike/flickersearchlibrary/ExampleUnitTest.java

@@ -1,17 +0,0 @@
-package com.livelike.flickersearchlibrary;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
- */
-public class ExampleUnitTest {
-    @Test
-    public void addition_isCorrect() {
-        assertEquals(4, 2 + 2);
-    }
-}

+ 0 - 1
settings.gradle

@@ -8,4 +8,3 @@ dependencyResolutionManagement {
 }
 rootProject.name = "LiveLikeAndroidChallenge"
 include ':app'
-include ':flickersearchlibrary'