# Mert Aydın
## Requirements fulfilled (Mobile app related)
### 1. F-1.1 New users shall register with a unique username and password.
**Description:**
The registration feature requires new members to create a unique username and password. This ensures secure, individualized access and maintains data integrity within our system.
**Issue:**
[Implement register page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/23)
**Pull request:**
[Feature/23 register](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/36)
#### Explanation of the code
The `RegisterRoute` class in the Flutter application serves as the registration screen, where users can create an account by entering their username, email, and password. Utilizing Flutter's StatefulWidget, it dynamically updates the UI in response to user inputs and validation results. The class employs text controllers to manage and validate user inputs and interacts with a business logic component (`RegisterBloc`) to handle the registration process, including displaying success or error messages. Efficient resource management is ensured through the appropriate disposal of controllers to prevent memory leaks, and the user interface is designed to be user-friendly, providing clear feedback during the registration process. This screen is integral to the user onboarding experience, facilitating easy and efficient account creation.
##### Screenshots

### 2. F-2.15 The system shall allow users to see other's memories on feed page.
**Description:**
The system is designed to enable members to access a feed of memories. This feature displays a curated collection of content, allowing users to easily browse through shared experiences and highlights within the community.
**Issue:**
[Implement feed screen ListView item](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/21)
**Pull request:**
[Feature/21 feed screen](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/38)
#### Explanation of the code
The `HomeRoute` class in the Flutter application acts as the home screen, showcasing a scrollable list of user stories. When initialized, it sets up a controller to manage the list's scrolling behavior. The interface, created using the `BlocConsumer` widget, changes dynamically based on the application's state, such as displaying a loading indicator during data retrieval or showing an error message if needed. Users can interact with the story cards, which provide key details like author, title, and location. Additional features include refresh controls to update the list and navigation to detailed story views or editing options for stories, enhancing the user experience by offering interactive and dynamic content.
#### Screenshots

### 3. F-6.17 The system shall redirect user to the memory detail page when the user clicks on the memory boxes on the timeline.
**Description:**
The system provides functionality for members to view memories on an individual basis. This feature allows users to focus on specific memories, offering a detailed and personalized viewing experience.
**Issue:**
[Implement story details page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/55), [Story Detail page text encoding issue](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/61), [Add icon to story detail page AppBar](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/65), [Story Detail Page UI Improvements](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/71)
**Pull request:**
[55 story details page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/67), [55 story details page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/78)
#### Explanation of the code
The `StoryDetailRoute` class in the Flutter application is a dedicated screen for showcasing the details of a specific story. It presents the story's content, author, and additional elements like location, date, tags, and likes in a detailed and interactive manner. The class uses a combination of widgets to display various aspects of the story, including its title, content in HTML format, and links to the author's profile. Additionally, it features interactive components for user engagement, such as liking the story and viewing comments. This detailed view enhances the user experience by providing a comprehensive and engaging presentation of each story.
#### Screenshots


