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:
-
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
-
Administrative Features
- Developed comprehensive admin control features including:
- User ban management system
- Post/Comment moderation tools
- Quiz moderation capabilities
- Tag modification functionalities
- Developed comprehensive admin control features including:
-
Tag System Enhancement
- Implemented custom tag creation for posts and quizzes
- Developed searchable tag filtering for both forum and quiz sections
-
User Interface Features
- Implemented profile-related features:
- Ban status display
- Bookmarked comments visualization
- Integrated new activity stream notifications
- Enhanced role management through cookie implementation
- Implemented profile-related features:
Main Contributions
-
Major Implementations
- Developed the Search System
- Created the Guest View Interface
- Implemented the Dictionary Feature
- Established the Admin Control
-
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
- Implemented the Tag Management System:
-
Testing and Documentation
- Wrote comprehensive unit tests for Guest and Admin views
- Contributed to standards documentation
- Conducted user testing for frontend features
-
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:
-
Implemented a robust mock setup function (setupAuthMocks) that configures authentication states for different user roles, making the tests more maintainable and reducing code duplication.
-
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
-
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.