kkong006 / de-classify Goto Github PK
View Code? Open in Web Editor NEWAn Android application for rating professors.
License: Apache License 2.0
An Android application for rating professors.
License: Apache License 2.0
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.
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
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.
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
I will still serve as the role of the guy telling people what to do.
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.
MSPaint-y picture of what I want:
Note: Because there's not that many elements, a listview is not needed and you can just hardcode each element. Also because each (future) settings element will look different from each other and won't follow an easily recyclable pattern, hardcoding's probably better.
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.
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.
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.
*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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.