I'm new to github, and I'm amazed at the community you guys have here. Though I have a little technical know-how, I would say I'm a beginner to coding. I have the following project that I would like to develop.
In my community, there are several volunteer groups on the ground who engage the homeless on a weekly basis. However, because these groups may not have much interaction with one another, little information is shared, and inefficiencies can occur. Hence, I thought of developing a map that shows each homeless person.
For reference, something similar to this pokemon go map: https://sgpokemap.com/pokestop.html
So, each homeless person would have a location tag icon.
Some features I can think of would include the following:
1) It should either be on web browser (a website) or an app. I'm not too sure which is easier, could anyone recommend?
2) When the volunteer teams engage with a certain homeless individual, they would be able to tap on the location tag on the map, and add an 'update', consisting of any key information they deem necessary. Anyone else who taps on any location tag should also be able to see a 'update log' of the past updates made by volunteers, as well as some basic description about the individual.
3) When a team engages a homeless individual that night, and enters an update, the location tag resets its colour to green. After 3 days of no updates (which means 3 days of no street teams engaging the individual), the location tag automatically turns yellow. After 7 days of no updates, it automatically turns red. This feature would allow the volunteers to be able to see on the map, which are the individuals who hvn't been checked on for a long while, and then prioritise their time and resources accordingly.
4) The site/app should have a user login feature, so that only authorised personnel are able to access it.
5) Users of the app should also be able to add new 'entries' to the map, meaning they should be able to add new homeless individuals that they've encountered to the map. Ideally, the site/app should be able to use the user's GPS location to pinpoint the location that the location tag should be at, although there should also be an option for the user to manually place it.
6) The system should also have a feature where it alerts the admin (me) of all new entries as well as location tags that have turned red (through a separate log, for example).
I know that I've listed quite alot, and maybe I'm way out of my league here. But I'm willing to try, so could anyone suggest which programming languages I should learn in order to develop this project, and any other tips you might have?
I believe that asking about the programming language is putting the cart before the horse. You need to flesh out the architecture (break this down into the big chunks) and determine your user platform or toolkit options. Doing so might constrain your language or platform choices.
First, you need a database. This tracks your valid users and their authentication data. It tracks the subjects, their data, GPS location, status, etc.
Second, you need a server / backend. Input/output to the frontend(s) come from here, interacting with the database. Admin stuff as well. The server iterates over the subject "update status" to maintain the color state of the indicators.
Thirdly, you need your frontend(s). You specify shared access ("Anyone else who taps on ...") so this is pretty much "real time": changes made by one user are to be visible by another user as soon as they interact or refresh.
You're talking mapping, so you want to look at mapping toolkits, e.g. ESRI. This toolkit needs to handle the fiddly bits like reading device GPS. You need local off-line storage and delayed upload when your users are talking to a subject under a bridge which interferes with wi-fi.
You either end up writing multiple apps; one cross-platform program; or a web page.
Are there other requirements from your potential users which could be factors in the design?
Please follow-up to let us know how you made out. For good karma, mark a reply as the answer if it helped!