Project Proposal for Google Summer of Code 2015
Title: Glitter Gallery Improvements
Organization: The Fedora Project
Mentors: Emily Dirsh, Sarup Banskota
Contact Details:
Full name: Nikunj Gupta
Email: nikunjboss@gmail.com || nikunj.lnmiit@gmail.com
IRC nick: mecyborg at irc.freenode.net || Skype ID: nikunjboss
Contact: +91-9413801201
Location: Jaipur, India, GMT +5:30
Link: LinkedIn
Synopsis
GlitterGallery is GitHub for designers - being developed by and for the Fedora design team, but hoping to be useful to all designers. It's a web app based on Ruby on Rails that allows designers and artists to create, share, and collaborate, backed by Git for version control, and intended to be part of a FLOSS design suite that includes
Sparkleshare - a git-backed, Dropbox like system that will automatically check in and push files in project directly to a shared git repo.
Magic Mockup - a javascript library you can insert into an SVG of mockups to enable interactive, click-through mockups
Inkscape
There is a lot of scope for improvement and creative ideas.
Goals
Public gallery of works - A public gallery for all public projects can be used to browse and explore works without having to be logged in.
Rating/Starring feature for project – Stars/Rating of projects that are public. Public projects will appear in the public gallery of works, and the stars rating will be displayed along with it. These public projects can be sorted following these ratings and stars.
Better commenting – Enhance the commenting system of the app by including thread support, pingback support, the ability to reference a specific region of a design in a comment.
External issue tracking - Glitter Gallery has an integrated issue tracker, but it would be useful to also be able to integrate with external bug/issue trackers such as GitHub and Bugzilla.
Enhance and develop a new User Interface (UI) for the app – As the app is for designers, the UI should be much more interactive and structured.
Project Description
Public Gallery of works
There are two kinds of projects in the app: Public and Private
Building a gallery which will be public for all the projects that are public
Can be used to view public projects without logging in to the app
The projects can be sorted and arranged by terms of ratings and stars
Rating/Stars for public projects
In public gallery, any project can be rated or starred
The user must be logged in to rate or star a projects
These stars and rating can be further used in multiple ways like sorting top projects, showing trending projects etc
Better Commenting
Current commenting system is very basic
Enhance the commenting system by involving
Thread support
Pingback Support
Referencing any specific area in project in comments
Addition of WYSIWYG text editor for comments
Ability to add links
Upload images
Basic text formatting
External Issue tracking
Currently the app features a basic integrated issue tracker
Integrating the external bugs/issue tracker like Bugzilla, GitHub etc.
Analysis of compatibility and availability of API
Enhance and develop a new User Interface (UI)
Current UI is good but it needs to be more interactive and smooth
Development of new elements for UI
Use of framework like Bootstrap, Foundation to enhance the UI
Developing javascript query for updates and alerts
TIMELINE
The time line would be iterative following various stages of development so that each feature can be integrated and enhanced by giving proper time. Stages for iteration
Stage 1: Analysis
Development of use case diagrams and data models
Communication with mentor
Analysis and design the process of implementations
Stage 2: Development
Create the required models
Add views and controllers for the models
Write the actual code and make it concise and optimized
Stage 3: Feedback and Documentation
Share updates with mentor and analysis on any feedback
Patch the issues if there are any
Prepare the proper documentation of the work
Stage 4: Testing and review
Perform the tests developed and check for issues
Take a review of the iteration. How did the iteration work?
Note down the possible improvements that can be done
Work flow
April 25st to April 30th
Setup the app in local environment for development
Prepare a blog to post regular updates regarding the progress
Discussion with the mentors of the plan for implementation
Bonding with other developers in the community
May 1st to May 15th
Design the functionalities of public gallery
Prepare the required use case diagrams and database models
Generate the models, views and controllers
Prepare the documentation and share with mentors
Move to Stage 4 for testing and review
May 16th to May 31st
Prepare structure for the rating and star system
Analysis of types of ratings needed and priority management
Move to stage 2 for actual implementation
After code, prepare documentation and share with mentors
Prepare the test case and review the feature
June 1st to June 20th
Develop rough sketches for new User Interface
Discuss them with the mentors and other developers for using frameworks like Bootstrap, Foundation etc.
Design the actual elements to use in the UI
Implement the designed UI and integrate the elements
Prepare the Javascript queries for dynamic alerts and updates
Implement these queries and integration with the new UI
Prepare documentation and share with the mentors and other developers
Move to stage for testing, review and feedback
June 20th to July 15th
Analysis of current commenting system of the app
Develop new models to enhance current commenting system
Prepare and update current models for thread support and project referencing feature
Documentation and Share the progress with mentors and discussion
Move to Stage 4 for testing and final review
July 16th to August 5th
Current app has an inbuilt issue tracker
Analysis of external bug/issue trackers (Bugzilla,GitHub etc)
Compatibility with Ruby on Rails
API and documentation availability
Available features and advantages
Prepare the database for integrating the external trackers
Write the code and integrate the API
Discuss the mentors and other developers
Move for testing and final review
August 6th to August 15th - Finalization
Integrating all the developed modules and features
Manual and Documentation
Testing and debugging
Finalization
NOTE: The workflow scheme is tentative and is subject to change.
Experience
I have submitted and merged commits to GitHub repository of the app. I am familiar with the codebase of the app.
I am a Computer Science student and I have done all the relevant courses including data structures, DBMS, Object Oriented Programming, Computer Networks, Operating Systems.
I am managing two websites based on WordPress/PHP
Gizmantra(since May 2013)
Movierdo (Since May 2014)
I am very much familiar with UI frameworks like Bootstrap.
Active Git user with projects hosted on GitHub.
Completed Ruby, Rails and JQuery courses on Codecademy.
I am also a intermediate Adobe Photoshop user.
I am using Linux since three years.
I am new to open-source community contribution although I am involved in Mozilla and WordPress communities. But I am looking forward to contribute more to the open-source world and be a helping hand for the communities.
Beside all this, I love to watch movies (I am picky about that) and I am big fan of music especially rock and retro era. I also love to play multiplayer games in my free time with my friends.
Participation and Availability
By the end of April 2015, I will be having my summer vacation which will last till July. So, I can assure 30-35 hours of work per week for this project and try to complete it in time. I will start maintaining a blog to communicate about my progress. I will stay in regular contact with my mentors, Emily Dirsh and Sarup Banskota to seek help whenever I am stuck and for discussing my work and progress.