Code Monkey home page Code Monkey logo

capstone-project's Introduction

Predator for ProductHunt

Google play Production badge Google play Beta badge Rating badge Build Status

Predator is a minimalistic client for ProductHunt. It shows latest products and collections fetched via ProductHunt api. It also offers other information like media and comments associated with that product.

Installation instructions

  • Clone this repository using git clone https://github.com/crazyhitty/Capstone-Project.git
  • Create api key and api secret for your project via product hunt api console. Make sure to login first on producthunt.com as the previous link will keep on redirecting you onto the main site until you log in. Also, make sure to put this in redirect uri: predator://com.crazyhitty.chdev.ks.predator/oauth2redirect
  • Add those keys in producthunt-wrapper's build.gradle file:
    debug {
            if (!project.hasProperty("isReleaseBuild") || "$isReleaseBuild" == "false") {
                def apiKey = "\"your_api_key_here\""
                def apiSecret = "\"your_api_secret_here\""
                def searchUrl = "\"\""
                def xAngoliaAgent = "\"\""
                def xAngoliaApplicationId = "\"\""
                def xAngoliaApiKey = "\"\""

                buildConfigField "String", "API_KEY", apiKey
                buildConfigField "String", "API_SECRET", apiSecret
                buildConfigField "String", "SEARCH_URL", searchUrl
                buildConfigField "String", "X_ANGOLIA_AGENT", xAngoliaAgent
                buildConfigField "String", "X_ANGOLIA_APPLICATION_ID", xAngoliaApplicationId
                buildConfigField "String", "X_ANGOLIA_API_KEY", xAngoliaApiKey
            }

            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
  • Now, just hit the run button on your android studio or execute installDebug task to install debug variant of the application.

Features

  • Minimal and simple user interface, which user can get easily acquainted with.
  • View and search through latest posts and collections from ProductHunt.
  • Checkout the media and comments of a particular post and share them with anyone.
  • Sync data in background even if the app is not running, so you can remain up to date with the latest posts and collections (Optional, can be activated via application settings).
  • Notification support.
  • Multiple font support.
  • Delightful animations to encourage the user experience.

Screenshots

alt text alt text

alt text alt text

alt text alt text

alt text alt text

alt text

Contributing

You can contribute to the project by either finding out bugs or by requesting new features.

Community

Google plus

Reddit

License

MIT License

Copyright (c) 2016 Kartik Sharma

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

capstone-project's People

Contributors

crazyhitty avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

capstone-project's Issues

Sort by vote count

Like your app, but would be much more useful IMO if it sorted the day's PH listings by vote count (highest to lowest) by default.

Cheers.

Android 6.0.1, Nexus 5

Show version badges

  1. For Google play.
  2. For master branch.
  3. For beta branch.

Use this to create a new badge: http://shields.io/#your-badge


Example badge code:

[![Goolgle play badge](https://img.shields.io/badge/Google%20play-v0.36-green.svg)](https://play.google.com/store/apps/details?id=com.crazyhitty.chdev.ks.predator)

Example badge preview:
Goolgle play badge

Add category support

Add categories sorting for posts and show category w/ upvote count in post details.

Abstract database layer

Database and presenters should have one more layer in b/w them.

Yes, he means that you should add one more abstraction layer. Because some day you might want to migrate to another database, if you don't hide behind another class, then you will find your self with a lot of stuff that has to be changed. For example when parse went down, a lot of people had parse all over the place, which was bad for them and it took them a while until they replace all of the parse stuff with an alternative solution.
But if they had "hide" parse behind another layer, then everything would be fine/it would require less work in order to replace it.

Source

Application crashes on pre-nougat devices when sharing a post from post details screen.

Application crashes whenever user shares any post from its details screen.

Exception android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
android.app.ContextImpl.startActivity (ContextImpl.java:677)
android.app.ContextImpl.startActivity (ContextImpl.java:664)
android.content.ContextWrapper.startActivity (ContextWrapper.java:331)
com.crazyhitty.chdev.ks.predator.core.postDetails.PostDetailsPresenter.sharePostDetails (PostDetailsPresenter.java:550)
com.crazyhitty.chdev.ks.predator.ui.activities.PostDetailsActivity.onOptionsItemSelected (PostDetailsActivity.java:484)
android.app.Activity.onMenuItemSelected (Activity.java:2964)
android.support.v4.app.FragmentActivity.onMenuItemSelected (FragmentActivity.java:408)
android.support.v7.app.AppCompatActivity.onMenuItemSelected (AppCompatActivity.java:195)
android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected (WindowCallbackWrapper.java:113)
android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected (WindowCallbackWrapper.java:113)
android.support.v7.app.ToolbarActionBar$2.onMenuItemClick (ToolbarActionBar.java:69)
android.support.v7.widget.Toolbar$1.onMenuItemClick (Toolbar.java:206)
android.support.v7.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected (ActionMenuView.java:776)
android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected (MenuBuilder.java:822)
android.support.v7.view.menu.MenuItemImpl.invoke (MenuItemImpl.java:156)
android.support.v7.view.menu.MenuBuilder.performItemAction (MenuBuilder.java:969)
android.support.v7.view.menu.MenuBuilder.performItemAction (MenuBuilder.java:959)
android.support.v7.widget.ActionMenuView.invokeItem (ActionMenuView.java:623)
android.support.v7.view.menu.ActionMenuItemView.onClick (ActionMenuItemView.java:154)
android.view.View.performClick (View.java:5265)
android.view.View$PerformClick.run (View.java:21534)
android.os.Handler.handleCallback (Handler.java:815)
android.os.Handler.dispatchMessage (Handler.java:104)
android.os.Looper.loop (Looper.java:207)
android.app.ActivityThread.main (ActivityThread.java:5728)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:789)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:679)

The crash indicates that the application is starting the sharing intent without FLAG_ACTIVITY_NEW_TASK flag. But the code already has it implemented. Weird bug, I guess. Will try to move sharing functionality from Presenter logic to Activity itself.

Add tests

Add proper tests for the presenters.

Optimize user onboarding and loading experience

Improve the user experience for intro screens. Currently the intro screens look very bland and boring.

If I could offer some feedback, and this may just be my personal preference, I felt some parts of the app hampered me from getting to the content quickly. The intro screen contained quite a lot of plain text, where it might be better to use images, or a blend, to get the message across more quickly. I found some of the loading messages a bit long too. When loading an item on the "Collection" page, for instance, there is a widget that appears for around half a second that says "Success!" - but I'm thinking "why not just load the content if it was retrieved successfully, rather than wait an extra half second to see this message?"

Basically, from my perspective, the less time I spend looking at intro screens and loading messages the better.

Above feedback provided by @PPartisan on Android Nanodegree Students slack group.

Improve comments UI/UX

Currently, it is way too simple and it's difficult to read in some scenarios. Also, add usernames with comments and ability to view user profile from the comments section.

Sort by upvote

Latest update intended to add post sorting by upvote has no effect on Nexus 7 tablet (2013) or Nexus 5 phone.

Default sort order appears to be the same and I don't see any sort options in settings.

After updating on both devices, I removed/reinstalled with the same result.

As an aside, it would be nice to be able to see the vote count for each listing in the summary view as shown in this screenshot from Feline for Product Hunt:

feline for phunt

More update?

Hello,is this app still in development?
Will you update this app in future?

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.