Individual Contributions (Milestone 3) ‐ Ümit Can Evleksiz - bounswe/bounswe2024group11 GitHub Wiki

Ümit Can Evleksiz

This document summarizes the work I have done for the Customer Milestone 3.

Personal Effort Document

All My CM3 Issues [56]

All My CM3 PRs [21]

Role

  • Frontend

Responsibilities

  • Frontend Application Development
  • W3C Standards
  • Feature Scoping

Main Contributions

  • Introduced the Tinify Image Compression API.
  • Implemented the Profile Photo Upload feature.
  • Collaborated with Hasan Kerem on the ideation and implementation of the profile photo upload feature.
  • Contributed to the ideation and development of the VoiceOver component for quiz words, assisting Hasan Kerem with its implementation.
  • Implemented sound feedback for correct and incorrect answers during quizzes, providing an engaging user experience.
  • Developed the Command Menu (EasyAccess) for power users.
  • Designed and implemented a new Hamburger Menu for mobile responsiveness.
  • Enhanced the Profile feature by adding Interest Tags and English Proficiency selection.
  • Ideated the Turquiz achievements and designed 21 unique badges.
  • Created the Achievements Database Schema.
  • Set up React Router Await-Suspense for improved page loading performance.
  • Developed loading skeletons for individual pages.
  • Integrated the React Loader Spinner Library for a smoother loading experience.
  • Implemented component-scoped data fetching using swr.
  • Designed and implemented the Quiz Creation feature with comprehensive form validation.
  • Improved the accessibility of new and existing components, ensuring compliance with accessibility standards.
  • Designed and developed a new personalized Feed feature.
  • Enhanced existing components for improved visuals and accessibility, including the Quiz Card, Forum Card, Leaderboard, Profile Head Section, Toggle Switches, and more.
  • Added a popover component to explain Turquiz Points on the profile page.
  • Refactored database schemas, eliminating redundant entries.
  • Unified the Forum and Quizzes sections for consistent appearance and behavior.
  • Implemented server-driven pagination for quizzes and forums.
  • Implemented server-driven semantic search for quizzes and forums.
  • Assisted Hasan Kerem in designing the "Suggested Forum Questions" card displayed under forum comments.
  • Refined the design of the Blocked Users Dialog Popup.
  • Added confirmation popovers for destructive actions, such as deleting a forum question or taking a hint.
  • Coordinated with the backend team to ensure schema accuracy and alignment with client application requirements.
  • Proposed and ideated improved Forum Image visibility and fallback images.
  • Implemented search tags and enabled adding interests (tags) directly from the feed.
  • Enabled interest removal directly from the profile page.
  • Redesigned the profile page to accommodate new features in a more compact and user-friendly layout.
  • Developed a new collapsible menu component for the home page targeted at unregistered users.
  • Added an English proficiency selector during the registration process and updated the profile page with this feature.
  • Populated the database with realistic forum questions, tags, and quizzes using a mix of app interface interaction, local development, scripting, and efficient use of Django fixtures for MySQL.

Code-Related Significant Issues

