Izzy: We drafted a storyboard for the app and detailed what each screen would hold and do. I went up to the board and helped to draw images of what the screens of the app could potentially look like. I also helped come up with and type the descriptions for each part of the storyboard in a google doc (linked below). We did this for both apps (I held the same role both times), so both are linked below.
James: We worked on two different apps, beginning with sketching on what our approach is going to be with the application. The app we were assigned was for our client's clinical organization which is supposed to help co workers being able to communicate with each other easier and schedule upcoming events. We incorporated ideas that we collected from out interview and planned them out into the application.
Damon: We were given two apps to prepare for this program. We have app to help therapists remember to care for themselves in their stressful occupation. The other app is more tailored toward our client's organization. It helps them contact each other and plan meetings and shifts. We planned out the main features of both apps and explained them. We also began to brainstorm names, but made little progress.
Rob: We began creating model interfaces for the two apps. We agreed on making a login screen, sketched the survey screen for future notifications, a menu to hold the game, coloring book and calendar, profile page for the user to customize and a messaging terminal between workers, made similarly to most messaging systems. For the second app, we considered making login screens, a report feature, similar messaging system to the first app and compliment sender.
Izzy: After learning the proper process for developing an app, everyone began creating a product backlog in their respective groups. I chose to be a part of both groups, so I helped create the backlogs for both apps. In the group for the first app, we each assumed our own individual roles. I was helping order and type user stories and tasks. Eventually, I moved on to help the other group. In this group, I added more user stories and tasks and helped format the document. Both documents are linked below.
James: In this day, we began to create a backlog for upcoming issues that the user may have when accessing the application. We wrote out scenarios that could occur and came up with possible solutions that could fix these issues.
Damon:Today we began the process of designing each app. Our group split into two teams in order to work on each app. I decided to work on the second app that was going to be designed specifically for the client's organization. After splitting up, my team began by creating a backlog to anticipate things that would need to be added to the app.
Rob: This thursday was dedicated to creating possible scenarios in which the users of the apps suffered problems in order to preemptively fix them before they happen alongside dividing the groups into two teams of three with one middle man ... middle woman rather.
Izzy: Started wire framing today. Basically, it's like more accurate UI designing that doesn't involve embarrassing yourself by drawing on a white board. I got to help wire frame both apps, and I even got to actually use a computer for one of them (instead of just commenting and helping the person using the computer figure out how to design each screen). On the application we used (fluidui.com), the wire frames are even a bit interactive, so the flow of pages from one to another can be simulated, helping give a better idea and picture of the app and how it works. At this stage, we almost have a good model to display to our client to give them an idea of how the app will turn out. Also, we updated our product backlog to specify who would be coding what parts of the app and when they were completed.
James: On this day we began to design our second app. We went to a website called FluidUI. and began to work on our wire frame. We created many screens on how our app was going to somewhat look like. After getting the main screens down such as the Menu, we expanded out into multiple screens and kept linking different screens to each other. We got the overall result of what our app was somewhat going to look like.
Damon: Today we began the process of designing each app. Our group split into two teams in order to work on each app. I decided to work on the second app that was going to be designed specifically for the client's organization. After splitting up, my team began by creating a backlog to anticipate things that would need to be added to the app.
Rob: Today was the day we worked on the wire frame for the app using the website, FluidUI. After creating a few screens, we began branching routes between apps using buttons from there created the messaging system, login, settings, announcements and group creator menu.
Izzy: Finally, coding has begun! After divvying up the tasks between group members (I ended up with tasks mostly from the first group because they needed more help), everyone began coding. I was left to program the profile page of the self-care app, Nisimo (working title). Setting up the GUI wasn't too difficult, but formatting the picture to be a decent size and subsequently not dominate the entire screen was a bit of a challenge. Also, remembering everything that needed to be on the page proved to be a work in progress. I eventually finished though, and then realized I needed to code in the settings page since it directly connected to the profile page. So, I signed myself up for it in the backlog and went to work. Coding it, again, wasn't the worst thing in the world, but choosing a color scheme is infinitely more difficult than coding in theme-changing buttons (after ten minutes of arguing and googling, my group finally settled on one). Choosing the scheme was the last thing we did, leaving me to code in the actual background color changes tomorrow. Moreover, after looking over the design of the settings page, I discovered I also had to code in the change password function. It required another screen and was another surprise, but I did it (and I even added in a fun little check for the confirm password that would tell the user in real-time if both of their input passwords matched). Also, figuring out how to close and open screen simultaneously was a challenge. Apparently, App Inventor's "open another screen" block doesn't close the previous screen. Not good. We found a way to close and open screens, but it's not the most efficient process. Still, it's progress. Also, I signed myself up to program the coloring game because I finished the profile and settings pages before lunch. Tomorrow will be a fun day.
James: On this day, I began to use MIT App Inventor 2 and began to design and start coding on my parts for the application. I first began working on the report worker feature which basically reports a co worker in which will then be sent to an administrator. The administrator can be able to see the report that was issued and handle that themselves. We would make a list on certain reports, the user would click on the certain report, from then, the report would be stored in a cloud db along with who sent it, what it was, and who it was directed towards.
Damon: Today we focused on putting the apps together. I worked on designing the login for the organization based app. The overall design was simple enough once I figured out an efficient way of storing the information that a user enters when first creating their account. I ran into multiple problems, although every time it was because I used the wrong block in a certain place. I used the wrong properties in some algorithms and I used the wrong components in others, but once I sorted through the code,I found and corrected these problems. I also ran into problems designing an account recovery system, so for no I have been unable to implement that function.
Rob: Today was the day we finally began coding for the app. We decided it would be more progressive to work on our own parts so I made the scheduling and announcement parts of the app and the app's menu.
James: On this day, I worked on our settings page and the password change for the application. When the user opens up the settings screen, they will have the option of either changing their language. changing their theme, or changing their password. I coded so when the "change_password" button is chosen, it will change to a screen where you will have to verify your old password or else it will not save your new password. Once verified, the new password will take place of your old password and it would send you back to the settings screen.
Damon: I spent this day working on the account recovery system for the app. Rather than using email like I originally planed, I decided to use a system that verified the user and then sent a text message to the user with the code they need to change there password. I intended to do this for both usernames and passwords, but I realized that usernames didn't need significant verification because it wasn't sensitive information. This allowed to to simplify a lot of my code because I didn't have to account for this.
Robert: We continued working on our respective apps as we slowly but surely begin merging them together. I began coding the apps many possible scenarios for meetings and shifts with times, rooms and clinics and saving them to the cloudDB.
James: On this day, I worked on the voice recording screen in which you would be able to record a message and be able to play it back. However without the messaging feature being implemented currently, the voice recording feature hasn't fully been tested and ensured of 100% completion of sending the voice message.
Damon: Today I worked on developing a chat feature. However I was unable to create a system that could successfully create and add on to multiple conversations. I have abandoned this for now.
Robert: I worked on the new conjoined app. Some things are still not working, such as the apps' saving system and profile info, but I worked primarily worked on the themes and settings. I made two themes, Tetris in the 80's and Bubble tea, and worked on the apps settings.
Damon- Today we spent some time refining our app and we also spent time updating our wire frames. We also prepared for the meeting with the client. We showed him the wire frame, and while he wasn't pleased with parts of our apps, he seemed satisfied.
Damon- I spent time debugging an issue with the database in the app. Data wasn't persisting between pages, and it took me time to find the problem. Since we compiled our project from different projects, the databases weren't connect to the same space. I had to change their properties so that they all matched and therefore connected to the same space. I also looked into a way of setting up the chat. I have reached out to the creator of an extension that seems useful in achieving this and I am waiting for his reply.
Izzy: I worked on the schedule today, setting up the upcoming events page so that any meetings created and saved would all appear on the page. I had to append to a list in the CloudDB and set the list to the elements in a ListView on the upcoming events page. Originally, I saved a list in the CloudDB and edited it to allow for new events to be added and for the last event to be removed. Unfortunately, this was specific to one device, when it needed to work across multiple devices. I managed to code in adding and showing the list only from the Cloud DB, but removing items is proving to be difficult. I worked with Robbie a bit today, and worked off of his existing code.
James: I worked on the google sheets that our client has asked for after our most recent interview with him. Carlos wanted us to add a feature in which an admin would be able to see all the shifts that were scheduled within that week. In coding this, I used the web feature in app inventor and linking it to the google sheets in which you would be able to view the shifts. I also added a checkbox in the menu screen. Carlos wanted us to be able to find out where his clients are at certain times in order to make sure they are safe. The checkbox feature works in a way that when you check in or out it will call the location sensor and will get a proximate latitude and longitude. This feature will only work if the user of the app has location enabled so this is one flaw that we have come up acrossed. I currently haven't found a way to display that location and send it to an administrator, so I will look further into that within our upcoming days.
Damon:
Robert: I finished the final three pages in the apps coloring book. I then helped set the buttons that make the scheduled meeting show the selection after choosing in the list. It was then I realised that there wasn't a way to set the actual dates for the meetings or shifts ( meetings would be set that day and shifts weekly ). Izzy helped fix that problem and so I went fixing minor stuff in the app such as formatting and manalist.
Damon: Today I finally got the chat extension from the developer I contacted, and I decided to begin working on the chat function once more. I successfully created a function to add friends to a friend list, and I have started to build the actual chat screen. I have been looking at examples in order to build a working chat system. I came up with the idea of using two data bases so that I can reuse some tags and separate the event handlers for retrieving information from a database. We also ran into a few problems regarding the size of the app, so we had to address this by using vertical arrangements rather than screens to store different sections of the app.
James: Today, I assisted with coding the phone section that would go along with the messaging feature. One issue coming across this is that if the user was using a tablet, they would not be able to actually call or make calls due to tablets not obtaining the ability to. Otherwise, it would call the number based on what profile it is calling. When creating an account, you are required to fill out a mobile phone number and from there it is saved on a clouddb and the value can later be brought up whenever needed with the number of the index.
Robert: Today consisted of me making multiple backgrounds for Kiets game of cat and mouse with a tiger, a dog and a cucumber. But that doesn't mean no work was made toward the app. I was able to work on the settings, worked on the announcement page and saved the end result under LeoMessaging2RobertStyle
Izzy: Today, I worked more on the schedule. I fixed my mistakes from yesterday, allowing the program to get, display, and alter the upcoming events from all devices. I'm still trying to figure out how to get the updates to be automatic, though. After coding the list view to remove elements and save them into the CloudDB, I realized that some of the elements on the GUI were a bit redundant, so I worked on removing them. I finished that for the meetings, but before I could start it for the shifts, I was pulled away to the other app. Also, I added in a date picker to both the meeting and shift schedule creators to add the date to the inputs.
Current Projects:
https://drive.google.com/open?id=1vKmjlU4QPvLUX3obxjjjjxAr4R0rOPY2
Damon: Today I worked on bugs that came up when I removed an extension from the app. The extension removal completely shut down the main menu screen. I had to manually access the java file to find remnants of the removed extension that prevented the app from running that screen. I then had to recreate the screen from scratch. Luckily this allowed me to recover what was lost. However, when I tried to test my chat feature, I again failed for an unknown reason.
Izzy: I finished programming the schedules screen in the app, allowing all users to specify the date, time, and location of their shifts and meetings, delete any scheduled events, and easily view upcoming meetings and shifts. I added in time pickers to do this, and altered the code so that it functioned using them instead of the existing list pickers. I also created a new illusory screen to view the users shifts in a list view, as with the upcoming meetings, to make it more clear to them.
James: Today I worked on the feature in which
Robert: I spent today implementing the backgrounds for the app, making them function and working in the messaging UI.
Damon: Today we focused on preparing for the meeting with our client. We also had multiple other events, which prevented us from spending a large amount of time on the app, but we did make some progress. I found another problem with the chat this time regarding the extension's compatibility with the data base we are using. It seems that since the extension was created before the cloud db was implemented into app inventor, it cannot account for the connections to the database. Actually I believe the extension has been the cause of many problems, such as sending the app through email. How ever the meeting did go well, and we may be able implement some form of notification with the help of the other group.
Izzy:
James:
Robert:
Most recent aia:
LEO Provider -
Login page: You open up to a login screen that asks for a username and a password. Once their filled in, the user can click the login button to access their account or if the don't have a pre existing account, you can make one through the create account button. There are two buttons that help recover / reset the users' name and password when forgotten.
Menu: After signing in, the app opens to the main menu. This is where the account branches off to four sections: Announcements, Contacts, Schedule and Settings. You can click on the profile image in the top right to access your profile page.
Profile page: From there, You can see your profiles' image, full name, phone number, title and the comments on them. Below the comment section is a back button to bring the user back to the menu and log out feature to sign out of the account.
Announcements: The announcements page is a screen containing a list of pre-existing events, a button to create announcements and a button back to the menu. The create announcement button opens a pop up that shows a title and content textbox and two buttons that send it out or cancel it.
Contacts: This screen brings the user to a screen where you can add other coworker to your contacts or return to the menu. After hitting the add button, you can select a account of all of them stored in the cloudDB and then add them to the contacts in order to see their profile.
Schedule: Scheduling is done in this section of the app for the users shifts and meetings. There exist five buttons that can make shifts, view newly made shifts and schedule meetings for everyone to see in the upcoming events pop up with the menu button included.
Settings: This final part of the app consists of buttons made to choose the language choice between English and Spanish, link to the confidentiality agreement, option to change password when forgotten, a button (exclusive to admins) to remove reported workers, get their info and change the account creation code with a back button.