blob: 494f1e7a524788dc102a6c56412e41cac4de69d1 [file] [log] [blame]
#summary Ideas List for GSoC 2011
#labels Importance-Featured,Contents-Draft,Featured
= Introduction =
_While Melange will apply as an organization, there is no guarantee that we will be accepted as an organization for GSoC 2011. You're invited to drop by at #melange on FreeNode to discuss. Help us make it happen._
== [PossibleMentors Possible Mentors] ==
These are, in order, the most likely or best mentors for this project idea.
== Skills ==
* All developers will need to have experience in, or be willing to learn Python.
* Prior experience with Django or an equivalent framework would be a distinct plus.
* Knowledge of JavaScript (AJAX), and a feeling for web design is big plus as well.
== Difficulty==
'Easy', 'Moderate' or 'Hard'. Hard is not necessarily better! We are risk averse!
== Early Spinoffs ==
We want code that we can actually use, not code that shows great promise. At the half way stage, you MUST have something complete that we can actually use as a 'spin off' of the work. In discussing projects we will try to help you find ways to have spinoffs along the way.
----
----
= Idea Details =
----
=Testing, Code Guru, Code Quality Assurance=
===Description===
Melange is sorely lacking tests, and it's hurting our development speed significantly. What we need is a extensive set of unit tests for our logic and views, as well as functional tests to make sure that all views work as expected. This will require learning the codebase first, so as to know what something should do. Test-based exploring would be most suitable (learning how the codebase by writing tests that confirm that things work a certain way). We want test coverage such that it is possible to refactor a core function without doing any manual testing, and still be fairly certain that everything works as expected. On top of that, we want to be able to start doing TDD, which is a lot easier if there are a lot of tests already. All developers will be asked to include tests with their changes as soon as we start doing TDD, so once the momentum picks up things should get easier.
A lower priority, that can be pursued once we have decent test coverage, is to make sure that all pylint errors are fixed, and that all warnings are fixed or suppressed as appropriate. This way we can require that each commit introduces no new pylint errors, which will ensure some level of code quality.
===Skills===
* Python
* Django
* Testing
===Difficulty===
Moderate, but requires a lot of effort
===Mentors ===
* Sverre Rabbelier (SRabbelier on #Melange)
= Other ideas =
* integrate OpenSocial into Melange
* add functional tests using twill
* Profiling and Caching developer tools
* extend functionality of our buildbot (post commit hooks, pylint integration, application deployment to testing App Engine instance)
* add features that will enable to organize GSoC/GHOP Meetings (creating new events, managing participants, integration with Google Calendar API),
* Melange API allowing any external page to list current status of tasks and tasks list, participating projects etc.
* generating pdfs, docs of student applications
* integrating export functionality of tables, proposals with Google Docs (use Google Docs API)
* upload of student presentations (storage, viewer)
* work on selected issues from Melange Issue Tracker
* Non US students should be able to upload their Tax forms via their Student dashboard page (no more faxing or sending via email)
* Melange should enable admins/host to easily autogenerate CPT letter or letter of acceptance if one is needed/requested by student. This would generate pdf file ready to print based on the data from student profile (including program logo).
* User (Roles) profiles (mentor/admin/student/organization admin/) with profile photo, functionality to share profile information with other GSoCers ) - privacy settings for your profile
* dates that are setup in GHOP and GSoC Melange configuration page can be later automatically put into faq and terms of program in specific places
* Melange survey module should have autosave forms functionality (just like in gmail)
* Google Calendar API support for events planning
* Adding other GSoCers as friends to your profile,
* Sharing profile data with other social network users
* Messaging module allowing to send messages to other users (emails) (Way to improve communication between GSoCers, GHOPers)
* Requesting profile data access
* Better geo location features
* Nice upload of profile photo with crop functionality via JS library.
= Some Rough Notes =
* Did we mention that we have an active IRC channel, #melange?
* Some words for you, to inspire more ideas: *[http://code.google.com/p/soc/wiki/TestingGuidelines Automated Testing]*, *World Domination* (ask), *Access Control Module*, *Profiling*, *Log Analysis*, *[http://code.google.com/p/soc/issues/list?can=2&q=&sort=-id Issue Tracker]*, *[http://code.google.com/p/soc/wiki/AccessControl Security]*, *Optimization(s)*, *Mentor Summit*, *Wiki*.