Code Monkey home page Code Monkey logo

firstaide-android's Introduction

FirstAide

Introduction

FirstAide Android is an Android app developed in Java

Peace Corps is committed to providing a compassionate and supportive response to all Volunteers who have been sexually assaulted. To that end, the Peace Corps makes the following commitment to our Volunteers who are victims of sexual assault.

This project is to support the initiative by creating a mobile app that PCVs can readily have accessible to report or gain information on Peace Corps Safety and Security procedures.

alt text

You can learn more about the Systers organization, whose members work on the development of this app here and join our mailing list here

Getting Started

Download Android Studio and the required SDK tools or get the Eclipse ADT plugin

###Installation: Go to your terminal and execute this command

$ git clone https://github.com/systers/FirstAide-Android

Or download the ZIP file from above

###Opening and Running

  1. Launch android studio
  2. Click on File, then New and then Import Project Or from the welcome screen of android studio click on Import project. (If you wish to contribute, you can directly link to GitHub)
  3. Browse to the directory where you cloned (extracted the zip) FirstAide-Android App and take OK
  4. Let Android studio import the project, sync, run and build the Gradle.
  5. If Gradle finishes to build without error run the project by clicking on the play button on the tool bar.
  6. Wait for a few seconds and the app should start on your device(android phone or emulator)

Documentation

Latest documentation for FirstAide can be found here

Contributing

If you want to contribute to FirstAide-Android, subscribe to our systers-dev mailing list and shoot an introductory email. Pick an open issue from the issue list taged "free", claim it in the comments, fix the issue and send us a pull request. If you find an issue yourself you can report it, a community member will get back to you and approve the issue. Then you can fix it and submit a PR. Please go through our issue list first and make sure the issues you are reporting do not replicate the issues already reported. If you have issues on multiple pages, report them separately. Do not combine them into a single issue.

Avoid doing the following mistakes

  1. Fix a new issue and submit a PR without reporting and getting it approved at first.
  2. Fix an issue assigned to somebody else and submit a PR before the assignee does.
  3. Report issues which are previously reported by others. (Please check the closed issues too before you report an issue).
  4. Suggest completely new developments in the issue list. (Please use the mailing list for this kind of suggestions. Use issue list to suggest bugs/features in the already implemented sections.)

Best Practices

  1. Issue Reporting Best Practices
  2. PR Best Practices

Troubleshooting/Issues

If there are any problems encountered when installing the IDE, you may want to check and make sure you have a JDK and JRE installed. If you experience trouble building or running the project, you may not have the necessary build tools, which you can download directly through the IDE. If the app does not run on the emulator, it may be that the emulator is too slow, and you should look into installing one from an outside source.

If there are any other questions or concerns, you can either send a mail to the systers-dev mailing list adding the tag [FirstAide-Android] to the title or join #firstaide channel in our slack group. To get an invitation to the slack group click here.

firstaide-android's People

Contributors

aaskashah avatar abs51295 avatar akankshabodhankar avatar ashu-dadhich avatar buddhiprabha avatar calistus avatar chamika avatar chhavip avatar chizoba avatar choquette33 avatar codingblazer avatar farbodsz avatar free4murad avatar getsanjeev avatar harshitagupta30 avatar hereismari avatar himanshus01 avatar hkasera avatar ivan-claire avatar jacqueline8711 avatar janiceilene avatar kisaacs avatar minervapanda avatar pandilladivya avatar reverie-ss avatar rohands avatar rosariorobinson avatar sandarumk avatar yatna avatar yogeshbalan 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

Watchers

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

firstaide-android's Issues

Notify user if no comrade is registered.

If no comrade is registered i.e. all the 6 fields are blank, and the users clicks help me, a dialog box displays the message " This msg has been send to all registered comrades" . However no msg is sent to anybody, since there were no comrades registered and the user is unaware of this.

Hence it would be better if in such a case user is notified that no comrades are registered , hence no message was sent and that he should add comrades.

It would also be better if we displayed the exact number of comrades to whom msg has been sent e.g " This msg has been send to 3 registered comrades" instead of displaying "this msg has been send to all registered comrades".

Improvement in GUI

Why are we not having Action Bar, menu here?
Instead of these, only simple Text is written at top of every activity with no Menu Options.

Will addition on these things be good?

Using beeps and sounds in Circle of Trust .

We can make the application more responsive by adding sound effects at appropriate places.
E.g. the app will generate a alert beep if message sending fails after pressing help me. Similarly there can be a success beep if messages are sent successfully .
This will help the user in case he/she forgets to see the toast displayed after pressing Help Me button.

Message sending fails if an empty comrade is encountered.

