Milestone 1 Report - altanborali16/SWE574-Group2 GitHub Wiki

Milestone 1 Report

This report is submitted by Group 2 of SWE574 course class of 2022, autumn 2024.

As agreed with the course instructor on October 21 after the presentation of Milestone 1, Group 2 will change the approach to development, implement a two-week corrective action plan, and will re-submit the deliverables within two weeks (before November 4).

Deliverables and status

Software Requirements Specification

Link: https://github.com/altanborali16/SWE574-Group2/wiki/Requirements-Specification

Status: The requirement specification is inherited from the previous semester. Individual feature implementation status will be updated by November 4. Sections VI.B and VI.C capture the new requirements (badges and recommendation system), and are currently work-in-progress.

Software Design (UML diagrams), use-case scenarios, wireframes

Link: https://github.com/altanborali16/SWE574-Group2/wiki/Designs,-diagrams,-and-use-case-scenarios#use-case-scenarios-and-activity-diagrams

Status: use-case scenarios will be supplemented with wireframes and updated by adding recommendation and gamification (badges) mechanisms by November 4.

UI mockups

Link: https://github.com/altanborali16/SWE574-Group2/wiki/Designs,-diagrams,-and-use-case-scenarios#ui-mockup-designs

Status: completed

Project Plan, Communication Plan, Responsibility Assignment Matrix

Project Plan

External milestones and deadlines:

  • October 21 - infrastructure
  • November 25 - MVP
  • December 16 - Product delivery
    Status: agreed

Corrective action plan following the first presentation of Milestone 1 on October 21 was agreed on. See workplan.

Status: agreed.

Communication Plan

  • Customer communication: Monday evenings.
  • Customer reports: released on external milestone deadlines (see above).
  • Weekly team meetings: Monday evenings. Decision points are agreed upon and distributed to all team members.
  • Iteration retrospectives: at the end of the iteration.
  • In-team communication: frontend and backend teams communicate ad hoc; meeting minutes are kept & distributed to all team members. Status: agreed and kept updated.

Responsibility Assignment Matrix

Responsibility Efe Feridun Yana Altan Alişer Enes
Architecture X
Backend X X X (X) (X)
Frontend (X) X X X
Deployment & DevOps X (X)
Code Reviewer X X X X X X
Project Communicator X
UI Design X
Project Manager X
Design & Document X (X) X

Status: agreed. The team member, whose name is marked with (X) in the table, can back up/help out the team members tasked with a different responsibility.

New Matrix with roles taken in more detail

Task Efe Feridun Altan Enes Aliser Yana
Backend Development P S S
Architecture P S
DevOps P S
Scrum Master S
Transformation Coach S
Cloud Ops S P
Frontend Architecture P
Frontend Development P S S
UI/UX Design P S
Wireframes & Mockups P S
Event Flows & Diagrams S P
Project Planning S P
Requirement Analysis P
Repository Quality Inspection S S

Legend:

  • P: Primary Task
  • S: Secondary Task

Weekly reports and meeting notes

Link: https://github.com/altanborali16/SWE574-Group2/wiki/Meeting-notes
Status: continuously updated

Milestone Review

Summary of project status

  • The team intended to work by transferring features from various team members' repos. This approach did not work as intended this is why corrective action was introduced after the presentation of progress on October 21.
  • As of October 21, signup and secure login features were implemented, committed to git, and deployed.

Lessons learned (reflection)

Evaluation of deliverables status and impact on the project plan:
List of Deliverables and their status:
Software Requirements Specification - partially completed, sections VI.B and VI.C are work-in-progress
Software Design (UML diagrams) - partially completed Scenarios and Mockups - partially completed. Project Plan, Communication Plan, Responsibility Assignment Matrix - agreed and kept updated
Weekly reports and any additional meeting notes - continuously updated
Individual Contributions - completed
A pre-release version of software - completed; see details below

Corrective action plan will allow the team to build the features missing from the previous semester; they will serve as a foundation for the development of new features (badges and recommendations) in the next development phase. See workplan.

