From Fedora Project Wiki
mNo edit summary
mNo edit summary
Line 33: Line 33:
   
   
There is a lot of scope for improvement and creative ideas.
There is a lot of scope for improvement and creative ideas.




Line 47: Line 46:
   
   
==Do you have any past involvement with the Fedora project or with any another open source project as a contributor (if possible please add some references as well)?==
==Do you have any past involvement with the Fedora project or with any another open source project as a contributor (if possible please add some references as well)?==
    I've been contributing to GlitterGallery. I have done some bug fixes and minor improvements to codebase. I am studying and understanding the codebase of GlitterGallery. I am in regular contact with other developers and mentors.
I've been contributing to GlitterGallery. I have done some bug fixes and minor improvements to codebase. I am studying and understanding the codebase of GlitterGallery. I am in regular contact with other developers and mentors.


    Besides Fedora, I have done some PHP code implementation for Mozilla Hacks. Also, improved design suggestions were done.
Besides Fedora, I have done some PHP code implementation for Mozilla Hacks. Also, improved design suggestions were done.


   
   
Line 77: Line 76:
'''Rating/Stars and voting for public projects'''
'''Rating/Stars and voting for public projects'''


    In public gallery(“Inspire”), any project can be rated, starred and voted
In public gallery(“Inspire”), any project can be rated, starred and voted


    The user must be logged in to rate,star and vote a projects
The user must be logged in to rate,star and vote a projects


    These stars and rating can be further be used in managing feed for “Inspire” like sorting top projects, showing trending projects etc
These stars and rating can be further be used in managing feed for “Inspire” like sorting top projects, showing trending projects etc


    In Public Gallery, the stars rating will be displayed along with it. Projects will be sortable by various factors such as stars, ratings, creation date etc.
In Public Gallery, the stars rating will be displayed along with it. Projects will be sortable by various factors such as stars, ratings, creation date etc.


   
   
Line 89: Line 88:
'''Public Gallery of works'''
'''Public Gallery of works'''


    There are two kinds of projects in the app: Public and Private
There are two kinds of projects in the app: Public and Private


    Enhancing the public gallery (“Inspire”) which will be public for all the public projects interface
Enhancing the public gallery (“Inspire”) which will be public for all the public projects interface


    The projects can be sorted and arranged by terms of ratings and stars  
The projects can be sorted and arranged by terms of ratings and stars  




'''Better Commenting'''
'''Better Commenting'''


    Current commenting system is very basic
Current commenting system is very basic


    Enhance the commenting system by involving
Enhance the commenting system by involving


        Thread support
Thread support


        Pingback Support
Pingback Support


        Referencing any specific area in project in comments
Referencing any specific area in project in comments


    Addition of WYSIWYG text editor for comments
Addition of WYSIWYG text editor for comments


        Ability to add links
Ability to add links


        Upload images
Upload images


        Basic text formatting
Basic text formatting


        Gems to be used (Sir Trevor Rails, ckeditor or bootsy)
Gems to be used (Sir Trevor Rails, ckeditor or bootsy)


   
   
Line 122: Line 121:
'''External Issue tracking'''
'''External Issue tracking'''


    Currently the app features a basic integrated issue tracker
Currently the app features a basic integrated issue tracker


    Integrating the external bugs/issue tracker like Bugzilla, GitHub etc.
Integrating the external bugs/issue tracker like Bugzilla, GitHub etc.


    Analysis of compatibility and availability of API
Analysis of compatibility and availability of API


   
   
Line 132: Line 131:
'''Enhance and develop a new User Interface (UI)'''
'''Enhance and develop a new User Interface (UI)'''


    Current UI is good but it needs to be more interactive and dynamic
Current UI is good but it needs to be more interactive and dynamic


    Developing Javascript/Ajax query for updates and alerts
Developing Javascript/Ajax query for updates and alerts


== TIMELINE ==
== TIMELINE ==
Line 177: Line 176:
'''Before coding period -'''
'''Before coding period -'''


    Fixing small bugs and issues already on Git repository (already working)
