Git Product home page Git Product logo

malaria-app-android's People

Contributors

ahmedsabie avatar ankita-kalra avatar anubhakushwaha avatar ashu-dadhich avatar chhavip avatar chimdi2000 avatar choquette33 avatar codingblazer avatar geekanamika avatar himanshus01 avatar jaiagarwal avatar janiceilene avatar m-murad avatar mahikaw avatar neerajrao avatar niksj avatar robillo avatar rosariorobinson avatar sridharjajoo avatar yatna avatar yatri1609 avatar yvsssantosh 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

Watchers

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

malaria-app-android's Issues

Better code packaging

For better understanding of code, it is always advisable to package classes, receivers, services, ui-widgets, fragments, activities etc separately.
According to current set of classes, the code can be divided into following packages

  • Receiver
  • utils
  • data
  • fragments
  • activities
  • ui
  • model
  • volley
  • service

This will ensure new developers to understand and debug code easily

Widget for Pill Tracker

Instead of opening the app for click on the check or cross button, we can have a widget which has tick, cross and edit button.

The functionalities can be like-

  1. Tick- Medicine Taken
  2. Cross- Medicine Not Taken
  3. Edit- Opens up the specific Day Analytic Page of the app, where we can edit the entry.

Arrival Date should not be before departure Date #53

In case user enters the arrival date as of before the departure date then the tripIndicatorPackingActivity shows setNoOfDrugs to be negative,user should be given an alert as soon as he enters wrong date.Is it a valid issue? Can I fix it?

Improving Trip Reminder Notifications

The reminder which comes in notification has view checklist button currently.

Improvements which can be done-

  1. Adding Edit Trip Button with View Checklist.
  2. Edit Trip opens the Trip Indicator Filled form where user can change details.

SecondAnalyticFragment

There are a lot of error and some make the app crashed.I forked it and fix some bug.
The main error occurs in the getMonth()
Calendar.getInstance().get(Calendar.YEAR) return the value of (month - 1), not the value of month,so there will be a error when we put the value to "month" array,the app will crash.
And I'm confused why it name the value of month "date",I fixed it,too.
Here is the url of my repo
https://github.com/Yasic/malaria-android
and here is the file of SecondAnalyticFragment
https://github.com/Yasic/malaria-android/blob/master/malaria-app-android/src/com/peacecorps/malaria/SecondAnalyticFragment.java

Bug in the RapidFireGame Timer

While playing the quiz if we press the exit button the timer is stopped.A dialog box opens up which has two options OK and CANCEL. When the CANCEL button is pressed the game is resumed but the timer doesn't resume from the original time when it was stopped.
@chhavip Can i work on the issue?

Improving and Proper Updating of GraphView

Many grids are made on the background if entered data is scarce. Needs to be taken care of. Also when single data point is there then a constant line should appear.

Smooth updating of graphview is required. Editing data in the Day Analytic Fragment Activity, and returning to second analytic fragment activity does not update the graph view.

Notification should be set to autoCancel

Notification Builder should be set to autoCancel for the convenience of the user. Though it just requires one line editing,it maybe be irritating for the user to swipe and remove it even though he has already clicked it.

Export to Android studio

As the project still exists in Eclipse ADT and support for same is fast receading, it is beneficial if the project is exported to Android Studio.

About "gsoc 2016" for Systers

Are only boys selected for gsoc projects in Systers organization ?? because in past only girls are selected in various projects

Adding Welcome / Intro screens in malaria app

Add Intro screens in the malaria app as a great way of showcasing the major features of the app.

The user can navigate through each slide using swipe gesture or using the next button.

2iuvk

Adding feature to view pending reminder.

Currently the app provides no feature to the user, to view the upcoming trip reminder. I intend to add a view button on the TripIndicatorFragment, clicking on which gives the user, all information about the upcoming reminder. If no reminder is pending, then it will display a "No reminder set" message.

Widget for Trip Reminder

A widget with features can be created-

  1. Shows the Date,Time and Destination of Trip
  2. Edit button opens Trip Reminder form of Malaria App and user can edit entries .

Logical Errors

1.After a queried date earlier than the first time taken entered/edited through DayAnalyticFragment ,all the other dates coming after it their adherence Level should be changed accordingly.

a)When queried date < first Time
- the interval changes for all drug taken dates
- takenCount changes for the period

b)When queried date >=first Time&& queried date<=current
- takenCount of all the dates lying after queried Date changes

2.When current day skipped and later any previous date updated from DayAnalyticFragment Activity then MedicineLastTaken inFirstAnayticFragment remains blank instead of being updated.

@ankita-kalra or anyone Please correct me if I am wrong because according to current state of project and my understanding the adherence Rate is not evaluated as per the cases above.

Adding Intro Screens to the app

Intro screens provides an introduction and gives the users information about the features of the application, when the application is opened for the very first time. I intend to add intro screens using the paolorotolo:appintro library, which creates intro screens with minimum amount of code.

Bug in RapidFire Game

