GSoC/2016/StatusReports/AliMohamed

From KDE Community Wiki
< GSoC‎ | 2016‎ | StatusReports

KDE Reports

Project Name: Use Phabricator API to enhance KDE Reports

KDE Reports is a web application that shows graphs and reports for different KDE Projects. The main goal this year was to integrate Phabricator API with KDE Reports to get some interesting insights about project tasks. Additionally, some models needed to be refactored as the project one; which had 3500+ lines which is not a Rails style, also some controllers needed to be tested, test coverage had to be increased across the application and views needed to have assets pipeline in action.

Screenshots:

  • General Tasks Report

  • Pie Chart for total opened tasks per author

  • Timeline for number of tasks over time

  • Timeline for authors overtime



Status:

  • Phabricator API:
    done
    • Phabricator Library:
      done
    • Phabricator Tasks Model:
      done
    • Graph Reports:
      done
    • General Report:
      done
    • Controller Actions:
      done
    • Views:
      done
    • Custom Report:
      pending


  • Code Refactoring:
    done
    • CSS Refactor:
      done
    • JS Refactor:
      done
    • Project Model:
      inprogress


  • Controller Testing:
    done
    • Admin:
      done
    • Application:
      done
    • Custom Reports:
      done
    • Home:
      done
    • News:
      done
    • Projects:
      inprogress



Weekly breakdown:

  • Week 1 & 2:
    done
    • Using API to fetch project tasks by PHID:'
      done
  • Week 3:
    done
    • Adding test scenarios:
      done
    • Updating models and adding library for Phabricator API:'
      done
    • Integrating views of Phabricator API to project report:
      done
  • Week 4:
    done
    • View test:
      done
    • Unit test for the Phabricator library:
      done
  • Week 5:
    done
    • View test:
      done
    • Unit test for the Phabricator library:
      done
    • Adding tasks statistical graphs:
      done
  • Week 6:
    done
    • Completing tasks statistical graphs:
      done
    • Review Issues of Phabricator Integration:
      done
  • Week 7 & 8:
    done
    • Review Issues of Phabricator Integration:
      done
    • Refactoring Project Model:
      inprogress
    • Get view decorators outside models and update related tests:
      unfinished
    • Refactor rest of models:
      unfinished
  • Week 9:
    done
    • Review Issues of Phabricator Integration:
      done
    • Update Projects Controllers (the web app and api version):
      done
    • Generate tests for controllers:
      inprogress
  • Week 10 & 11:
    done
    • Re-implement phabricator tasks model:
      done
    • Re-implement fetching tasks from Phabricator API:
      done
    • Extract js files to assets folder:
      done
    • Getting the rest of js and css files to the assets folder:
      done
    • Make sure of clean and DRY views:
      done
  • Week 12:
    done
    • Review Issues of Phabricator Integration:
      pending



Final Thoughts:
At the end of the project, I would like to thank my mentor of the project. He has tried to help whether in the implementation and reviews. Also, I would like to thank every one has helped me on IRC, forums or anywhere. I don't thnk this will be an end to my contribution to that project. The project still needs more improvements and I am already learning a lot while I am developing it.

External links:
Review Requests

Me

IRC Nick: ali_moh

IRC Channels: #kde-www

This is awesome about GSoC: For the first time I am dealing with this large code base and try to clean it. Community helps a lot as I have tried to contact mentor and phabricator admins and all have helped.

This is what I learned during GSoC: First time to use mongo in a Rails Application so it was a nice experience. Also, I would like to continue contributing to the project and update it to its Ruby version and Rails.