Code Monkey home page Code Monkey logo

boilerfaves's Introduction

In Honor of Lucas Shanker


BoilerFaves

An android app that sends you a notifications when food you like is available in the Purdue dining courts.

boilerfaves's People

Contributors

lshanker avatar crosenblatt avatar yatharthrawat avatar simonlangowski avatar hughesjeff avatar jpitlor avatar

Stargazers

Caleb Smith avatar Jonathan Bayless avatar Emanuel Pituch avatar  avatar Kevin Taha avatar  avatar Marcel Goodwin avatar

Watchers

James Cloos avatar  avatar  avatar  avatar  avatar  avatar  avatar

boilerfaves's Issues

Background Service

Make a service that runs in the background to schedule api calls and notifications on a daily basis

Food Select List UI

Make some way for users to tell

  1. That they've successfully added a food to their favorites list
  2. That a food on the select screen is already in their favorites list

Could be as simple as a toast

Text Alignment

Center (vertically) the meal names on the main card with the dining court icons to their right

Menus

When you see that your faves are available, sometimes you want to check the rest of the food that a dining court has. It would be nice if you could see all the menus within BoilerFaves. We could make our own UI for displaying the data, or we could use a WebView to show the dining website (probably should start with the later since their website is decent)

App Colors and Icon

Create a launcher icon for the app and set a matching color scheme (for things like the toolbar)

Select food UI

-Get rid of the cards (or make them not look like cards) on the select food activity. The food items should just be inside a RecyclerView.
-A check should still appear when a food is clicked
-Switch to a SortedList in the adapter

Food schedule

Let a user see when their faves will be available in the future (probably up to two weeks). This is already something the Purdue dining app does... is there an api for it somewhere/a way we can copy their data? If not, it may be a good idea to have our server compile schedules for each food. This would take the stress of searching through two weeks of menus off the client. The information could be displayed when the user taps a food card on the main activity (the card expands) and shown by default when the food is not currently available.

Filtering

Let the user filter their faves by dining court and meal:
-Add a collapsible area at the top of the main activity with filter buttons
-Make it clear when a filter is applied
-Add a "clear filters" button
-Maybe add an option to automatically filter by meal time during the day (would go in preferences activity)

Main Page Card Sort

Modify the main card adapter so unavailable foods are sent to the bottom of the list on the main page

Make search bar focus

On the select food activity, have the search bar be expanded when the user enters the activity

Legacy Icon

Make a nicer launcher icon for older phones that doesn't have a white border around the edges

Select food scrolling

Make the select food recyclerview automatically scroll to the top when the user starts typing in the search field on the select food page

Analytics

Add Google analytics to the app so we can keep track of data like which foods are favorited the most

Picasso

Add Picasso for loading images

Loading Bar

Add a loading bar on the main page and the select food page while the api call is running

Notification Channels

Add notification channels for breakfast, lunch, and dinner notifications. Make sure to delete the old channel

Preferences Activity

We should change the notification activity to be a general app preferences activity that we can add more settings to later if need be.
-Switch to Android Preference stuff for the notification activity UI and implementation
-Add a "provide feedback or report a bug" button (be sure to report device specifications)
-Add an "about us" text blurb at the bottom of the page with a link to the sigapp website and this github

Meal not served bug

The app said that a food was available during a meal that the dining court wasn't open for. Maybe the faves aren't getting checked if no menu is returned?

Add Error Checking to Prevent Crashes When the API Changes

We had an issue with the app crashing after Purdue updated the API. We should add error checking for this to prevent awful user experience like we had. We didn't even know the issue existed until someone reported it.

java.lang.RuntimeException: 
  at android.os.AsyncTask$3.done (AsyncTask.java:325)
  at java.util.concurrent.FutureTask.finishCompletion (FutureTask.java:354)
  at java.util.concurrent.FutureTask.setException (FutureTask.java:223)
  at java.util.concurrent.FutureTask.run (FutureTask.java:242)
  at android.os.AsyncTask$SerialExecutor$1.run (AsyncTask.java:243)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1133)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
  at java.lang.Thread.run (Thread.java:761)
Caused by: java.lang.NullPointerException: 
  at com.lshan.boilerfaves.Models.DiningCourtMenu.<init> (DiningCourtMenu.java:26)
  at com.lshan.boilerfaves.Networking.MenuRetrievalTask.doInBackground (MenuRetrievalTask.java:100)
  at com.lshan.boilerfaves.Networking.MenuRetrievalTask.doInBackground (MenuRetrievalTask.java:34)
  at android.os.AsyncTask$2.call (AsyncTask.java:305)
  at java.util.concurrent.FutureTask.run (FutureTask.java:237)

Notifications Not Sent Bug

Someone told me notifications stopped sending after they'd been using the app for a while. Could be an issue with the boot receiver or alarms?

Menu retrieval null pointer bug

Google play console is telling us our app crashes as a result of this bug:

Null pointer exception
at com.lshan.boilerfaves.Networking.MenuRetrievalTask.onPostExecute (MenuRetrievalTask.java:237)
at com.lshan.boilerfaves.Networking.MenuRetrievalTask.onPostExecute (MenuRetrievalTask.java:51)

Food Server

Make a server that compiles a list of all of the foods the dining courts serve.

Notification Text Bug

If a notification is too long it gets elipsized and you can't tap the notification to see the rest of the text. We should change it so the notification can be expanded.

Spring Cleaning

I want to clean things up so we can remember how we did everything next semester:
-Add documentation (variables, methods, classes)
-Make sure things are well named
-Refactor MenuRetrieval task and MainActivity (they are currently messy)

Crash in select food activity

After opening the select food activity, the progress bar was displayed for a few seconds before the app crashed. Not sure what caused this and was unable to replicate

Notification bug

Haven't been able to reproduce this myself, but a friend claims that the lunch notification was sent even when she had the notification turned off.

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.