Fixing small bugs and issues already on Git repository (already working)


    Addressing and improving suggestions by others
Addressing and improving suggestions by others


    Discuss with mentors about the implementation details and suggested improvements
Discuss with mentors about the implementation details and suggested improvements


    Working on the followers/following structure of the app
Working on the followers/following structure of the app


   
   
Line 189: Line 188:
'''April 25st to April 30th -'''
'''April 25st to April 30th -'''


    Setup the app in local environment for development
Setup the app in local environment for development


    Prepare a blog to post regular updates regarding the progress
Prepare a blog to post regular updates regarding the progress


    Discussion with the mentors of the plan for implementation
Discussion with the mentors of the plan for implementation


    Bonding with other developers in the community
Bonding with other developers in the community


   
   
Line 201: Line 200:
'''May 1st to May 15th -'''
'''May 1st to May 15th -'''


    Prepare structure for the rating/star and voting system
Prepare structure for the rating/star and voting system


    Analysis of types of ratings needed and priority feed management
Analysis of types of ratings needed and priority feed management


    Move to stage 2 for actual implementation
Move to stage 2 for actual implementation


    Prepare the test case and review the feature
Prepare the test case and review the feature


   
   
Line 213: Line 212:
'''May 16th to May 31st -'''
'''May 16th to May 31st -'''


    Gather all the development done for public gallery and work on improvement
Gather all the development done for public gallery and work on improvement


    Idealize the ratings,stars, voting and other factors for feed management
Idealize the ratings,stars, voting and other factors for feed management


    Enhance the interface of public gallery (“Inspire”)
Enhance the interface of public gallery (“Inspire”)


    Move to Stage 4 for testing and review
Move to Stage 4 for testing and review


   
   
Line 225: Line 224:
'''June 1st to June 20th -'''
'''June 1st to June 20th -'''


    Study and analyze the current UI
Study and analyze the current UI


    Discuss the enhancement with mentors and other developer
Discuss the enhancement with mentors and other developer


    Develop the Javascript/Ajax queries for dynamic alerts and updates
Develop the Javascript/Ajax queries for dynamic alerts and updates


    Implement these queries and integration with the new UI
Implement these queries and integration with the new UI


    Move to stage for testing, review and feedback  
Move to stage for testing, review and feedback  


   
   
Line 239: Line 238:
'''June 20th to July 15th -'''
'''June 20th to July 15th -'''


    Analysis of current commenting system of the app
Analysis of current commenting system of the app


    Develop new models to enhance current commenting system
Develop new models to enhance current commenting system


    Prepare and update current models for thread support and project referencing feature
Prepare and update current models for thread support and project referencing feature


    Move to Stage 4 for testing and final review
Move to Stage 4 for testing and final review


   
   
Line 251: Line 250:
'''July 16th to August 5th -'''
'''July 16th to August 5th -'''


    Current app has an inbuilt issue tracker
Current app has an inbuilt issue tracker


    Analysis of external bug/issue trackers (Bugzilla,GitHub etc)
Analysis of external bug/issue trackers (Bugzilla,GitHub etc)


    Compatibility with Ruby on Rails
Compatibility with Ruby on Rails


    API and documentation availability
API and documentation availability


    Available features and advantages
Available features and advantages


    Prepare the database for integrating the external trackers
Prepare the database for integrating the external trackers


    Write the code and integrate the API
Write the code and integrate the API


    Move for testing and final review
Move for testing and final review


   
   
Line 271: Line 270:
'''August 6th to August 15th - Finalization'''
'''August 6th to August 15th - Finalization'''


    Integrating all the developed modules and features
Integrating all the developed modules and features


    Manual and Documentation
Manual and Documentation


    Discussion with the mentors and other developers
Discussion with the mentors and other developers


    Testing and debugging
Testing and debugging


    Finalization
Finalization





Revision as of 18:15, 26 March 2015

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.


Why Fedora Project ?

