From Fedora Project Wiki

Project Proposal for Google Summer of Code 2015

Title: Glitter Gallery Improvements

Organization: The Fedora Project

Mentors: Emily Dirsh, Sarup Banskota, Rohit Paul Kuruvilla

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.