Name (public):
Ela Opper
Do you meet the eligibility requirements outlined at https://wiki.gnome.org/Outreachy#Eligibility (if no, explain why not)?
Yes
Preferred pronoun (e.g. she, he, they):
She
E-mail address:
elaarad@gmail.com
IRC nick (public):
FoxyBrown
Internet presence (e.g. web page, blog, portfolio, GitHub, Twitter, LinkedIn links) (blog will be displayed publicly):
Location (city, state/province, and country) (public):
Tel Aviv
Education completed or in progress (include university, major/concentration, degree level, and graduation year):
B.Sc in Computer Science from The Academic College Of Tel Aviv Jaffa
How did you hear about this program?
Through 'She Codes' group
Are you applying for Google Summer of Code and, if so, with what organization(s)?
No.
Please describe your experience with the organization's product as a user and as a contributor (include the information, as well as a link or an attachment, for the required contribution you made to the project you are interested in here):
I spent the last day and a half installing MediaWiki server on my machine with all its dependencies and manage to contribute (I think I've managed...) this task -
https://phabricator.wikimedia.org/T75209
with this code:
https://en.wikipedia.org/wiki/User:Eee888/common.js
Please describe your experience with any other FOSS projects as a user and as a contributor:
Umm... This will be my first time as an open source contributor.
Please describe any relevant projects that you have worked on previously and what knowledge you gained from working on them (include links):
I have worked for mostly large companies that provide complex front-end products (real-time, SDK's, ext.):
Retalix, Liveperson, Appsflyer, Gigya.
What project(s) are you interested in (these can be in the same or different organizations)?
Notifications in MediaWiki.
Who is a possible mentor for the project you are most interested in?
Moriel Schottlender and Matthew Flaschen
Please describe the details and the timeline of the work you plan to accomplish on the project you are most interested in (discuss these first with the mentor of the project):
On the 1-2 weeks I would explore and learn in details the exists notification system (mostly on the server side)
On the 3rd week I'll add the timed notification infrastructure to the server side
On the next 4-6 weeks I'll implement the client side modal(?) which will enables the user to config the desired notification to the article (deliverable).
On the 7th week I'll integrate smoothly the client side with the server side and will add some Unit Tests to the client side components (deliverable).
On the 8th week I'll explore limitation of non-supported JS explorers and try to figure out a solution (deliverable?).
On the 9th week I'll explore the possibility to determine timed notifications on non-articles entities (deliverable?).
On the final week I'll be available to bugs, change requests and all kind of things that comes up in projects like these (deliverable?).
Participation:
Personally, I like working "through the hands", which means that I'll try to get along myself, till the point I would not have an idea where to progress. Then I'll ask questions on the relevant forum(s), and will explore others similar code/project.
I like to work in short intervals, so my commits(=check-ins) will be continuous (when I'll grasp the core idea of the task).
I will communicate with my mentors with every accomplishment/major issue.
And of course I'll be highly responsive to them.
Past experience with FOSS:
Unfortunately, I have no experience with FOSS, only with startups and enterprises - but I'm looking forward to it!
Will you have any other time commitments, such as school work, exams, research, another job, planned vacation, etc., between May 30, 2017 and August 30, 2017? Please provide exact dates for these commitments and the number of hours a week these commitments take.
Yes - I'll be spending time with my daughter every day from 1PM till 5PM **UTC**.
I would complete my tasks later at night if I'll see I'm late behind.
We also reserve a vacation on August 23rd till 30th. I suppose that I could take my work there, but I rather not.
My typical working hours:
6AM-1PM (sometimes till 5PM **UTC**
If a student, please list the courses you will be taking between May 30, 2017 and August 30, 2017, how many credits you will be taking, and how many credits a full-time student normally takes at your school. Please provide a link or upload your program's suggested curriculum by semester, which includes the suggested number of credits in each semester. Please provide a link or upload your school's academic calendar.
Microtask: {T75209}
https://outreachy.gnome.org/?q=view_projects&prg=8&p=1631
-----
**Copied from T2582:**
Milestones:
Week 0 (May 23-29) - Perform community bonding, open my first blog and did a lot of Echo reading (both code and documentation),
start by figure out how to create a new notification type and write a feature flag for the feature.
Week 1 (May 30- June 5) creating a new notification type and write a feature flag for the feature. Creating new Article Reminder API
Week 2 (June 6 - June 12) Enriching the Article Reminder API
Week 3 (June 13 - June 19) Exploring the time delay mechanism for the API and improve the API
Week 4 (June 20 - June 26) Creating the UI button that opens up the Article Reminder menu and popup menu itself
Week 5 (June 27 - July 3) Continue developing the popup menu, fix API code review comments
Weeks 6-7 (July 4 - July 17) Continue developing the popup menu, fix API code review comments
Weeks 8-9 (July 18 - July 31) Continue developing the popup menu, fix API code review comments
Week 10 (August 1 - August 7) Writing a new and improve notification type (based on the first POC)
Week 11 (August 8 - August 14) I'll explore limitation of non-supported JS explorers and try to figure out a solution (deliverable?).
Week 12 (final) (August 15 - August 21) I'll be available to bugs, change requests and all kind of things that comes up in projects like these (deliverable?).
Primary mentor: <Phabricator Username>
Co-mentor: @Mattflaschen-WMF, @Mooeypoo
---
Summery:
So!
The final commits of my project are super close to being merged into the master branch, all comments were addressed, the feature is working fluently - I am a proud mother of a WikiMedia feature!
The internship was very interesting and enriched experience: at first, I did not tell my left from right (all the new tools I had to learn, the methods, the conventions, the alternatives of doing every little thing) but as usual, as in all workplace, I managed to get on top of things and started to make a progress.
My mentors were extremely friendly and supportive, gave me all the information needed and beyond, were super available and gave me the feeling that I can approach them with any question, anytime.
The outcome of the feature is a game changer for the Echo extension in WikiMedia - it is the first scheduled feature in the extension, instead of being just responsive to the actions the users are doing right now.
The feature itself is protected with a feature flag, and placed in the UI "front row" - a new tab near the Wishlist, Edit and History tabs.
When the user clicks on it, a popup is opened and a page reminder form is shown inside of it.
The user filling the form and then save the reminder. Then there is a backend which set this scheduled event into the data base and a maintenance script that will run every 15 minutes and checks whether there are scheduled events needed to be activated.
When and if the maintenance script finds such event(s), those events are being triggered through the system and the user is getting a new notification about his reminder with his own comment (if he adds one, of course).
There are many next steps to this feature, this is only the MVP of it (multiple reminders per page, reminder deletion, reminder edit
and event reminder snooze (!) BUT in the Outreachy internship time frame, the MVP was more than enough.
I would like to thank again to my mentors and of course to Outreachy who gave me this opportunity to grow and learn.
Ela.