I'm a FOSS fan and Fedora is a large and diverse organization with projects in multiple fields.

As being new to open source community, I am looking forward in getting involved with the organization which has an exciting culture and community. My aim is to stick with the community for long term.

Alongside, the project Glitter Gallery is very innovative as it brings the designers closer and helps in collaboration more effectively. It is based on Ruby on Rails which is the technology I intend to work on.


Do you have any past involvement with the Fedora project or with any another open source project as a contributor (if possible please add some references as well)?

I've been contributing to GlitterGallery. I have done some bug fixes and minor improvements to codebase. I am studying and understanding the codebase of GlitterGallery. I am in regular contact with other developers and mentors.

Besides Fedora, I have done some PHP code implementation for Mozilla Hacks. Also, improved design suggestions were done.


Did you participate with the past GSoC programs, if so which years, which organizations?

No.


Will you continue contributing/ supporting the Fedora project after the GSoC 2014 program?

Yes. I've been contributing before and I will continue the same.


Goals

Rating/Starring feature for project – Rating and voting 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, votes.

Enhancing Public gallery(“Inspire”) of works - Enhance the implementation and interface of the public gallery along with ratings and votes.

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 dynamic User Interface (UI) for the app – As the app is for designers, the UI should be much more interactive and dynamic. Implementation dynamic responses like alerts, messages etc.

Project Description

Rating/Stars and voting for public projects

In public gallery(“Inspire”), any project can be rated, starred and voted

The user must be logged in to rate,star and vote a projects

These stars and rating can be further be used in managing feed for “Inspire” like sorting top projects, showing trending projects etc

In Public Gallery, the stars rating will be displayed along with it. Projects will be sortable by various factors such as stars, ratings, creation date etc.


Public Gallery of works

There are two kinds of projects in the app: Public and Private

Enhancing the public gallery (“Inspire”) which will be public for all the public projects interface

The projects can be sorted and arranged by terms of ratings and stars


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

Gems to be used (Sir Trevor Rails, ckeditor or bootsy)


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 dynamic

Developing Javascript/Ajax 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

Before coding period -

Fixing small bugs and issues already on Git repository (already working)

Addressing and improving suggestions by others

Discuss with mentors about the implementation details and suggested improvements

Working on the followers/following structure of the app


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 -

Prepare structure for the rating/star and voting system

Analysis of types of ratings needed and priority feed management

Move to stage 2 for actual implementation

Prepare the test case and review the feature


May 16th to May 31st -

Gather all the development done for public gallery and work on improvement

Idealize the ratings,stars, voting and other factors for feed management

Enhance the interface of public gallery (“Inspire”)

Move to Stage 4 for testing and review


June 1st to June 20th -

Study and analyze the current UI

Discuss the enhancement with mentors and other developer

Develop the Javascript/Ajax queries for dynamic alerts and updates

Implement these queries and integration with the new UI

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

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

Move for testing and final review


August 6th to August 15th - Finalization

Integrating all the developed modules and features

Manual and Documentation

Discussion with the mentors and other developers

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.

I'm well versed with Git, and understand the importance of Version Control.

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, Sarup Banskota and Rohit Paul Kuruvilla to seek help whenever I am stuck and for discussing my work and progress.

During the project, I will be stationed at Jaipur, India (GMT+5:30).

Internet Connectivity

There are no evidence of long term disruption of Internet connectivity in the past (living here for more than four years). But, in the rare case of Internet failures, I have access to alternate Internet connections and I can continue my work.

Laptop Availability

I have Dell Inspiron N5110 and I'll be working on that. In case something goes wrong, I have a spare laptop and a computer that I can work on. Besides, to be on the safe side I will push changes to my branch on Git repository of Glitter Gallery as well as on my fork repository.

If mentor(s) disappear for a couple of weeks

If my mentor missed meeting, then I'll firstly contact him/her via email. And if there isn't any reply, then I will try contacting my secondary mentor and if there is still no response, then I will contact the org admins.