Evaluation of tools and processes to manage the project:

  1. The project processes are managed exclusively using github tools (issues, Wiki, discussions, and Github Project). All team members are responsible for grooming the backlog of issues assigned to them. This eliminates the need for additional "housekeeping" during meetings.
  2. The team works in iterations and uses the "Iterations" feature in the Github Project to define the iteration scope.
  3. Meetings are minuted, and minutes are shared on the Wiki page. This allows us to keep all team members up to date.
  4. Decisions taken at meetings are recorded on a separate page Desicions and Policies for easy reference.
  5. The team chose a project manager responsible for setting and assigning tasks and decomposing complex tasks into manageable steps. The project manager also controls deadlines and holds team members to account.

Individual Contributions (references to issues, PRs, comments, commits etc)

  1. Group Member Name: Altan
  • Responsibilities: Frontend development, code revision, project communicator, project manager. Which I failed as project manager so I am no longer the project manager.

  • Main contributions: Research and brief test page for pwa. Initial creation of Login and Register pages. Folder structure of frontend. Code refactoring and pair coding with Enes.

  • Code-related significant issues: All the issues with a label "component : frontend" is either done, reviewed or pair coded by.

  • Non-code-related significant issues: Creating project on github, controlling the status of issues, adding issues to iterations. Joined Feridun's deployment process to understand how to deploy project.

  • Pull requests that you have created, merged, and reviewed. I tried to merge initial-frontend branch to dev-frontend which I had conflicts and could not manage to resolve them, I asked Efe for help and thanks for him he manages my merge.

Commits :

  1. a733e84
  2. 609ba15
  3. 21f9d81
  4. 52d33bd
  • Additional information: N/A
  1. Group Member Name: Aliser
  • Responsibilities: Frontend development, code revision, design and documentation

  • Main contributions: Creating User scenarios and activity diagrams (together with Yana) and Event Flow Diagrams

  • Code-related significant issues: The issues that you have personally resolved or reviewed that contribute to the code base demonstrated during the demo. You must provide the relevant PRs and commits.

  • Non-code-related significant issues: I conducted preliminary work on how to create user scenarios, activity diagrams, and event flow diagrams, and developed new approaches while creating the diagrams.

  • Pull requests that you have created, merged, and reviewed. If you experienced any conflicts regarding the pull requests you have engaged in, briefly summarize the conflicts along with how they were resolved.

  • Additional information: Mention any additional task you have performed that is not listed above.

  1. Group Member Name: Efe
  • Responsibilities: Architecture, Backend development, code revision, CI/CD management
  • Main contributions: Backend architecture, backend design for the new features, backend development, branch and pull request management, support cloud ops led by Feridun.

All CLOSED issues I was part of: https://github.com/altanborali16/SWE574-Group2/issues?q=is%3Aissue+is%3Aclosed+assignee%3Aefestrikesback

++ more commits under feature branches feature/efe-33-build-security-configuration-2 efe-27-initialize-backend dev-backend dev-backend-deployment

  • Non-code-related significant issues:

Resolved branching and merge issues, reviewed all PRs, created development policies and tutorials for them, and added personal notes from the class and our weeklies...

  • Pull requests that you have created, merged, and reviewed.

Code review, merge (Altan created the PR) Merge pull request #28 from altanborali16/development-frontend

Create, merge Merge pull request #31 from altanborali16/feature/efe-27-initialize-backend

Create, merge Merge pull request #36 from altanborali16/feature/efe-33-build-security-configuration-2

Create, merge Merge pull request #46 from altanborali16/dev-backend-deployment-merge

