GSoC/2016/StatusReports/AliMohamed
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
- Phabricator API:
done
- Phabricator Library:
done
- Phabricator Tasks Model:
done
- Graph Reports:
done
- General Report:
done
- Controller Actions:
done
- Views:
done
- Custom Report:
pending
- Phabricator Library:
- Code Refactoring:
done
- CSS Refactor:
done
- JS Refactor:
done
- Project Model:
inprogress
- CSS Refactor:
- Controller Testing:
done
- Admin:
done
- Application:
done
- Custom Reports:
done
- Home:
done
- News:
done
- Projects:
inprogress
- Admin:
Weekly breakdown:
- Week 1 & 2:
done
- Using API to fetch project tasks by PHID:'
done
- Using API to fetch project tasks by PHID:'
- 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
- Adding test scenarios:
- Week 4:
done
- View test:
done
- Unit test for the Phabricator library:
done
- View test:
- Week 5:
done
- View test:
done
- Unit test for the Phabricator library:
done
- Adding tasks statistical graphs:
done
- View test:
- Week 6:
done
- Completing tasks statistical graphs:
done
- Review Issues of Phabricator Integration:
done
- Completing tasks statistical graphs:
- 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
- Review Issues of Phabricator Integration:
- Week 9:
done
- Review Issues of Phabricator Integration:
done
- Update Projects Controllers (the web app and api version):
done
- Generate tests for controllers:
inprogress
- Review Issues of Phabricator Integration:
- 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
- Re-implement phabricator tasks model:
- Week 12:
done
- Review Issues of Phabricator Integration:
pending
- Review Issues of Phabricator Integration:
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.