If a comrade contact number is left empty, then message sending is failed for all comrades after that comrade. Example if comrade 1's contact number is left empty as shown:

screenshot_2016-02-11-03-18-32

Then message is not send for comrades placed after comrade1 i.e 2,3,4,5,6 and failure message is dispalyed as shown.
screenshot_2016-02-11-03-17-36

Similarly if comrade 3 is empty and rest are filled, then message is only sent to comrade 1,2 and fails for comrade 4,5,6. In this case also a failure message is displyed.

I would like to fix this issue .

Option for phone call to the comrades

Along with the select request message phone call also can be made to the comrades
At a time six phone calls cannot be made so,
The phone calls can be made in order like comrade1 then comrade2 so on...(if one comrade doesn't lift then next comrade so on.....)

Comrades Phone Ring when Receive SMS

Idea : Suppose I press 'Help Me' then SMS sends to my comrades list.
Nowadays many person ignores SMS thinking of that they will read it later(Or doesn't give much effort to read a SMS).

Solution : What about if Comrade will have PCSA-Android app install in his/her phone, a Ring can be generated to notify user on receiving SMS sended by PCSA-Android.

Option icon not clickable

The option icon here on the left of the page heading is useless, are there any options which are needed to be added by making it clickable?

screenshot from 2016-03-01 02 16 30

ContactOtherStaff needs to be updated as in Mockup

other
Current Implementation
download 1
As in mockup

Updates required :

  1. Change button borders to black
  2. Add a line divider below "Get Help Now" and above "Other Staff and ... "
  3. Clean up the UI as in Mockup
  4. Maybe have another arrow pointing to the left which will lead us back to the ContactPostStaffActivity

Moving constant values to a static class

Over in the CircleOfTrustFragment.java, I noticed that we have used harcoded strings for switch case.

I suggest we should put these constant values in a static class. This way we can reuse the same information later as well.

Let me know if this is a welcome change. If yes, I will send a pull request for the same.

Thanks,
Harshita

Launcher size is small

The launcher image of the application seems rather small in size when compared to the other apps. I would like to create a new launcher icon using Photoshop or equivalent tools.

Comrade description

Just a suggestion :)
It would be helpful if comrade name is also stored with the number , and on clicking on any comrade a pop up window shows the description of comrade

Make the 'Learn More' link active

There is an option to contact Office of General Inspector in the Other Staff option. On this page, there is a link given to learn more.

screenshot_2016-02-14-23-28-58

The link is currently inactive.The link would serve useful if clicking on it opens up the destination page on our web browser, so that the users can get more information if they wish to. There will be no UI added and no existing UI will be changed, just an enhancement added.

If Permission Denied for SMS

When Application is asking for permission, if we denied it now or maybe set to 'Always Deny' earlier. Then it didn't perform any check and simply show "Message Sent" without awareness of user.

Circle of Trust Activity UI can be more informative

I'm not sure if this is required but it would be great to have something like

comrades

By doing this, it would give a clear picture about the registered comrades. Also, on editing the comrades, the registered numbers are displayed right there.
Also, on editing the comrades, the user needs to click the back button to perform any further changes.

I've already implemented the workaround for the above mentioned issues. I'll submit a PR as soon as this is approved as a valid issue.

Circle of Trust introduction UI issues

In the 2nd page, text color is not matching with the background which makes unable to read in small screens.
Spelling error in "Prees" -> "Press"
screenshot_2016-02-29-21-20-22

In the last page, Picture has white background
screenshot_2016-02-29-21-14-25

Save Location

Under Reporting Process/Contact Staff to Report changing location just changes contact info locally for an activity. However, Are we going to change location frequently? If not will it be good practices to save location in Shared Preferences.

Missing source code comments

As per the coding section in the systers development process page, the source code needs to have proper comments such as "what does function do, what are the parameters, what does it return". But the current source code doesn't have that kind of commenting in some places.

Shall I add the comments in necessary places?

Add comrade numbers by selecting from contacts

Improvement in adding comrade numbers

Now comrade numbers have to enter manually by entering the phone number.
This is not user-friendly design and user might enter an incorrect number.

I think it's better to give the feature to select a phone number from the user contacts list.
Then the default icons for the circle of trust icons can be replaced with the contact picture. If a contact picture is not found, it can fill with the default icon.

We have to add new permission (android.permission.READ_CONTACTS) to read contact lists.

No Comrade

Let's say Comrade list is Empty, then on clicking Help Me. It's simply showing Message sent instead of showing No Comrade Contact is Added

Hardcoded dimensions, colors and integers in layouts.

As per android best practices hardcoding must be avoided. All the dimensions must be placed in dimens.xml, colors in colors.xml and integers in integer.xml and strings in strings.xml.

Currently strings have been placed in strings.xml , we need to do the same for dimensions, colors and integers.

Validating the Comrade Numbers

The comrade numbers is accepting any length of digits
The phone number type changes according to country but a basic validation can be implemented
Willing to work on this

Incorrect tags in ImageViews and ImageButtons

In the fragment_circle_of_trust.xml file contains invalid tags for ImageViews and ImageButtons like
android:text, android:textColor, android:textSize.

These are non usable tags for image specific views. Shall I remove them and refactor the layout files?

Add location details to Come get me if possible

In the circle of trust, there is an option "Come get me" which sends a SMS message saying
"Come and get me. I need help getting home Safely. Call ASAP to get my Location.Sent through First Aide's Circle of Trust."

This can be improved by adding location latitude and longitude by acquiring via GPS. If the user already enabled GPS and if the device can acquire accurate location it can be added to the SMS. Otherwise, the original SMS message can be sent saying "Call ASAP to get my Location".

It's possible to add Google maps URL so that user can open Google maps by tapping the SMS message link

Implementation of "Confidentiality", "Safety Resources" and "Helping Others

@Buddhiprabha @sandarumk @rosariorobinson @shruti-gupta
I would like to implement the following parts of the applications which are yet to be done as specified in the mockup

  1. Safety Resources (Pg. 10)
  2. Confidentiality (Pg 11)
  3. Helping (Pg 12).

I am very much interested in implementing these. And i would like to present you the UI i am going to make in advance if you think it would be more helpful. Waiting for your sugggestions
Thanking you
Chetan mann

General Styling Overhaul to look follow Original Design Documents

Change the style to be reflective of the original design found in this document. https://drive.google.com/open?id=0B8cm8EBZg0GaZlNSdFpxeXJWelU (Mobile version starts at 0:58 of this video.

  • Change color codes to the following:
    Main green color: 05D197
    Dark accent: 2DB58F
    Darker accent: 02845F
    White, for text: FFFFFF
    Main secondary yellow color: FFD590
    Dark accent: FFC25C
  • Change font to Avenir Next, with "regular" as the main weight for content while "bold" used for buttons. (An alternative is Lato if we can't find a free one (https://www.google.com/fonts/specimen/Lato)
  • Create opening screen with the following design:
    image
  • Add First Aide Title home page, (And generally add a title and subtitle to each screen as shown)
    image
  • Adjust border radius on buttons to make them more square. Like this:
    image
  • Adjust Hamburger appearance:
    image
  • Add forward and back buttons to header. Like this:
    image
  • Create Slide-in side-bar menu that looks like this:
    image

With content like this, in this order:
image

  • Change order of buttons to the following on home page:
  • Get help now
  • Circle of trust
  • Safety Tools
  • Support Service
  • Sexual Assault Awareness
  • Policies and Glossary

Issues in Adding Comrade Numbers Interface

There is a white strap at the bottom of the user interface.
See the screenshot
screenshot_2016-02-10-00-07-43

It's better to go back once the user pressed OK button.

Shall I start fixing these two issues?

Widget

In case of any emergency, instead of browsing application in launcher then opening it going to specific activity and pressing Button "Help Me", What about a widget, just a single click for such cases.

This may be added to lock screen to make it even more faster.

Help Me dialog box not implemented as in mockup.pdf

In mockup.pdf :
screenshot from 2016-03-01 04 08 05

Actual :
screenshot_2016-03-01-04-05-26

Here are the changes I propose to do:

  1. Remove the cancel button, since it is of no use , dialog box can be canceled by clicking anywhere in the background.
  2. Remove the heading "Select a request" , as options are self explanatory.
  3. Remove the radio buttons, since the text is itself clickable and radio buttons serve on real purpose in this case.
  4. Insert dividers between options as in mockup.pdf.

Rearranging Comrade Numbers

Screenshot

Here, It will look nice if on submitting, empty gaps in middle show be ignored before saving.

Screenshot

And it look like this on opening again

Add intro screens to Reporting Process.

Intro screen can be added for Reporting Process same way as they are for Circle of Trust. These screens will appear to user the first time they click the option .

ViewPager

Implementing Pager under Reporting Process/Contact Staff to Report instead of simply clicking on small TextView

ContactPostStaff needs to be updated as in Mockup

amqovwo7i0oje7nnlvbnomjmm_k3cie1tljhglaos0mu 1
Current Implementation
download

As in Mockup

Updates required :

  1. Button borders should change from white to black
  2. Line divider below Get Help Now and above Post Staff
  3. Link to "ContactOtherStaff" is shown as arrow next to one of the buttons in mockup while it's in the bottom in the current implementation

Test Missing

Currently there are no tests.
What about adding UI Espresso based test?

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.