The first major conflict happened while I was trying to push my feature to the dev branch. I have spent hours and had many commits at feature/efe-33-build-security-configuration, due to origin & remote conflict when I switched to the main all my code disappeared and I could not revert back due to ambiguity. After spending countless hours learning and understanding local & remote commit history differences I was able to navigate a previous commit that had the majority of the code. I deleted conflicting files from my repository then I was able to switch to the previous commit. I created a new branch and prepared a tutorial for other members. Even though we have a tutorial now, we have decided to make sure branch ops are handled by the most experienced (traumatized :( )

The second major conflict happened while we were trying to combine the backend and frontend under one branch to have an easier time deploying them to EC2. Altan tried to merge his branch login-initial-build to dev-backend-deployment and had the exact same problem I had previously. Thanks to our experience we have quickly fixed it by creating a clean branch fetching it and then pushing local codes manually and moving on to our deployment.

  • Additional information: We have decided to have a bit harsher leading method during the week extension period. I was elected to supervise and plan our significant sprint. I created new rules and policies to make sure we delivered the work and experienced no major issues we had previously.

Reform notes

  1. Group Member Name: Enes
  • Responsibilities: Frontend development, code revision, mockup design, documentation

  • Main contributions: I was one of the responsibles for the initial development of the Login and Register pages together with Altan. I was also responsible for designing the UI of the project. You can see the UI designs Here.

  • Code-related significant issues: Understanding how Bootstrap works was a little bit challenging for me.I am still trying to improve myself. I also took some time to implement validations on the frontend as I did not know how to do it. I and Altan decided to use Yup library for implementing validations on the login/register pages so we have gone through some of Yup implementation videos from several sources.

Here is the list of commits that is done by me as far as the frontend development is concerned.

  1. Commit a44c6f
  2. Commit afe0e2
  3. Commit d27555
  • Non-code-related significant issues: I gave several suggestions on how the recommendation system and badge system will work and how it's going to look like on the frontend.

  • Pull requests that you have created, merged, and reviewed. I have not took any role in pull requests as Altan did it already.

  • Additional information: N/A

  1. Group Member Name: Feridun

Responsibilities:

  • DevOps, Dockerizing, and deployment operations for the software development team
  • Ensuring successful CI/CD pipeline setup and maintenance
  • Configuration management, automated testing, and deployment to cloud environments
  • Monitoring, troubleshooting, and maintaining deployment environments

Main Contributions:

  • Designed and implemented Docker containers for efficient and scalable backend and frontend deployment
  • Set up Docker Compose for local and production environments
  • Configured CI/CD workflows to automate testing, building, and deployment processes
  • Worked with team to troubleshoot and resolve deployment issues, including database and connectivity issues on cloud infrastructure
  • Ensured proper security group configurations and network permissions in AWS for secure access to services List of related commits
  • Commit Link
  • Commit Link
  • Commit Link
  • Commit Link

Code-Related Significant Issues:

  • Debugged and resolved deployment issues related to PostgreSQL container initialization and volume mounting on EC2, enabling reliable backend connectivity
  • Addressed cross-origin (CORS) issues to ensure successful communication between frontend and backend services

Non-Code-Related Significant Issues:

  • Configured EC2 instance permissions, security groups, and environment variables to support backend and frontend integration
  • Resolved issues with Docker daemon permissions, enabling proper user access and operational efficiency in development and production environments

Pull Requests Created, Merged, and Reviewed:

  • Created PRs for Docker configuration files, environment variable management, and CI/CD pipelines
  • Merged team PRs after code and functionality reviews, including conflict resolution on configuration files
  • Reviewed and advised on Dockerfile optimizations for reduced build time and improved security

Additional Information:

  • Provided documentation for deployment procedures, Docker setup, and CI/CD workflows for team reference
  • Assisted with cloud service configuration, including AWS IAM roles and permissions, to streamline deployment processes
  1. Group Member Name: Yana

Customer feedback

The customer was not satisfied with the achieved progress and required that corrective action be taken. Please see the Corrective action plan below.

Work plan

Corrective action plan before November 04

Week Tasks
October 21-27 - Set multiple custom templates for community posts
- Transfer project from the previous semester to group repo, including requirements and UML diagrams
- Document APIs to facilitate group development
- Update use-case scenarios and wireframes
- The team to analyse project architecture
- Start converting the existing React.js frontend to PWA
October 28-November 03 - Fix the community visibility issue (public/private)
- Implement post upvote/downvote
- Implement reply to posts (commenting)
- Implement user feed
- Implement leave community
- Write a new milestone 1 report and present to the customer

Tentative project plan and scope of work between November 05 and December 16 (final release):

Task Description Oct 28-Nov 3 Nov 4-10 Nov 11-17 Nov 18-24 Nov 25-Dec 1 Dec 2-8 Dec 9-16 Dec 16
Implement user profile β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
Implement moderating in communities β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
Identify, design, and implement entities for gamification β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
Unit & integration tests β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
Implement recommendation mechanism and badges β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
MVP report β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
Implement Advanced search β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
Frontend refinement and system deployment β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
System testing and report preparation β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
Product release β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ

Software pre-release version notes

Release Name: 0.1.0-alpha (pre-release option)

Release Description: Brief description of requirements that are covered

Tag name: customer-milestone-1

Android package file (.apk) included

Instructions for building and running the software should be provided, including Docker build instructions and environment variables.