Skip to content

Iter4 Deliver the App

David Recanati edited this page Jun 25, 2018 · 27 revisions

Deliver the App

Opening:

The iteration 4 is about focus on finishing the app.
After this iteration we will deliver the app to the client to test on a real users.

Goals:

  • Finish all the issues.
  • Fix all the bugs.
  • Finish designing the app.
  • Deploy the app to a privet google play account.
  • Send the app to the client.
  • Replace the Ionic Error Handling.
  • Finish the relevant documents.
  • Clear and remove unnecessary & unused code lines.

Iteration roles

Role Assign To Issue Link
Splash Screen and Loading Windows David Issue
Edit Mode, App Gate and Image Search Alex Issue
Finish Order issue and Last Wiki Page Dor Issue
Fix App Builder and Storage, Last Wiki Page Or Issue
Add Loading to Favorite and App Builder Ofek Issue

Related documentations

  • Use cases of each feature are listed in our SRS wiki page.
  • Class diagram and CRC cards of our data base can be found in our SDS wiki page.

Retrospective:

Strengths in this iteration:

Focus on testing, finishing and a lot of synchronize work with the costumer, mainly about the final design. Adding "real" data to DB and storage, before giving the product away.

Inertia weaknesses:

Since we had previous iteration we have some unfinished issues (tasks), they required a new time estimation and some tasks planned this iteration needed to be postponed.

Regulatory Compliance:

Failure to meet the requirements to the end, there was a plan to connect all the pages but we got stuck in the connection, There is a risk of non-compliance, so from now on we will work in a more massive format until we achieve the desired results.

Working as a team:

Team work is flowing like a river, after task assignment we stay in touch to monitor each others progress and provide support when needed, because the bigger picture and task ahead of us is making sure each goals issues are solved and we make as much progress as possible each iteration and meed our commitments to the client.

Lessons from the lecture or practice:

We learned so much, about teamwork, work division time management, interactions with client and negotiations. The lectures provide us with the infrastructure to cope with such big projects.

Meeting Summery:

סיכום פגישה: הצבת יעדים אחרונים וסגירת פערים תאריך: 10/06/18 נושאים שעלו לדיון במהלך השיחה

משימות ותחומי אחריות נוספים:
לאחר קבלת סדר הביטויים הרצוי מהלקוח וקבלת התמונות הסופיות: Updating App-Builder Page.
תיקון ושיפור: App gate, authentication issues and user's basics information.
עיצוב עיצוב עיצוב, עיצוב המסכים, לפי מידות וצבעי הלקוח.
צמצום פערים - הוספת: Google image search.
הרצת האפליקציה על מגוון מכשירי אנדרואיד ואייפון, איתור ותיקון באגים.
קביעת שיחת סיכום – 17.06.18 ,בשעה 16:30.

Testing:

We will test our code using manual testing. Depending on these tests, we will change and improve the code. For example:

  • Sign in to the app in android device - looking for bugs and errors.
  • Sign in to the app in iOS device - looking for bugs and errors.
  • Go to the google maps app using our app.
  • Change the order in check if the UI changed.
  • Add category and check the order.
  • Check the new design on a different android devices.
  • Test the gate way logic.
  • Test password restore issue.

Project Summery and Conclusions

Team Spirit and Values

  • Team Spirit - The team spirit was very good, everyone of our team had a mission in every iteration and did his part. Many times we helped each other to solve development issues or bugs. We learned how to work in a team, we worked on the same code on the same time and it can cause problems, with the right technology (Git and GitHub) we could work together as a team and do it well without making any bugs to another teammate.

  • Updating each-other - When a teammate finished a job that he had to do, he tells our team what he finished, closed the issue on GitHub and help other teammates on his private time. With the updated information the team can use all the features when they are ready and implement them in his branch fast as he can.

  • Values - The values of the team were clear, help everytime that a teammate needs help and get the same help when you need it. We are working on the same product, every teammate success is success for our group.

Development Process

screenshots od the main screens of the application:

  • sign in/up to the application

sign up/in screen

  • home page

homePage screen

  • content of category

content of category screen

  • add phrase page

add phrase screen

  • add category page

add category page

How to install the application?

Android devices: open your device setting->security->allow installation from unknown sources. then download the APK file of the application, and open it.
IOS devices: the application will be available soon on the "app store".

resistance to failures:

  • incorrect input of name of phrase/category- the system will allow the use to write only a Hebrew name for category/phrase.
  • mark more than 5 categories or 10 phrases as favorite- the system will display a toast in case of exceeded.
  • In case that the phrase couldn't open, a toast message will display to the user.
  • when the user sign up to the application, he must verify his email address. until then, he won't be able to sign in to the application, and a proper toast message will display on the screen.
  • In case of wrong photo URL, or wrong audio URL, a proper toast message will display on the screen.
  • In case of no internet connection, a proper toast message will display on the screen when the user try to use operations that need an internet connection.
  • in case of wrong email/password, a proper toast message will display on the screen

security:

The authentication service provided by FIREBASE, that have a high quality of security. also the database and the storage server supply by FIREBASE which provide a security service.

Iterations - During the product developments the team developed the product on iterations

