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.