Executive Summary - bounswe/2021SpringGroup7 GitHub Wiki

Contents

We are Bogazici University Computer Engineering students. This report mainly contains our group work in CMPE-352 (Fundamentals of Software Engineering) so far. You can see the evolution of our project in this report. It contains our communication plan, requirements of project, scenarios and mockups for both web and app, software design documents in UML, project plan and a summary of work done by each team member.

Project Description

Crowdsourced Location Stories:

We usually remember locations with the stories we lived there. Every person has stories about locations that they lived in the past and cannot forget. In our daily life, we like to tell our stories to others just as we like to listen to others' stories. In our project, we are trying to create an environment where people can share their stories about locations with each other. We are developing an application for this purpose.
There will be an android based mobile and web interface for this application. Users will write their stories about locations. They can also read others’ stories. It will be possible to comment on stories or like them, so this app will provide a socializing platform for users. There will be an option to search places with time and tag filters. Application will also suggest stories to users based on their previous preferences or popular stories. Of course the most important elements of a story are time and place. Time and place can be relative, people can use a large area or a large period of time while telling their stories. So we focused on these issues in our project. We gave users the opportunity to add multiple areas and time periods to their stories. You can also see this in our scenarios and requirements.
We have basically three type of users in our application: Admins, guests and registered users. Registered users are principal user in this application. They can post stories, read other’s stories, comment on stories and search locations or users. They also have profiles with personal information and the stories they shared before. Guests are basically nonregistered users with restricted privileges. They can not post stories or comments and see other users’ profiles. They can read popular stories and search for locations to read stories about them. Admins are just managers of system. There is a report mechanism in application and admins are dealing with these reports. They can delete contents and ban users. For further information, you can see the requirements section.
The name of our application has not been determined yet. You can see some sample names and logos in mockups section.

Project Status

Communication

From the first day, we got to know each other and we created an excellent team chemistry in a short time. We planned our weekly meetings and try to hold them as much as we can. Other than that, we connected to some communication platforms. We created a WhatsApp group and a Slack channel where also our assistant is welcomed. Moreover, we prepared our Github repository where our whole project can be tracked and all the steps we taken can be seen.

Requirements

We talked about all the functionalities our application can have and documented them one by one. Of course, this process required so much thinking about the user expectations and the difficulty of implementations of these functionalities. However, we thought about most of the possibilities and documented them on our repository. We also prepared some key questions about our application and asked them at the customer meeting. After taking the answers, we reviewed our requirements accordingly.

Scenarios and Mockups

After specifying our project requirements clearly, we designed user interfaces which show these functionalities all together. Therefore, in the mobile application or in the web application, the possible interactions with the interface can be seen for different pages of the application. Furthermore, the customers and future users had the opportunity to inspect the functionalities from a closer and more visual perspective and thus we got more solid feedbacks about our work.

Use Case, Class and Sequence Diagrams

When we are finished about thinking all the functionalities and their compositions, we got our hands dirty and started to the actual design of our software. This process was much harder from the previous ones since we encountered more problems while planning the interior design of our project. We allocated hours of time just to specify the components of our project and how to integrate them in the diagrams. Then, we hold countless meetings to actually draw the diagrams since describing the interior components of the project in the diagrams needed much attention even if we already learned the concepts of the diagrams well in the lectures.

Project Plan and RAM

Lastly, we showed our work up to now and our plans about the future in a complex project plan. The key tasks, the time they are to be done are specified clearly in our plan and we will be adapting ourselves to that as much as we can. To be punctual and not missing the deadlines are our important priorities. In addition, we prepared a responsibility assignment matrix where each task listed in project plan is assigned to some members of the team. The contributions of each member and who will be working on which task can be tracked in this matrix and hence every member of the group know what they are supposed to work without a doubt.

Future Plans

From now on, we will think on how to actually create our project. We will plan the implementation part of the project. We are going to talk about which parts do we need in Frontend part and Backend part. We will discuss what tools to use and how to share the tasks. To achieve these, we are going to firstly do some research about APIs to be used and write some test cases. Actually, we prepared a project plan including all these future steps and also summarizing the work done up to now. But of course, our plans can change as time progresses. As a team, we meet twice each week and while talking about thee current tasks, we also discuss the what difficulties we can encounter in the future tasks like implementation.