Skip to content

MILESTONE 2

Samet Demir edited this page May 12, 2019 · 15 revisions

CmpE352 Spring 2019 Group3 - MILESTONE 2

1) Executive Summary

1.1) Introduction

Our responsibilities were Project Plan and Implementation Assignment about this Milestone. In Project Plan assignment, the work done so far should be ordered in chronological order. In that way we can see how did we used our time on our project whole semester. In Implementation Assignment, we learn how to use the API’s and how to code in a group. Since most of us did only individual coding so far, that was a new experience. In this assignment we had a thought on what we are going to do in CMPE 451.

1.2) Work done so far

On Project Plan, we seperated the contents into titles, in that way it is easier to find a task we did very before. We used Project Lible tool for our Project Plan. Then we did the division of the labor according to these titles. Then everybody did their task and fill the Project Plan and uploaded the updated version of the Project Plan. After all the tasks on first division of labor, we checked the validness of our Project Plan and updated the necessity informations.

On Implementation Assignment, we chose Java as our language to write our assignment, Spring framework as framework and made decision on the functionalities that we will provide when we have done our job. There were 4 functionalities and these were translation, finding synonyms, images, song&lyrics. We made the division of labor according to these tasks, and implemented these functionalities. The Restful API selection is left for these tasks themselves. For the translation and finding synonyms functionalities we chose the Yandex API, for the songs&lyrics functionality we chose musixmatch API. We implemented the frontend also. We provide the unit tests about our functionalities.

1.3) Road Ahead

Images part of Implementation Assignment is left undone and we can reassign some of us to do this part further. Our API works fine with other functionalities but with image part it would provide better experience to our user. We will update the Project Plan when we do new tasks.

1.4) Challenges you met as a group

Most of us did not made a group project like this. All projects that we have done so far were individual ones so that was a new thing for us. After division of labor, things did not end up as we expected. Images part is left undone. We were not used to use Spring framework so it took some time to adjust using frameworks. Also we could not write documentation via Spring framework so we used Swagger for that as a solution.

2) List and status of deliverables

Name Delivery Date Delivered
Project Plan April 8,2019 DONE
Implementation Assignment May 6,2019 DONE


3) Evaluation of the ​status​ of deliverables and its impact on your project plan

Project Plan

For Project Plan, we decided to work as a team and we divided the project plan among us. Until this time of the term, we almost did everything on time so we did not have faced any difficulties while we were preparing the project plan. We succesfully managed to create the project plan and we updated it according to feedbacks later. We kept updating it as we move forward and do other projects and tasks.

Implementation Assignment

Brief description of software

This software has single word-based search engine concept. It has translation feature and according to this translation word it operates image search, lyrics&songs search and finding synonyms features. Software has a basic application interface.

System requirements

User manual

We created the user manual as it should guide the user to website application and answer the questions on her/his mind. It was not difficult to prepare user manual since our application has a basic interface.

Design of product

We designed the class and sequence diagrams according to our previous experiences, class diagram shows the general program working and also sequence diagrams show a detailed knowledge and visualization of how objects communucate with each other via functions and how our system works.

Deployed system

We deployed the project to an​ Amazon AWS EC2 instance using Docker, nginx & Docker-Compose. It is currently working on http://3.122.232.187. However, we will need to change the ​deployment account since the free-tier of the account will expire soon, which we were not aware while deploying. Therefore, the IP address will be changed.

4) Brief and clear summary of work done by each team member

Team Member Contributes
Burak İlkay Akgün I updated the project plan according the works that are done on the implementation. I worked on the backend part of our project and I studied the song and lyrics search piece with Yağmur. Besides, on the documentation part of our project I draw the class diagram and sequence diagrams
Samet Demir I auto-generated and modified the backend & frontend of the project according to our requirements. I developed the backend of a feature what we call "image-search" with Hilal. I also added a unit test to the feature. I developed the whole frontend with Hilal. I reviewed the codes and pull request by other members of our team. I configured Docker, nginx & Docker-Compose to prepare our AWS deployment. I deployed our project as whole to an Amazon AWS EC2 instance. In the whole process, I created issues and pull requests related to the progress.
Orkan Akısü -
Muhammet Ekrem Gezgen -
Yağmur Kahyaoğlu I did the use case diagrams part in the project plan. I worked on the song and lyrics search feature for the backend part of the implementation assignment with İlkay and also implemented a unit test. I documented the system requirements of our API.
Egemen Kaplan -
Cihat Kapusuz I did the class diagrams part in the project plan. For implementation project, I did the translation feature for the backend with Mert and unit tests for the translation feature with Mert also. I merged and opened a pull request.
Bartu Ören -
Ahmet Mert Tahran I worked over the backend of the app and coded the translation part and test cases of translation with Cihat. I tried to review the other members’ codes accordingly, I merged the some of them.
Sabri Bayrakdar -
Hilal Demir I did the sequence diagrams part in the project plan. For implementation project, I did the lyrics$songs search part in the frontend with Samet and helped him while creating the general structure of the application. I followed other parts that my friends did and tried to review them as much as I can.

5) Project plan

6) Evaluation of tools and processes you have used to manage your team project

There are 4 different tools to manage the team which we have used: WhatsApp, GitHub via Projects and Pull Request, and Discord. Firstly, due to asynchronous connection, there are some misunderstanding issues and non-replied messages on WhatsApp; therefore, it can easily be said that only WhatsApp is not an appropriate tool to manage a project. On the other hand, it has some advantages for instance, because WhatsApp can be used on mobile and computer, its notifications disturb you and when they are noticed, they have quick return; this feature can lead the project to gain speed. GitHub Projects has the chance to be a beautiful tool to manage a project. it is a useful tool to stalk the other group member’s progress over their own parts. Therefore, it can be easily said that GitHub Projects is useful and easy tool to manage a project. GitHub Pull Request give us the chance about check whether the assignments are implemented truly or not. Also, it enforces us to learn about something about the others’ part therefore every member knows something about most of the code. Discord connections were not effective because there was someone who does not join the connections and there was someone who did not enough speak during the meeting. Also, these connections need the special time and location to use. Furthermore, due to different internet connections, voice qualities are not equal. This fact leads undesired breaks to happen when we talk. Therefore, any call over discord is too hard for a group.

At the beginning of the assignment as a group, we decided on what to do together and we divided the tasks together. So, at the end of our first meeting regarding the implementation assignment everybody knew what they were supposed to do. This clarity of duties gave us an opportunity to work in a parallel manner through the project. Most of us were not familiar with Java Spring Framework or the API structure which created a problem at first but as time passed we helped and reviewed each other and overcame these issues. After some commits that we forgot to branch, we started opening new branches to make pull requests and that way we started reviewing each others' codes more efficiently. There was one part on the backend that wasn't implemented before the deadline but the part was included on the frontend so the deployed API looked incomplete. We could have handled the situation in a different manner if we commmunicated more efficiently through the process. We solved the issue by reassigning the part to different team members.

7) URLs:

We will need to change the ​deployment account since the free-tier of the account will expire soon, which we were not aware while deploying. Therefore, the URLs will be changed.

7.1) Deployed system URL (AWS): http://3.122.232.187

7.2) Deployed API URL (AWS): http://3.122.232.187/api/

Clone this wiki locally