salesforce / gsoc

Salesforce open source projects in Google Summer of Code 2019
BSD 3-Clause "New" or "Revised" License
19 stars 7 forks source link

Advice on submitting proposals for contributing to Design System React project #13

Open JuCJeff opened 5 years ago

JuCJeff commented 5 years ago

I was wondering if I can get some advice from Salesforce GSOC in composing my proposal to contribute to Design System React project before I submit my draft?

interactivellama commented 5 years ago

Please email your draft proposal to @interactivellama and @futuremint . Our emails are on our github profiles.

The formats/templates on the GSoC website are a good general format.

aswinshenoy commented 5 years ago

@interactivellama @futuremint I had submitted a draft proposal through the GSoC dashboard some days ago, and it would be greatly helpful if you could kindly review it and suggest improvements... Sorry for being a little late :)

interactivellama commented 5 years ago

@aswinshenoy I'll take a look and comment. We expected GSoC to notify us this week when draft proposals where submitted, but it looks like they don't.

I haven't looked at yours yet, but my general comment to everyone is to consider components that have many user interactions (keyboard/mouse events) and/or need accessibility patterns. I believe you will learn the most and be the most satisfied with your work. Just this week, while looking into a bug, I was reminded of the order of mouse events. Also testing these components is more difficult to do. You can't just render out the DOM snapshot or search for a class and call it done. Components that move focus around are generally the most difficult to build and test.

Taking props in and rendering static markup to the page is not difficult to understand and is straightforward functional programming that I hope most "backend programmers" would understand from the start. Showing interest in completing two highly interactive components will help non-UI engineers implement their web applications more than 10 non-interactive components, because you have to understand UI and browser concepts and the "odd things" humans try to do on components more in-depth--for instance opening a menu with the keyboard, but when selecting item with the mouse.