Closed inbalzukerman closed 7 years ago
@inbalzukerman are we going to put this in the prototype of Milestone Alpaca? This requires development of another GUI, logic to handle registration requests and development of a new database type.
I think in the upcoming prototype presentation this isn't required, and we can push it to the second presentation (in roughly 2.5 weeks?), while now focusing more on the communication with sensors and apps, and data management.
Any one agrees/disagrees? @EliaTraore @ylevv @roy-shchory @RonGatenio
I agree, it is more reasonable to move it to the next milestone.
I agree. Even if it gets implmented now, I'm pretty sure the current version of apps doesn't have the code and gui to handle it at the moment.
Can't we already open bunny-milestone and put it there?
@SharonKL - I agree, clearly it's not too relevant to out current milestone, and it is not part of it's defined goals.
@EliaTraore - I think it is better to leave it in the general "Sprint 2" milestone since there aren't any goals for the lovely about-to-come bunny(?)-milestone. It sounds reasonable that it would belong there, but anyhow we'll know better after defining the goals for the next milestone formally ☺️
Off topic but, why the question mark next to bunny? its obviously the best choice for the next sprint :heart_eyes: I mean look at it -
I think its within our reach in the current milestone, plus 1/4 of #75 depends on it (hence the "blocker" label). Don't mind implementing it if you're not down for it right now.
@EliaTraore It's ok, I can implement it.
Let's just agree on what functionalities are required from UserInformation
(?)
@SharonKL , @EliaTraore - What do you think? what functionalities are required from UserInformation
?
ApplicationHandler
specifically needs a Alert(String appId, String msg, EmergencyLevel elvl)
method, to notify such events.My current point of view:
UserInformation
will include all the "basic" information of the user (name, age, phone number etc.) and a map of contacts. Moreover this class will implement methods such as:
getContactsOfElevel( String id, emergencyLevel elvl)
- which wil return all contacts which should be informed at emergency elvl
or "lower"userInfoToXml()
- which will allow saving the information if neededxmlToUserInfo( File xmlfile)
@EliaTraore @SharonKL - a penny for your thoughts?
id
? and I suggest renaming it to simply getContacts(eLevel)
and maybe overloading this function with a no-parameters alternative to receive all contacts, getContacts()
toXML()
File
as an argument instead? Or maybe use a factoryalert(String appId, String msg, EmergencyLevel elvl)
easier to implement (otherwise you will have to go through all the contacts to find those with the appropriate elvl). And regardless, a contact might have couple of elvls in which he wants to be informed.alert
methodAnd another thing I just thought of - we should consider adding email-related elvls, and add an email field to the definition of contact
as well. It will be easier to implement sending alerts via email (so we might be able to show it in the presentation of bunny) and maybe some people prefer email alerts.
ID
. Agree, I prefer Xml
. Oh and by the way, Java has no official convention for acronyms (afaik). Yosi will be able to correct me probably- (omg hebrew is so edgyy) The apps depend on `alert(String appId, String msg, EmergencyLevel elvl)` to notify about abnormalities. We could either put that in a separate class (#comunicationHandler #calledIt) or have it as part of the `UserInformation` class.
I thought that since keeping the info by itself is a small task, this class could go ahead and implement the functionality of contacting the contacts as well. If you guys think its should be in a separate class+issue then I'll go ahead and start the github-paperwork on it.
@EliaTraore - I agree with you about not saving the emergency level in the Contact
class and I will add an email field asap- really good idea 👍 😄
I don't really understand what do you mean by "profile" though 😞
a profile is just a - Map<EmergencyLevel, List<Contact>>
(assuming thats the structure holding the info)
the default profile will have a list for every elvl, each of which is initialized (since we have to have a default)
and then the user can say "i wanna have a special behaviour for SOS app" so you create a new map assosiated with the id of the application, and when an app alert on some behaviour you first check its map (if it exists, and the elvl have an initialized list there), and if not you go for the default profile.
Now that I'm writing it, I see that there's a small issue of knowing the appId
by the sides involved, so for now I guess the basic implementation could ignore the appId
param of alert
and just use the default profile, since its really not that critical at the moment.
Thanks for the explanation 😊 👍
@EliaTraore and @RonGatenio -
By now I'm (really) almost done with my part of this class (only some safety checks to add on one method)
Feel free to work on alert
, I left it empty 👍
@EliaTraore , @RonGatenio - I've noticeג there is another issue regarding the alert
method and it's implementation.
Therefore, I've completed this issue since alert
's implementation is a crucial part of #108 . Therefore, I'm closing this issue 😄 🎉
For more information see: #24 #19
Create the class that handles the user information. It's required functionalities:
Notice - this class should be implemented in the "System" package