From Fedora Project Wiki
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.
== 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 ==
== 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''' – 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.


'''Rating/Starring feature for projec'''t – 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.
'''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.  
'''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.  
Line 44: Line 71:
'''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.  
'''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.   
'''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 ==
== Project Description ==


'''Rating/Stars and voting for public projects'''
    In public gallery(“Inspire”), any project can be rated, starred and voted


'''Public Gallery of works'''
    The user must be logged in to rate,star and vote a projects


There are two kinds of projects in the app: Public and Private
    These stars and rating can be further be used in managing feed for “Inspire” like sorting top projects, showing trending projects etc


Building a gallery which will be public for all the projects that are public
    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.


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
'''Public Gallery of works'''


'''Rating/Stars for public projects'''
    There are two kinds of projects in the app: Public and Private


In public gallery, any project can be rated or starred
    Enhancing the public gallery (“Inspire”) which will be public for all the public projects interface


The user must be logged in to rate or star a projects
    The projects can be sorted and arranged by terms of ratings and stars


These stars and rating can be further used in multiple ways like sorting top projects, showing trending projects etc


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


Current commenting system is very basic
    Current commenting system is very basic
 
    Enhance the commenting system by involving
 
        Thread support


Enhance the commenting system by involving
        Pingback Support


Thread support
        Referencing any specific area in project in comments


Pingback Support
    Addition of WYSIWYG text editor for comments


Referencing any specific area in project in comments
        Ability to add links


Addition of WYSIWYG text editor for comments
        Upload images


Ability to add links
        Basic text formatting


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


Basic text formatting


'''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
 


'''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 smooth
    Current UI is good but it needs to be more interactive and dynamic
 
Development of new elements for UI
 
Use of framework like Bootstrap, Foundation to enhance the UI


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


== TIMELINE ==
== TIMELINE ==
Line 143: Line 174:


== Work flow ==
== Work flow ==
'''
April 25st to April 30th'''


Setup the app in local environment for development
'''Before coding period -'''


Prepare a blog to post regular updates regarding the progress
    Fixing small bugs and issues already on Git repository (already working)


Discussion with the mentors of the plan for implementation
    Addressing and improving suggestions by others


Bonding with other developers in the community
    Discuss with mentors about the implementation details and suggested improvements


'''May 1st to May 15th'''
    Working on the followers/following structure of the app


Design the functionalities of public gallery


Prepare the required use case diagrams and database models
'''April 25st to April 30th -'''


Generate the models, views and controllers
    Setup the app in local environment for development


Prepare the documentation and share with mentors
    Prepare a blog to post regular updates regarding the progress


Move to Stage 4 for testing and review
    Discussion with the mentors of the plan for implementation


'''May 16th to May 31st'''
    Bonding with other developers in the community


Prepare structure for the rating and star system


Analysis of types of ratings needed and priority management
'''May 1st to May 15th -'''


Move to stage 2 for actual implementation
    Prepare structure for the rating/star and voting system


After code, prepare documentation and share with mentors
    Analysis of types of ratings needed and priority feed management


Prepare the test case and review the feature
    Move to stage 2 for actual implementation


'''June 1st to June 20th'''
    Prepare the test case and review the feature


Develop rough sketches for new User Interface


Discuss them with the mentors and other developers for using frameworks like Bootstrap, Foundation etc.
'''May 16th to May 31st -'''


Design the actual elements to use in the UI
    Gather all the development done for public gallery and work on improvement


Implement the designed UI and integrate the elements
    Idealize the ratings,stars, voting and other factors for feed management


Prepare the Javascript queries for dynamic alerts and updates
    Enhance the interface of public gallery (“Inspire”)


Implement these queries and integration with the new UI
    Move to Stage 4 for testing and review


Prepare documentation and share with the mentors and other developers


Move to stage for testing, review and feedback
'''June 1st to June 20th -'''


'''June 20th to July 15th'''
    Study and analyze the current UI


Analysis of current commenting system of the app
    Discuss the enhancement with mentors and other developer


Develop new models to enhance current commenting system
    Develop the Javascript/Ajax queries for dynamic alerts and updates


Prepare and update current models for thread support and project referencing feature
    Implement these queries and integration with the new UI


Documentation and Share the progress with mentors and discussion
    Move to stage for testing, review and feedback


Move to Stage 4 for testing and final review


'''July 16th to August 5th'''
'''June 20th to July 15th -'''


Current app has an inbuilt issue tracker
    Analysis of current commenting system of the app


Analysis of external bug/issue trackers (Bugzilla,GitHub etc)
    Develop new models to enhance current commenting system


Compatibility with Ruby on Rails
    Prepare and update current models for thread support and project referencing feature


API and documentation availability
    Move to Stage 4 for testing and final review


Available features and advantages
 
'''July 16th to August 5th -'''
 
    Current app has an inbuilt issue tracker
 
    Analysis of external bug/issue trackers (Bugzilla,GitHub etc)


Prepare the database for integrating the external trackers
    Compatibility with Ruby on Rails


Write the code and integrate the API
    API and documentation availability


Discuss the mentors and other developers
    Available features and advantages


Move for testing and final review
    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'''
'''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


Testing and debugging
    Testing and debugging


Finalization
    Finalization




Line 255: Line 298:
I am very much familiar with UI frameworks like Bootstrap.
I am very much familiar with UI frameworks like Bootstrap.


Active Git user with projects hosted on GitHub.
I'm well versed with Git, and understand the importance of Version Control.


Completed Ruby, Rails and JQuery courses on Codecademy.
Completed Ruby, Rails and JQuery courses on Codecademy.
Line 269: Line 312:
== Participation and Availability ==
== 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.
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.

Revision as of 18:04, 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.