Code Monkey home page Code Monkey logo

de-classify's People

Contributors

kkong006 avatar npelh001 avatar pelhamnicholas avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

de-classify's Issues

Activity to view reviews posted by the user (Priority: High)

When a logged in user presses "My Reviews" in the nav drawer, it should open an activity that pulls up a list of reviews they're submitted. This should be fairly simple, as the ListView adapter can be reused.

As of right now, "My Reviews" is on the nav drawer, but pressing on it does nothing.

Persist reviews with realm (Priority: Low)

Multiple parts to this:
-On the ReadReviewActivity, add an option on the settings dropdown (3 vertical dots on top right corner)
called "Save". Clicking on it should save the review. Naturally, if a review is saved, the option should be called "Unsave". It doesn't need to be in the settings dropdown; the option just needs to be present somewhere noticeable and non-obstrusively.
-Add another tab in the nav drawer called "Saved Reviews", where uses can see their saved reviews offline

Massive search haul-over (Priority: High)

Instead of looking for exact matches, we will display a list of objects that match to this substring. But wait, you said object, what happened to professor?????

Search should have to capabilities to search for Professors/Classes, and there should be some sort of drop-down next to the EditText that allows one to do so. Upon searching, display a listview of results. If a professor is clicked, pull up their summary page. If a class is clicked, load all reviews of that class (NOTE: this is subject to change).

Edit: Picture of how the design should look (I used paint):
http://i.imgur.com/BAvkGcb.png

The drop-down that gives a list of what can be searched should have:
-Professor
-Class
-Subject

Pressing on a list element in this activity opens a new activity that has a list of all reviews associated with the entity.

Change the main listview to a SwipeRefreshLayout

I pushed some code that should give the basics of this. This require back-end work too, which I may not be able to do this week due to family/interview things.

Changes involved with the SwipeRefreshLayout (front-end):
-Instead of showing a progress dialog while refreshing, show the spinner of the SwipeRefreshLayout
-Reviews will be loaded in batches of 10, swipe down to the end to load more (back-end work required)
-Pulling up will make an API call to refresh data (again, back end work)

Instead of reloading everything, reviews will be added by prepending and appending to the initial loading of reviews. I have code for this here:
https://github.com/jchio001/prank-call

Refactoring galore

So now that I'm free from the shackles of school, I will not be satisfied with "code looks ok and stuff works good enough", and I will personally comb through all lines of code.

Major thing to overhaul is that I'm noticing for some listviews, the data the adapters is using is being stored in a brazillion arrays. This doesn't make any sense and it wastes processing power/time/memory, since you can just have the adapter take in an array of objects, and then pass it in the list of objects obtained from the Retrofit response vs parsing the list of objects into a bunch of arrays and passing that into the adapter. Don't need to think too far for adapters, it's pretty much plug in array of objects into adapter and stuff gets handled. No parsing needed.

That's the main thing I've noticed in terms of code cleanliness; find all occurrences the aforementioned adapter stuff and fix it. I've touched up an adapter somewhere, and you can use that as the basis.

tl;dr clean adapters; this ticket is free for anyone to pick up.

Actual Ads (Priority: medium)

Now that the app is getting closer to be actually finished, the time to swap out the sample ads with actual ads has come closer and closer. Generate these ads from the AdMobs dashboard and put the corresponding ID's in strings.xml. Don't need to actually swap them out yet though.

Actual On-boarding Screens (Priority: High)

Instead of doing logging in/registering in the same activity, clicking the text about registering should open a new activity, where the user can register an account. Once the user has successfully created an account, a new activity should open, where the user can enter their confirmation text PIN.

Search Professors Activity revamp (Priority: medium)

Small revamp to the SearchProfessors Activity so that it displays all corresponding suggestions in a ListView rather than an EditText dropdown. Instead of showing at most 5 corresponding suggestions, it'll show all professor that match the EditText input.

Should look like this:
http://i.imgur.com/bqTzV1t.png

Clicking on a professor should still pull up their summary. Same endpoint used.

MONETIZATION (eventually)

*wow, isn't ads good enough???????

So the ability to process credit cards needs to be handled, so that users can promote their own rage fueled rants for the world to see for $1. Initially, I thought about doing this with Paypal API, but then I looked at it and it looks like a monkey spilled a bunch of spaghetti-o's and I asked my brother about it who confirmed that it is poorly written.

Options I can think of right now:
-Paypal API
-Braintree API integrated with Paypal
-Stripe (may handle this? Don't know)

Please look into API's that can handle credit card transactions, and find the least worse option.

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.