Ind Contributions Yunus M3 - bounswe/bounswe2024group6 GitHub Wiki

Yunus Emre Özdemir

Responsibilities

Throughout this milestone, I took on significant responsibilities in frontend development and testing, focusing on implementation of core features and administrative functionalities. My main areas of responsibility included:

  1. Core Feature Development

    • Implemented the Search functionality, creating a comprehensive search interface
    • Developed the Guest View, ensuring appropriate access control
    • Implemented the Dictionary feature, enhancing language learning capabilities
    • Created the Bookmark Word functionality for personalized learning
  2. Administrative Features

    • Developed comprehensive admin control features including:
      • User ban management system
      • Post/Comment moderation tools
      • Quiz moderation capabilities
      • Tag modification functionalities
  3. Tag System Enhancement

    • Implemented custom tag creation for posts and quizzes
    • Developed searchable tag filtering for both forum and quiz sections
  4. User Interface Features

    • Implemented profile-related features:
      • Ban status display
      • Bookmarked comments visualization
    • Integrated new activity stream notifications
    • Enhanced role management through cookie implementation

Main Contributions

  1. Major Implementations

    • Developed the Search System
    • Created the Guest View Interface
    • Implemented the Dictionary Feature
    • Established the Admin Control
  2. Feature Enhancements

    • Implemented the Tag Management System:
      • Custom tag creation
      • Searchable filtering
    • Enhanced User Profiles:
      • Word/Comment Bookmark functionality
      • Ban status integration
    • Improved activity notifications
  3. Testing and Documentation

    • Wrote comprehensive unit tests for Guest and Admin views
    • Contributed to standards documentation
    • Conducted user testing for frontend features
  4. Collaborative Contributions

    • Participated in lab assignments and documentation
    • Managed multiple feature-related pull requests
    • Contributed to milestone planning and implementation

Code-Related Significant Issues

Task Link Duration
Frontend: Implement Search #797 3 hours
Frontend: Complete Guest View #803 5 hours
Frontend: Implement Dictionary #806 4 hours
Frontend: Bookmark Word Functionality #809 1 hour
Frontend: Keep Role in Cookies and Implement isAdmin Hook #821 30 minutes
Frontend: Implement Admin Ban User Functionality #823 30 minutes
Frontend: Implement Admin Post/Comment Delete and Modify Tags Functionality #824 45 minutes
Frontend: Implement Admin Quiz Delete and Modify Tags Functionality #825 45 minutes
Frontend: Creating Custom Tags When Creating Post #826 30 minutes
Frontend: Searchable Custom Tags in Forum Filtering #827 30 minutes
Frontend: Show isBanned Information on Profile #882 20 minutes
Frontend: Show Bookmarked Comments in Profile #884 20 minutes
Frontend: Creating Custom Tags When Creating Quiz #894 30 minutes
Frontend: Searchable Custom Tags in Quiz Feed Filtering #895 30 minutes
Frontend: Complete Activity Stream Notifications #901 1 hour
Frontend: Deduplicate Tags in Tag Search Autocomplete #902 15 minutes
Frontend: Write Guest and Admin View Unit Tests #934 1.5 hours

Management-Related Significant Issues

Task Link Duration
Lab 8 - Standard(s) being followed (e.g. its documentation, implementation) #719 2 hours
Lab: User Tests for Frontend #754 2 hours

Pull Requests

Pull Requests Link Action
feat(frontend): implement search #799 Assigned
feat(frontend): complete guest view #805 Assigned
feat(frontend): implement dictionary #808 Assigned
feat(frontend): implement bookmark word functionality #818 Assigned
feat(frontend): creating custom tags when creating post #873 Assigned
feat(frontend): searchable custom tags in custom filtering #874 Assigned
feat(frontend): keep role in cookies and implement isAdmin hook #875 Assigned
feat(frontend): implement admin ban user functionality #881 Assigned
feat(frontend): show is_banned information on profile #886 Assigned
feat(frontend): show bookmarked comments in profile #887 Assigned
feat(frontend): implement admin post/comment delete and modify tags functionality #893 Assigned
feat(frontend): creating custom tags when creating quiz #897 Assigned
feat(frontend): add searchable custom tags in quiz feed filtering #898 Assigned
fix(frontend): deduplicate tags in tag search autocomplete #903 Assigned
feat(frontend): implement admin quiz delete and modify tags functionality #909 Assigned
feat(frontend): complete activity stream notifications #911 Assigned
feat(frontend): write guest and admin view unit tests #939 Assigned
Lab 7 Pull Request #507 Contributed
Lab 8 Pull Request #712 Contributed
Frontend 739: connected quiz related pages with backend #764 Reviewed
Frontend 765: added created and solved quizzes to profile page #768 Reviewed
feat(frontend): added saved posts and quizzes to profile #802 Reviewed
fix(backend): check authentication in user post feed #816 Reviewed
Frontend 804: started implementing comment pages #820 Reviewed
Frontend 855: implemented all profile image related features #869 Reviewed
feat(backend): is_banned field on profile endpoint #883 Reviewed
Frontend: Add Image Adding Functionality to Quiz Questions #916 Reviewed
Frontend 926: added skeletons to pages #935 Reviewed
fix(frontend): post compose tests are fixed #937 Reviewed
Frontend 924: implementation of resume/start #940 Reviewed
Profile Page Fixes for PostCard and CommentCard pages #943 Reviewed
fix(frontend): made forum recursive AGAIN #944 Reviewed
fix(frontend): Displayed images on quiz details page #950 Reviewed
fix(frontend): fixed profileEdit.test #953 Reviewed

Unit Tests

In this milestone, I significantly expanded the unit test coverage for the Forum component by implementing comprehensive test suites for different user roles. The updated forum.test.tsx now includes separate test suites for guest users, authenticated users, and admin users, providing better test isolation and more thorough validation of role-specific functionality.

Code can be found here: https://github.com/bounswe/bounswe2024group6/blob/main/frontend/src/pages/forum.test.tsx

Key improvements include:

  1. Implemented a robust mock setup function (setupAuthMocks) that configures authentication states for different user roles, making the tests more maintainable and reducing code duplication.

  2. Added dedicated test suites for each user role:

    • Guest users: Verified basic rendering functionality and confirmed appropriate restrictions on interactions like the inability to like posts
    • Authenticated users: Validated additional permissions such as the ability to like posts while ensuring admin features remain hidden
    • Admin users: Tested admin-specific functionality including the visibility of admin controls
  3. Enhanced existing tests with better assertions and more specific test cases, improving the overall test coverage and reliability.

These improvements ensure that the Forum component's behavior is correctly validated across different user roles, helping maintain the application's security and user experience requirements. The modular test structure also makes it easier to add new test cases for future feature additions.