I was asked to work on a police security alert system as a school project. The app notifies a user about security info and lets users (citizens of a place) notify police agencies around them. I was able to achieve this with the help of Google Cloud Messaging. I initially thought that the only thing needed from the user was for the app_id to be saved on the server for notification. But, I am having a second thought. Do I need the user to register in this kind of app even though I am doing nothing with the info?
Cons for Registering
Registering and logging in is a pain, so for usability purposes, don’t do it if you don’t have to. In your case, I can see a major disadvantage if a citizen has to log in to report something to the police: in the citizen’s excitement, s/he can’t get the password right, which delays or even prevents the police from getting critical information. That could conceivably have fatal consequences. You may also want to consider that sometimes citizens want to provide an anonymous tip to the police.
Pros for Registering
However, you have to weigh those costs to the citizens against the potential benefits registration could provide:
It allows the user to set options/defaults on getting or sending reports that can apply to all the user’s devices.
It makes it easier for police to contact a reporting citizen for follow-up information.
It makes it easier for police to track down the originator of an illegal report (e.g., bomb scare or false accusation).
It makes it harder for someone to spoof the citizen (e.g., an enemy of the citizen uses the citizen’s smart phone to send an illegal report in order to get the citizen in trouble).
Engineering the Solution
Consider that the above issues may be addressed through something other than registration. Maybe the app ID is enough for police to contact a reporting citizen for follow-up (through an instant messaging feature of the app). Maybe App ID and IP address, along with some technical legwork, is enough track down an illegal reporter when necessary. Maybe the phone’s lock is sufficient to thwart spoofing. Maybe you can provide an optional field for reporting citizens to enter a phone number for police to use for follow-up. Maybe it’s adequate to set the user’s options client-side (especially if there are only a couple options shared across devices).
A Need for User Research
I don’t know how the trade-offs shake out. Probably nobody does on this forum. But you can figure it out by researching your users. Observation and interviews of your classmates will give you a sense of how much a burden it is to register and how securely they keep their devices.
Most important is to research your other user group: the police. Contact you town or campus police, explain the project, and they’ll probably provide 30-60 minutes of an officer’s time to discuss the issues. I wouldn’t directly ask them, “Should citizens register?” The police will probably say “yes” because it’s no cost to them, and potentially a benefit to them. Instead, ask questions about the issues above and determine how big each issue is compared to the citizens’ cost of registering.
I think reporting crimes is a sensitive subject, and you might find people unwilling to report something if their name is directly attached to it.
I think having the option to add your info is a good idea, but I would make that client-side and, as best you can, let the user known what you're doing with that info (i.e., nothing; storing it on the device and that's it).
As far as tracking false reports, it would be hard to accomplish if you also need it to be anonymous, but logging the IP might be sufficient to provide reasonable anonymity and some accountability.
In my opinion, registration should absolutely not be required. You wouldn't ignore a bomb threat because it came from a payphone.