Proposal vs Final Product
As many projects, the expectations sometimes don’t match the reality. After speaking with my mentors, we decided to have this list of features:
- Global setting to activate or disable logging (some websites looking for performance or with 1 admin do not require logging)
- Settings to self-clean logs after specific time period, e.g.: rolling log for past 90 days.
- Settings to notify administrators (via email) of specific actions (e.g.: a successful admin login generates a notification mail to a super admin, new content creation generates an email... etc.).
- View all logs via an admin screen, with a filter for date, the extension type, user account.
- View specific user action logs under the User Manager page
- General logging to include User IP, Username, User ID, Event Action, Event Location, Time/date.
- System will utilize Joomla permissions system to allow super admin to choose what groups could view this extension?
- Button to export Logs to CSV file
- If IP logging is activated, a notice should show to inform the admin that this is happening (perhaps a notice to agree to the once?)
- The super user can undo users actions from the component's dashboard
I can say that I achieved almost all of these features except for the last one as it would take much time which I didn’t have during GSoC.
Project Features and Benefits
As a super-user you would expect to have a plugin that stores the logs of the users and to have a component that shows you these logs. You can sort these logs by date, user or extension.
This image will show you the component part:
GSoC experience was great to me. Watching PHP communities speak about Joomla as a better/stronger CMS always made me want to learn more about this great tool, but I didn’t have the chance/time to do so. I took the chance of GSoC to learn Joomla and to be a part of its great team.
I learnt a lot from this project. I saw what it means to build a well-designed software, how different design patterns can be used and the importance of coding standards.
I saw the power of the open-source and how people that don’t know you and won’t get paid can help you to achieve a common goal. It was really awesome. This made me feel that I’m a part of a great team and want to give more to this great team.
My contribution to the Joomla community would be taking care of my project, fix its bugs and help adding more feature in the future. Also from time to time I’ll help with some issues. I also can help with the documentation.
- This is the link to the pull request I submitted to the github repo of the project https://github.com/joomla/joomla-cms/pull/11834 .
- This is the link to my page on JCM where you can find the articles that I wrote about my project http://magazine.joomla.org/site/itemlist/user/46953-mohamedkaram
- This is the link to Documentation on Github Wiki's https://github.com/joomla-projects/gsoc16_recording-action-logs/wiki/