Meeting notes - altanborali16/SWE574-Group2 GitHub Wiki

September 28, 2024

Agenda Present: entire team

Decisions:

Approach: re-use code from other repos (explanation: the project's purpose is to serve both web and mobile clients; rework for this will take more time than building a project from scratch).

Team roles: team members will have specialisations, but every team member should have a chance to work on design, frontend, backend, and documentation. Everybody is responsible for knowledge sharing about the project/technologies.

Initial team composition: (in brackets - a person who can/want also work on the team going forward)

  • Architecture - Efe
  • Backend - Feridun, Yana, Efe, (Altan), (Enes)
  • Frontend - Altan, Aliser, Enes, (Feridun)
  • Deployment and DevOps - Feridun, (Altan)
  • Code reviewers - frontend and backend dev teams review their respective codes in pairs
  • Project communicator - Altan

Workflow:

For frontend: The frontend team decides on the frontend design and presents it to the entire team. The first frontend dev creates the foundational features (homepage and login page, for eg). The second and third devs build on the features. For frontend dev manual testing is obligatory before commit.

For backend: Backend team reviews the complete feature before merge. Postman collection is on the GitHub, organized and version-controlled, with all end-points explained. Backend team tests both backend and frontend before commit.

Version control: The team will have two branches: main and develop branch. The team works with the develop branch; they pull from it and then branch off to work on a feature (a feature consists of several issues) and bug fixes. After developer code review and ensuring that everything works, the developer commits all to his/her feature branch; the feature branch then is merged with develop branch by the DevOps. image

Documentation: documentation created/updated as features are developed. Documentation is version-managed on GitHub; developers mark their contributions to documentation by putting their initials at the end of the statement or at the scheme, for eg: (YK).

Schedule and communication: Weekly meetings - Mondays during or after the course (suits everybody and it's right after the SW£574 class); Tuesdays 21:30 (a 20-mins standup) Deployment time - Tuesday midnight (easier delivery; each team member can make functional tests, see bugs) In-team communication - frontend and backend teams communicate between themselves on ad hoc basis.

Questions to clarify/issues to open/suggestions:

  • Q: is a progressive web application (PWA) allowed? A: Yes, provided it serves the specific needs of mobile/web version users
  • Q: team members switching between front end/ back end or not? A: Yes
  • I: set the standard for branch and commit naming (issue opened)
  • Q: decide on Spring Boot, Java version, and frontend technologies (depends on if PWA is allowed or not)
  • S: check out GitHub repos for best practices

October 1, 2024

Present: entire team

Backend project final decision Start a new project by reusing code from other repos (explanation: the project's purpose is to serve both web and mobile clients; rework for this will take more time than building a project).

Discussion about new requirements given during class at the 2nd week (October 3, 2024) We have discussed the new set of (requirements)[(https://github.com/altanborali16/SWE574-Group2/wiki/Elicitation-Notes#30092024-2nd-week)] and decided to add all team members to the design process to find good solutions for backend function design. Efe and Feridun will be the main backend developers for the new requirements.

Deadline time for the completion of missing features (from the previous term) backend project Three weeks after the presentation of the work-in-progress to the customer on October 21.

Discussion mockup creation for flows Enes will be the lead designer for mockup designs. All team members are responsible for contributing to & discussing flows.

Finalization of PWA or mobile app question We will move on with PWA considering the teams's experience level, and the time it takes to develop a separate mobile application. We have compared the Reddit mobile app and the Reddit web app mobile view and decided that the mobile app has no clear advantage over the mobile view of the web app.


October 12, 2024

The frontend team had a meeting on 12 October to discuss the following agenda points. Present: Altan, Enes

Agenda:

  1. Discussion on Frontend Designs and Project Requirements
  2. Badge System Design for Communities
  3. Community Recommendation System Design
  4. Frontend Project Creation and Structure
  • The meeting started with a discussion on the frontend designs for our current project. The primary focus was on ensuring that the proposed designs align with the requirements provided by the customer. Our main focus was on achieving responsiveness throughout all the project as the customer wants to see the product as a web app.

  • Following the design discussion, we transitioned into a detailed review of the badge system. Given the requirements, we deliberated on how to best present the badge system to users in an engaging and visually appealing manner. We explored several options for displaying community badges to users and concluded that showcasing them on the community's homepage would be the most effective approach. While this is our initial plan, we look forward to meeting with the backend team to evaluate whether this idea is feasible from a backend implementation perspective.

  • The third point on the agenda was the community recommendation system. This system is intended to enhance user engagement by providing personalized suggestions based on user activity. We brainstormed several factors that would feed the recommendation algorithm, such as user interactions and user activity.We concluded that the best and most efficient way to implement the recommendation system is to suggest communities to users based on their membership in other communities. Since all communities will be tagged to help identify them, the recommendation system can use these tags to suggest relevant communities to users based on their interests and existing memberships. However, this is also subject to change based on the discussion we are planning to carry out with our backend team.

  • Lastly, Altan and Enes worked on creating the frontend project and establishing its initial structure through a pair programming session.


October 14, 2024

Present: entire team, apart from Efe

Workplan ahead of the customer presentation on October, 21

  • Commit backend from the previous semester to github - Efe
  • Complete frontend for login/signup page - Altan & Enes
  • Connect login/singup page to backend - Efe
  • Prepare a high-level design diagram for the system as is, based on the class diagram - Yana
  • Conceptualize and prepare a high-level diagram for new gamification (badges) and recommendation mechanisms - Feridun (in consultation with Efe)
  • Prepare page mockups to illustrate gamification (badges) and recommendation mechanisms - Enes (in consultation with Feridun)
  • Prepare user scenarios, including new features - Yana & Aliser (in consultation with Feridun)
  • Prepare questions to the customer, and lessons learned - ALL, on github discussion
  • Draft a work plan ahead of October 21 - ALL (during the dry-run on Sunday, October 20)

Presentation Plan

  • High-level design diagram for the system as is
  • Live login/signup PWA page with backend
  • Mockups of user feed/user profile/community pages, showing elements of new features
  • A high-level diagram for new features
  • Questions to the customer
  • Assessment of the progress achieved so far: what worked and what needs improvement
  • Workplan for the weeks after October 21.

October 20, 2024

The devops team had a meeting on 20 October to discuss the following agenda points. Present: Feridun, Efe, Altan

Agenda:

  1. Information sharing how to run backend and frontend
  2. Checking merge requests and resolve
  3. Merging frontend and backend to main
  4. Deployment
  • A read.me prepared regarding to the frontend and backend(including which IDE should use)
  • After facing with few merge requests Efe will give team a small introduction and all branch actions (create branch, merge request etc.) will be done on Efe's supervision
  • Deployment is done with the lead of Feridun
  • Issues are checked and closed relevant issues

October 23, 2024

Lessons learned meeting
Present: Aliser, Altan, Efe, Yana

Agenda:

  1. Lessons learned from the milestone 1
  2. Change of project direction

Decisions taken:

  • Corrective action plan is developed for the next two weeks (before November 4).
  • The team will build the product based on Yana's project from the previous semester.
  • In the next two weeks (before November 4) Yana will finalize the backend features missing from the previous semester
  • Yana will document APIs to facilitate acquaintance with the legacy code and enable group work on the project.
  • Corrective action plan will be documented in milestone 1 report.

November 4, 2024

Make-up presentation to customer
Present: Aliser, Feridun, Efe, Yana, Suzan Uskudarli

Agenda:

  1. Presentation of the system-in-progress
  2. Discussion of approach
  3. Customer feedback
  • The team presented to the customer the progress achieved in building the system in the past 2 weeks which included: secure login, user profile, list of communities, creation of community, creation of community post templates, creation of posts.
  • The team explained that it developed two variants of backend just in case to have a plan B if one of the backend teams started falling behind. In the end, it was decided to drop the plan B backend developed by Yana and concentrate on the other backend with a clearer design.
  • The backend was then integrated with the frontend optimized for mobile clients (PWA style).
  • The customer recommended to the team to take a story-based approach when presenting the system so that the demonstration of one feature naturally led to the demonstration of the next features. The team took note of this and will follow the suggested approach during the next presentation.
  • The customer explained the expected workings of advanced search. This was followed up later by the customer sending a written reminder.

November 11, 2024

Team meeting
Present: All team

Agenda

  1. Definition of MVP for November 18
  2. Distribution of tasks
  • The team defined the scope of the MVP for November 18: advanced search by community, tags, comments to posts, post upvotes, and recommendation system.
  • The distribution of tasks was done via assigning the respective issues to team members.

November 17, 2024

Team meeting
Present: All team

Agenda

  1. Status update
  2. Distribution of tasks
  • The team updated on the status of their respective tasks and identified gaps in the progress.
  • To fill in the gaps, Efe will assume the development role for the week remaining until the MVP milestone.
  • Issues were opened for the team members to follow up on.

November 25, 2024

MVP presentation to the customer

Present: Aliser, Altan, Enes, Feridun, Yana, Suzan Uskudarli

Customer recommendations following the presentation

  • Consider converting Home or Feed page into a “discovery page” for the posts coming from recommended communities
  • Add validation for positive numbers
  • Use a geolocation API for geolocation fields
  • Introduce a new data type - currency; especially important for search use cases
  • Uniformly handle date format in the posts; also especially important for search use cases
  • A community owner should be able to introduce custom values for post template fields, so that a user may select a value from a drop-down list; eg., list of dog breeds in a Dog Lovers community
  • Add tips for users about what to do to get the next badge
  • Add dates of when badges were earned
  • Make sure that user experience on mobile app is different from user experience on desktop browser

Bugs:

  • The community pictures on the home page & inside the community are not the same
  • URLs must be clickable
  • Images must be rendered correctly in the browser