When someone chooses an answer from the list of 3 options then other buttons are still active . So the user will be able to click all the other options as well which creates many errors . Choosing options multiple times leads to skipping of subsequent questions.
@chhavip @ankita-kalra @yatna Can I work on it?

Shifting the project to gradle build platform

The project needs to be shifted to a gradle build platform to ensure a greater stability and easy of developing. Gradle enjoys numerous benefits over the traditional build system.

Add actions in notification itself

It would be much better if we add "Not taken", "taken", and snooze button in the notification itself. As of now it is showing in dialog in activity.

Yes , I would like to work on this.

The Alarm stops as soon as the notification bar is clicked

As soon as the user reaches the TripAlarmActivity the alarm should stop as it may irritate the user.
We just need to stop the ringtone as soon as we reach the TripAlarmActivity. I have implemented this as well , can I send a PR for this?

Removal of unneccesary drawables

Copies of the same drawable has been maintained who just vary with respect to their sizes,color and opacity. These all can be implemented dynamically in their respective activities showing their current status via following methods invoked on the buttons after setting their background:

a)setAlpha(float value)
b)setHighlightColor(int color)
c)setLayoutParams(LayoutParams param)

This highly reduces the number of copies made , for instance for all the buttons showing active and inactive state and many others like checked or not checked,etc.

Bug in setNumDrugs() function

If the arrival date of trip is set before the departure date, setNumDrugs() gave a negative result which means number of drugs needed for the trip are -ve. This is logically incorrect because the arrival date cannot ever be before the departure date. Hence, a check mechanism needs to be added to check that the arrival date is not before the departure date.

Adding UI testing of current app

@ankita-kalra The current project only includes DB test,it's equally important to check the proper implementation of the UI components thereby used using Espresso in the different activities.Can I start working upon this?

Correct alignment of months name

Currently the months' names displayed in the last tab of Malaria Home Screen tend to overflow to next line in case of lack of space. Adjust name of month and progress bar as to fit in a single line or name of month in one line and progress in the next.

Set Up Screen Logical Error

I just noticed a logical error which I would try to describe.
If the user opens the app for the first time (fresh installation) and rotates his/her phone while at set up screen, the user is taken to the MainActivity without providing details. This is caused by these lines of code which i have corrected:
Logical error

    @Override

   protected void onResume() {

    super.onResume();

    if (mSharedPreferenceStore.mPrefsStore.getBoolean("com.peacecorps.malaria.isFirstRun",
            true)) {  // false sould be passed instead of true

             mSharedPreferenceStore.mEditor.putBoolean(

                "com.peacecorps.malaria.hasUserSetPreference", true).commit();


    }

}

  @Override

protected void onPause() {

    super.onPause();
    if (mSharedPreferenceStore.mPrefsStore.getBoolean("com.peacecorps.malaria.isFirstRun",
            true)) { // false should be passed instead of true
        mSharedPreferenceStore.mEditor.putBoolean(
                "com.peacecorps.malaria.hasUserSetPreference", true).commit();
    }

}

Also to make sure that the user is not taken to set up screen, this line of code should be added in

  saveUserTimeAndMedicationPrefs()

code:

    mSharedPreferenceStore.mEditor.putBoolean(
            "com.peacecorps.malaria.hasUserSetPreference", true).commit();

I have corrected them already. @ankita-kalra @rosariorobinson
Should I go ahead and send a pull request?

Add badges to the 3rd category in the Achievement Room

Currently in the Achievement Room, only the first 2 categories display badges based on their associated score. This has to be extended for the third category as well . The third category should be based on the point accumulated by planning trips using the app's trip planner facility. Any ideas on how to distribute points and which badges to keep are welcome, but the basic philosophy behind any idea should be to promote the users to use the app's trip planner.

Using Realm instead of Sqlite Database

I came across Realm a few weeks back,it is great with respect to database management as it highly optimizes the app. Using realm provides a better user experience and renders our app faster.

Some of the comparisons can be easily witnessed below.
desk1
desk2
desk3

Do the mentors agree to this and should I start working upon this?
@ankita-kalra Please let e know as soon as possible so that I can start with .

Logical Errors

1.After a queried date earlier than the first time taken entered,all the other dates coming after it their adherence Level should be changed accordingly.
2.When current day skipped and later any previous date updated from DayAnalyticFragment Activity then MedicineLastTaken inFirstAnayticFragment remains blank instead of being updated.

No Touch Feedback in Buttons and EditText

A certain touch feedback should be provided in android app for assuring user that they are engaging with that particular UI element. A better UX approach will suggest to provide touch feedback whether user hits a Button, EditText etc. The feedback can be in the following form :-

  • Color change of button/editText drawable
  • Popup of button (A slight increase in size of drawable with little increase in alpha)

Update ReadME

Hi @ankita-kalra ... @rosariorobinson and I are trying to prepare for GHC Open source day and we need help with the ReadME. Can you help with updating the ReadME with more specifics on setup? The goal is to environment ready on a USB in case there are WiFi issues.

Is it possible to have README updated by Friday or Saturday (10/14 or 10/15 respectively) at the latest? We really need your help.

Please use this issue to update us on this task.

