Proposal
Please describe your proposal in detail. Include:
An overview of your proposal
I'd like to make 5 major changes/improvements to GlitterGallery. These also serve as the final deliverables at the end of the coding period.
- Support multiple means of authentication (currently only OpenID is supported) as proposed by Emily in Issue #56 (https://github.com/glittergallery/GlitterGallery/issues/56).
I gather from the commit history that devise was used earlier on in the project, but scrapped later (couldn't find a reason anywhere yet). However, I feel that devise can cater to this need pretty well. Also, as Emily mentioned, I'll keep an option for the administrator to change the allowed authentication methods.
Grit is no longer actively developed, and although there is no current use case in GlitterGallery where Grit fails, it surely could happen in the future.
- Create an issue tracker. (Something on the lines of Github's issue tracker)
Though the basic idea is the same as GitHub's issue tracker, as Sarup suggested - It'd be good to have the option of creating an issue by just commenting, instead of having to go to an issues page and create one. This could be implemented as a 'mark as issue' checkbox when creating a comment.
- Incorporate social features - including but not limited to - a public project gallery, a stars/rating/voting feature.
Each project will have an option of being made public, and a stars attribute. Public projects will appear in the public gallery, and the stars rating will be displayed along with it. Projects in the public gallery will be sortable by various factors such as stars, creation date etc.
- Improve the contributor experience.
The current documentation is indeed quite good (Thanks to Sarup Banskota's work) and has everything that a seasoned developer needs, but it can be made more beginner friendly. The first step would be to define a concrete development workflow. I'd also like to integrate with a continuous integration/delivery service such as Travis CI or Wercker and create a live demo that is in sync with the master branch.
The need you believe it fulfills
Any relevant experience you have
- I've been contributing to GlitterGallery, and am familiar with the codebase. Up till now, my contributions have primarily been cleaning up code, writing tests, fixing small bugs, updating to Rails 4, and enforcing best practices wherever possible. I've also started a branch with a new design, and am collecting feedback on the same.
- I'm well versed with Git, and understand the power and importance of Version Control.
- I'm a firm believer in 100% test coverage. I learnt this the hard way when working on a project.
- I've been working with Ruby on Rails for almost 2 years now. I've watched and understood every single RailsCast on railscasts.com (the free ones).
- I am familiar with front-end development. Very strong in HTML/CSS, not so much in Javascript.
- I play well with other people and enjoy what I do.
How you intend to implement your proposal
Implementation details are included in the Timeline.