We decide in which iteration what should we do, how we do that, with which technology, plan it together and then dicide what will be in the iterations and who will do which part. Every iteration each team member had issue that he has to do. If the team member didn't finish the work that he had in the issue then he completes it on the next iteration and can get help by the other teammates.

Branches - Each member had his own branch that he worked on.

Working on branches - To avoid bugs on another teammate code, every development happend on seperate branch while the features on build, when the features are ready we merge the branch into the master branch. every time that someone start to develop a a new feature he uses the updated master and has the working best state of the product, with all the new working features.

Keep 'Master' branch clean and work

While every team member develop his part always the master branch has to be clean, work without bugs. every member notify all the team about any change that he does on the branch. In this way the master will always work well and anyone can start to develop from it.

How is the system delivered to the customer

The customer recieved an APK file for download the application to an Android phone, and a User Manual for with instruction to how installing the application and how to use the application and her functionallity in hebrew with screenshots of the different screens and functions of the application.
link for the user guide.
Link for the APK file: Link.
For download the application to IOS phones, the client need to upload the application to the app store of apple.

Main lessons from the project

  • The most important thing in the project is the division of labor. Planning the whole development process before start working is critical and affecting on many (if not all) of the project's components.
  • We learned that it has to be one member of the team, which will manage the project along all the way and be responsible of deciding which part of the work every one of the team members will get, consulting the other member of the team in the weekly meetings.
  • Along the developing processes, we dealt with the problem of lack of planning, and therefore, we had to make a lot of unexpected changes on the way.

Reflecting on the project and the entire course

The Good:

  • We found github as a very convenient tool to run a project on, from the beginning to the final product. The git and github platform is very powerful and helpful tool, its caused to work to be easier. at the beginning of the course we did not know how to use it, and because of it, it caused us a lot of problems, we weren't in synchronized with each other, we did double work and when we learn how to use gituhb all this problem disappear and we have gotten more synchronized each other, its help us a lot during the project.
    Therefor in our opinion because of the importance of this platform the course should focus on how to use it right in the beginning of the semester.
  • We feel that we choose a good length for each iteration. At the beginning it was harder, but with the progress in the project it became easier. On average we can say that we sufficed to finish the tasks we intended for each iteration and that we found the score method to be extremely effective.
  • We can say that all the values we decided on, at the beginning of the project, were kept. We all tried to respect each other and to be honest and loyal. When something didn't go as planned, all team members were patient and tried to understand what is the reason for the delay.

The Bad:

  • Since no team member has work in a group before and we did not have the experience at working in a project of this magnitude, at the beginning of the project, it was challenging to coordinate and cooperate. As the project progressed, the team work has improved, we learned to recognize each member weaknesses and strengths and assign the tasks accordingly.

  • During the project we were exposed to several new technologies include: angular 2, ionic framework and cordova platform. Since no team member had experience with these technologies, we had to put aside some time dedicated to understand the manner of using them and how to tie them together, and bring the project to its final completed state.
    We think that the course materials and course stuff should give more information about the technologies that the students is using, we felt that we learn more on how to write the project from YouTube videos then the course stuff. Has the technologies are improve so the course materials should be.

  • Working with the client during the project we had suffered from misunderstanding and miscommunication with the client and the client requirements. It crucial to make sure that the client is know the scale of the project and that his requirements can be accomplish in the project time.

The Ugly (Conclusions):

  • In the course lessons we repeat on old courses material like UML and project management that we already learn in several courses in the past, additionally the course team neglected some very important issues like how to write efficient code in Angular 2 or ionic, or how to develop the project in the right way. Therefor in our opinion the course should mainly focus on how to write the project right then how to mange it

  • Major part of the course is to work with a real client, for now the students first meat with the client representative during the first week of the semester and then it takes another week or so until the clients assign to each team of students and only then the team can make an appointment with their client to talk about the project and what the client need and want. In that time in the course the team need to write several pages in the wiki, and in the real world the team didn't yet meet with the client as a result of that the first several pages is never really related to the project or the client request.
    In our opinion the students should meet with the client as soon as possible, even in the last few weeks of the previous semester, and after the students choose there project they can meet with the client before the semester start and the planing assignments and process will be real and can benefit the project in the end.

Worked Well:

Team work. we always stayed in touch, helped each other, connected by mails, whatsapp and meeting in college. We always made sure that all the tasks are about to be finished at time and helped each other if we saw that it didn't.

NOT Worked Well:

At the beginning the communication with the client was a little slow. It took time for the client to respond to emails and phone calls so the progress was slower. And even after we set with the client and decide on what we should do and how the app will be, the requests we ask from the client, like pictures or audio files to the app, did not answer until the last month of the project.

Course Summary:

The course has given us knowledge and instruments in planning, designing and executing a project of this magnitude from its inception to a working production state. In the course we exposed to a various new technologies that was unfamiliar for us, we learn how to work as a team on a source control (git and github) environment in an appropriate way. We also learn how to work with a real client and how to match his request with the team ability and with the right technology tools for accomplish the project in time and with all the demands.

What Next?

As part of the client request our project is only the beginning of this app, the client will get all the necessary information we have in the open source code in github and the firebase storage and data base and could continue developing the app in the future.

Future plans for the product

We do not have any plans to continue the project in the future.
The client will continue developing the app in the future with another team.