### 4. F-4 The system shall allow members to create a personalized profile.
**Description:**
The system's profile requirements facilitate a comprehensive and customizable member profile experience.
Members have the ability to add a profile photo and a personal bio to their profile, enhancing their identity within the community. They also possess the flexibility to edit or remove their profile photo as needed, allowing for ongoing personalization. Similarly, members can edit their bio, ensuring their profile remains up-to-date and reflective of their persona. Additionally, the system grants members the capability to view other members' profiles, fostering a sense of community and connection among users.
**Issue:**
[Implement Profile Page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/84), [Implement Add/Change/Remove Profile Picture](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/92), [Implement viewing other users' profiles](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/94), [Profile page appbar bug](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/109), [Add/change profile picture error messages](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/122)
**Pull request:**
[Feature/84 profile page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/99), [[Profile] Avatar operations](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/101), [Feature/84 profile page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/103), [[Profile] Fix Profile page appbar bug](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/111), [[Profile] Add "Follow" button to user profile page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/123)
#### Explanation of the code
The `ProfileRoute` class in the Flutter application presents a user's profile page. It's structured as a stateless widget, indicating that it doesn't manage any state changes internally. The profile page is designed to display detailed user information, including an avatar, biography, and a list of stories created by the user. The user details are fetched asynchronously and displayed using a `FutureBuilder`, ensuring the data is presented once it's available. The profile page dynamically adjusts its layout based on the data fetched, such as showing error messages or a loading indicator as needed. Interactivity is a key aspect of this class, with features allowing users to view and interact with stories. Each story is presented as a clickable card that leads to a detailed view of the story. Additionally, the user's avatar and biography can be updated, reflecting changes immediately in the UI. This class provides a comprehensive and user-friendly view of a profile, enhancing the overall user experience by presenting personal and created content in an accessible and engaging manner.
#### Screenshots


## Code Reviews
| Pull request | Author |
|------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------|
| [Feature/login](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/9) | Ayhan Çavdar |
| [Feature/57 home pagination](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/59) | Ayhan Çavdar |
| [Feature/69 change app launcher logo android](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/70) | Sadık Kuzu |
| [Feature/68 add Makefile for mobile repo](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/77) | Sadık Kuzu |
| [Feature/85 Redefine CI/CD Pipelines](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/86) | Ayhan Çavdar |
| [https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/90](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/90) | All contributors |
| [Hotfix/105 remove validation of username](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/106) | Sadık Kuzu |
| [Feature/96 activity stream](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/9) | Ayhan Çavdar |
| [Feature/132 activity stream tests](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/134) | Ayhan Çavdar |
| [Feature/135 landing tests](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/136) | Ayhan Çavdar |
| [Test/137 increase recommendation test coverage](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/142) | Sadık Kuzu |
## Pull Requests
| Pull request | Author |
|----------------------------------------------------------------------------------------------------------------------------------------------|------------|
| [Feature/21 feed screen](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/38) | Mert Aydın |
| [Feature/44 fetch stories](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/58) | Mert Aydın |
| [Feature/55 story details page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/67) | Mert Aydın |
| [Feature/55 story details page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/78) | Mert Aydın |
| [Feature/55 story details page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/79) | Mert Aydın |
| [Dev->Main](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/80) | Mert Aydın |
| [[Network] Change base url](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/89) | Mert Aydın |
| [Feature/84 profile page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/99) | Mert Aydın |
| [[Profile] Avatar operations](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/101) | Mert Aydın |
| [Feature/84 profile page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/103) | Mert Aydın |
| [[Profile] Fix Profile page appbar bug](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/111) | Mert Aydın |
| [[Profile] Add "Follow" button to user profile page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/118) | Mert Aydın |
| [Test/119 profile route unit tests](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/120) | Mert Aydın |
| [[Feature] Show error message if profile picture upload fails](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/123) | Mert Aydın |
| [Test/137 complete unit test coverage](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/pull/140) | Mert Aydın |
## Issues
| Issue | Created by me | Assigned to me |
|------------------------------------------------------------------------------------------------------------------------------|---------------|----------------|
| [Create issue labels for the mobile project](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/1) | | ✅ |
| [Create APK file using GitHub Actions](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/18) | ✅ | ✅ |
| [Network manager code clean-up](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/20) | ✅ | ✅ |
| [Implement feed screen ListView item](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/21) | ✅ | ✅ |
| [Implement splash screen](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/22) | ✅ | |
| [Implement register page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/23) | ✅ | ✅ |
| [Add network security config](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/41) | | ✅ |
| [Fetch stories from backend](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/44) | ✅ | ✅ |
| [Implement story details page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/55) | | ✅ |
| [Story Detail page text encoding issue](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/61) | ✅ | ✅ |
| [Delete mock_up.json](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/62) | ✅ | ✅ |
| [Fix story like counters not refreshing](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/63) | ✅ | ✅ |
| [Seperate widgets to their own files](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/64) | ✅ | ✅ |
| [Add icon to story detail page AppBar](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/65) | ✅ | ✅ |
| [Post comments](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/66) | ✅ | ✅ |
| [Story Detail Page UI Improvements](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/71) | ✅ | ✅ |
| [Story tag changes](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/73) | ✅ | ✅ |
| [Feed page endpoint change](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/74) | ✅ | ✅ |
| [Implement Profile Page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/84) | ✅ | ✅ |
| [Update changed backend IP](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/88) | ✅ | ✅ |
| [Implement edit bio feature](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/91) | ✅ | ✅ |
| [Implement Add/Change/Remove Profile Picture](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/92) | ✅ | ✅ |
| [Implement viewing list of followers](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/93) | ✅ | ✅ |
| [Implement viewing other users' profiles](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/94) | ✅ | ✅ |
| [Profile page appbar bug](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/109) | | ✅ |
| ["Follow" button missing](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/117) | ✅ | ✅ |
| [Profile route unit tests](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/119) | ✅ | ✅ |
| [Story detail route unit test](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/121) | ✅ | ✅ |
| [Add/change profile picture error messages](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/122) | ✅ | ✅ |
| [Complete unit test coverage](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1-mobile/issues/137) | ✅ | ✅ |