App crash on SecondAnalyticalFragmentActivity

When the current date is between months January to April, the application crashes on the SecondAnalyticalFragmentActivity. When the current date is between month May to November the application works fine. When the month is December the app does not crash on the SecondAnalyticalFragmentActivity but crashes on clicking the December progress bar in the ThirdAnalyticalFragmentActivity.java .

Hardcoding the string in string.xml file.

There are many values / string which are hardcoded in the .xml file. It should be stored in the single file so that it can be accessed to the same text from anywhere in the app.
I would send the PR soon when i get assigned.

@MeepyMay Can i work on this?

Date format

Date format in the app should be MM/DD/YYYY.

Unused Resource in the application

These resources can be removed or replaced if used in the application in a hard coded way
Following strings from strings.xml are not used and can be removed
app_homescreen_name
second_analytic_screen_title
cash_label
medication_label
remind_label
location_spinner_label
medication_spinner_label
items_spinner_label
user_medicine_settings_activity_drug_array
location_array
item_array

Following colors from colors.xml can be removed
view_pager_indicator_text_color
user_medicine_second_text_color
symptom_color_selected
reaction_color_selected
static_text_color
journal_entry_listitem_text_color
note_text_disabled
blue
navy
sky
lightgray02
dark
red
lighter_green

Following resource files are not using
/malaria-app-android/res/drawable/accept_medi_normal_tiny.jpg
/malaria-app-android/res/drawable/add_b.png
/malaria-app-android/res/drawable/appicon.png
/malaria-app-android/res/drawable/appicon_small.png
/malaria-app-android/res/drawable/cal_left_arrow_on.png
/malaria-app-android/res/drawable/cal_right_arrow_on.png
/malaria-app-android/res/drawable/calendar.9.png
/malaria-app-android/res/drawable/calendar_centralheader.png
/malaria-app-android/res/drawable/calendar_days.png
/malaria-app-android/res/drawable/calendar_header.svg
/malaria-app-android/res/drawable/calendar_tile.png
/malaria-app-android/res/drawable/calendar_top_header.png
/malaria-app-android/res/drawable/calendar_view.png
/malaria-app-android/res/drawable/settings_large.png
/malaria-app-android/res/drawable/topbar.png
/malaria-app-android/res/drawable/trip_spinner.png
/malaria-app-android/res/drawable/trip_spinner_arr.png
/malaria-app-android/res/drawable/trip_spinner_bg.xml
/malaria-app-android/res/drawable/trip_spinner_dte.png
/malaria-app-android/res/drawable/delete_b.png
/malaria-app-android/res/drawable-hdpi/ic_launcher.png
/malaria-app-android/res/drawable/icon.png
/malaria-app-android/res/drawable/peacecorps_small.png
/malaria-app-android/res/drawable/placeholder_analytic_text.png
/malaria-app-android/res/drawable/reject_medi_normal_tiny.jpg
/malaria-app-android/res/drawable-hdpi/bg.png

/malaria-app-android/res/layout/screeen_gridcell_red.xml
/malaria-app-android/res/layout/screen_gridcell_green.xml
/malaria-app-android/res/layout/fragment_welcome_dummy.xml

Gradle problem with .svg files

The latest gradle plugin is not recognizing some of the image formats that used to work before.

malaria-app-android/app/src/main/res/drawable/calendar_header.svg: Error: The file name must end with .xml or .png

Solution to this could be

  • we can change the version in build.gradle by switching back to v1.2.2 which supports .svg files.

  • To put them in src/main/res/raw or src/main/assets folder and load them appropriately (via an external library).

The current accepted solution is to revert back to an archaic version of the Gradle plugin, which is counterproductive in most cases.

Add a Splash screen at the beginning of the app

@ankita-kalra Can I add a splash screen at the beginning of the app to give a brief view of the app to the user. I have designed a demo splash screen which will be availed to the user for about 5 seconds.
screenshot_2016-03-30-16-00-56

Animation View has also been included which zooms in and zooms out the image as well.

Condense all similar fragment layouts into one.

For the fragment layouts related to the info-section, the text views can be made dynamic, by sending input from the Activity.class' side.
I would like to remove -

  1. effectiveness_fragment.xml
  2. peace_corps_policy_fragment.xml
  3. side_effects_npcv_fragment.xml
  4. side_effects_pcv_fragment.xml
  5. side_effects_percentage_fragment.xml
  6. volunteer_adherence_fragment.xml

I will add a new xml file - info_fragments.xml
and add similar views. I will create another class, which will take care of all the backend activity of sending and receiving the right data.

Testing Calendar and Modification of Calendar Header

Grid Cell Adapter is used for making the Calendar in the Third Analytic Fragment Activity. Sometimes it takes time to load the calendar, because each grid cell is initialized to make the calendar. This can be compared against a custom calendar view library or modification of existing Android Calendar API can be done, to decrease the processing load.

Currently image is used for showing the weekdays on header of calendar. It is not a vector image, so not adapts to the size.

Ways it can be taken care of-

  1. Creating grid cells for week days.
  2. Using custom calendar view library.

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.