Issue Name Issue Link
Populate Database Tags #892
Distinct Illustrations For Quiz and Forum Creation #883
Replace Client-Side Sorting with Server-Side Sorting #879
Shuffle Quiz Choices #877
Add Follower and Followings to Profile Page #874
Add Suggested People To The Feed #873
Implement Sorting for Forum and Quiz Pages for Client #869
Set Proficiency On Profile #860
Set Proficiency on Register #859
Create Generic Collapsible Menu Component #856
A mysterious quiz card #853
Load Data From Server For Quiz Review #850
Turkish Characters Corrupted & Rendered Incorrectly #846
Connect Leaderboard Page to the Backend #841
Accessible Collapsible Menu #836
Profile Page Earned Points Explanation #835
Quiz Rework #832
Forum Rework #831
Implement Accessible and Responsive Hamburger Menu #829
Quiz Submission Bug #828
Client Side Pagination & Load More Button for Profile #824
Fix Z-index Issue On Quiz Type 2 with Hint #821
Implement Semantic Search On Forum #815
Display Image Hints as Img #810
Use Fallback Image on Uploaded Photos #803
Change in ID Retrieval Method in Backend #799
Multiple Achievement Popover Overlap #798
Refine and Enhance Copywriting on Client #794
Sound Effects on Take Quiz #791
Implement Receiving An Achievement Notification #784
Introduce Zustand for Quiz Creation Process #780
Implement Semantically Related Forum Questions Endpoint #774
Implement Follow Features on Client Service #771
Implement Loader For Components #766
Use SWR for component-scoped data fetching #765
Take Quizzes Question By Question #762
Change Quiz Serializer to Include My Latest Answers #760
Enrich Home Page with Feed Endpoint #754
Implement Review Quiz Feature #749
Badges/Achievements Route on Client #742
Enrich Profile Model to Include Customisation and Gamification #740
Upload Profile Photo on Register #737
Add New Sub-Features to Forum #733
Implement EasyAccess Menu #731
Add New Sub-Features to Profile #729
Implement Quiz Creation #728
Create Achievements Table and Many To Many Relations with Users #727
Ask Confirmation Before Deleting a Forum Question #721
Add a Child Component to <PageHead /> #720
Implement Suspense & Loading Indicators with React Router #719

Management-Related Significant Issues

Issue Name Issue Link
Ideation: Customisation for Newcomers #722
Quiz Freeze and Replace Feature Scopping #730
Create Demo Scenario For Final Milestone #734
Create and Document Testing Strategies #818
Populate Database Forum Questions #893
Design Badges for Achievements #743

PRs

PR Title PR Link
des(client): use distinct illustration for quiz and forum creation #884
refactor(client): improve loading states on home forum and quizzes #881
feat(client): server-side sorting on forum and quizzes #880
feat(client): update proficiency from user profile #876
feat(client): display follower and following count on profile #875
feat(client): add and remove interests, suggested tags and people. feed layout improvements #872
feat(client): add proficiency selection to register #866
feat(client): customised, configurable home feed #854
fix(client): no longer reliance on the local storage for quiz answers #849
feat(client): semantic search for quizzes #845
feat(client): connect leaderboard to server #839
ux(client): major accessibility, layout, and design improvements on quiz and forum feed #830
ux(client): display skeleton screens for route loadings #826
ux(client): (cmd+K) command menu to access navigation and actions #825
feat(client): voiceover context & component for pronunciation #786
feat(client): multistep quiz creation #764
feat(client): show answers question by question on quizzes #761
feat(client): add achievements route #750
feat(des): add all badges to public folder #748
feat(backend): add achievements model and relationship #741
feat: implement profile photo upload on register #738

Unit Test

Test Description Location
Quiz Title Displayed Text Location

Additional Information

  • Following a session with Suzan Hoca after the demo presentations, we agreed to enhance the client application’s accessibility by improving screen reader support and expanding overall accessibility coverage. You can find the related pull request here: PR #895.
  • I took a proactive role in product feature management for this milestone, leading the development of several key features. These include the comprehensive implementation of Achievements & Badges, the New Profile Endpoint (incorporating Interests and Proficiency), the redesigned Feed, and the Easy Access Command Menu.
  • Beyond my primary responsibilities in frontend development and adherence to web standards, I also contributed significantly to the backend, database population, and the demo presentation.
  • One of my standout contributions is the development of the quiz creation feature, detailed in this pull request: PR #764. This feature introduced global state management, a polished layout and UI, and user-friendly validation. To ensure transparency and effective communication throughout the development process, I included numerous screenshots and screen recordings in the pull request. I estimate the effort required for this feature to be equivalent to several weeks of work for a typical frontend developer.
  • For this milestone, I prioritized showcasing the progress and functionality of the implemented features. As a result, I provided extensive visual documentation, including screenshots and screen recordings, across various pull requests and issues.
Stats since CM2:
Milestone 1 Stats

Number of lines added to the repository.

Milestone 2 Stats

Number of commits made.

Stats for all the milestones combined for CMPE451:
Combined Stats
⚠️ **GitHub.com Fallback** ⚠️