By announcing what you want to do in advance, you limit the risk of developing something that will not be integrated because it conflicts with plan/vision of other developers. Moreover you can get meaningful feedback on what to do and how to do it.
By all means try to contribute small things. It’s far easier to review and integrate 100 lines of diff in 3 files rather than 5000 lines in 30 files.
You should have an account on:
Present a new feature
For new features, the best way to present them is one (or several) user stories written on the “In order to <receive benefit> as a <role>, I want <goal/desire>” model. A good user story is a story worth to INVEST on: