From Fedora Project Wiki

Project title: GlitterGallery

About Me

Why do you want to work with the Fedora Project?

I've been a user of Fedora OS since the release of Fedora 15. I loved how it worked, the internal working of Fedora as an organization, and I loved its ideology of creating Free and Open Source Software. Fedora is all about open culture. Fedora is a pioneer among the open source organizations, to which I'll be proud to contribute to in whatever way I can.

Do you have any past involvement with the Fedora project or any other open source project as a contributor?

Yes, but not with Fedora project. I contributed at XDA developers to the Android Open Source Project (AOSP), developing cool new features and porting them to Android ROM for certain devices.

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

No. This is the first time I'm participating in the GSoC program.

Will you continue contributing/ supporting the Fedora project after the GSoC 2014 program, if yes, which team(s), you are interested with?

Definitely! Regardless of the GSoC results, I want to contribute to fedora and help make it better. I'm an experienced web-developer and a UI design enthusiast. So, I'd like to work with the Fedora design and web team.

Why should we choose you over other applicants?

It is not just GSoC that would make me contribute to the project that I select. I will continue contributing to this project even after GSoC ends. The project GlitterGallery exactly aligns with the skill-set I have. Being a web-designer and UI design enthusiast I feel this project is exactly meant for me. Also, I’ve been observing this project from quite some time now. I’ve developed a complete understanding of the code-base of the project. All this makes me an excellent candidate for the project.


An overview of my proposal and the need I believe it fulfills

GitHub is for developers. DropBox is for sharing files. There is no specific dedicated service/tool where all the designers can collaborate. Currently most of designers, including me use DropBox to share their work with others, and it is a tedious task. GlitterGallery is the solution. GlitterGallery is an online design collaboration tool which allows designers to collaborate and maintain revisions with other designers and developers. It uses Git at its core to maintain revisions.

As of now, GlitterGallery is in development stage. A user can create a new project, add items to it, create new SVG, track the history of project and share his project using ‘Sparkle Share’. On saving the project, a Git commit is made which is used to track. But still, a lot more needs to be done.

Some of the things that I intend to implement are:

• The current user interface is fine, but it needs to be polished keeping in mind that this tool is for designers. • Currently GlitterGallery is not integrated with any of design tools/suits. Better design suite integration would mean better support for local editing. • Currently there is no issue reporting system, or I’d say improvement/proposals reporting system on GlitterGallery. It is one of the important things which should be present to facilitate better collaboration between designers. • A new ‘Comment System’. The current comment system allows only a user to comment on his own project. A comment cannot be made on a specific region of the design. Also, a thread and ping-back support will be very helpful. • The current sharing system is very basic. I propose to put in more social features such as visibility of other people’s project who want to share it with you, ability to follow a shared project or user, activity feed based on users likes/followed stuff, private messaging between users and ability of sharing the project on outside media such as on social network like Google+ and Facebook. • One of the foremost important thing is the authentication system. Currently users can log into GlitterGallery only by using their OpenID. A user should also be able to create an account on GlitterGallery and a GlitterGallery ID shall be issued to the user.

Relevant experience I have

I’m an experienced web-designer, web-application developer, and a UI design enthusiast. The tools/skills in which I’m experience in include HTML, CSS, JavaScript, Ruby on Rails framework, Python, PHP, C/C++. Over past some time, I’ve gained quite a good amount of knowledge on Git which will be the central version control system for GlitterGallery. Also, I’ve acquired a good knowledge about the codebase of GlitterGallery.

How I intend to implement my proposal

This project will be carried out in more of a continuous manner, implementing small parts at a time so that there is transparency and rectification of bugs is easy.

First of all, the UI needs to be polished. The frontend development will be done using HTML, CSS and when needed, responsive frameworks like Bootstrap will be used.

The integration with Inscape and Photoshop can be achieved by using CloudConvert APIs.

Now comes the authentication part. For OpenID authentication, current code will be enhanced and used and a GlitterGallery account system will be written from the scratch using the Rack API. The final authentication screen will look something like this:


Next comes the issue/proposals tab. Each project will have its own issue/proposal tab where the project owner and other users can report issue or comment on the project. It will be a thread like system, when project owner can mark the issue ‘closed’. This will be done using GitHub APIs.

Comments System. Users should be able to comment on a project, or a specific part of the project. Each time a user comments, the username, content and the timestamp will be recorded. The whole comment system will be in a form of thread. It will be implemented using XMPP gem for rails.

Sharing features need to be improved. Social networking features will be implemented by using the respective APIs of Facebook and Google+. A personal message system will also be implemented. All personal messages will be stored in an encrypted format on the server to respect user’s privacy.

A rough timeline for my progress

During the summers (April – August), I have absolutely no other commitment. So I’ll devote as much time as possible to the project.

21 Apr–4 May (2 weeks): Familiarize myself more with Ruby on Rails and current code-base. Though I’ve been working with these, still it’s better to leave no doubt. I’ll discuss with the mentor about the implementation in GlitterGallery, and the degree of work that has been carried out yet.

5 May–18 May (2 weeks): Discuss with the mentor about the feasibility of the ideas/features I’ve thought to implement to GlitterGallery, and how I’ll implement them.

19 May–8 June (3 weeks): Begin actual work on GlitterGallery. I’ll start implementing/adding above features to GlitterGallery. The user-interface would be enhanced, making it more user accessible. All the social stuff will be implemented. This would be my main focus in this period, however, if an idea/feature comes up later on I’ll implement it at that time.

9 June–22 June (2 weeks): Implementing the new authentication and comment system. This will be the milestone for mid-term evaluations.

23 June–27 June (5 days): This is the mid-term evaluation period. While my mentor will be busy, I’ll check the code written till now for any bugs, and run tests on it. If any bug is found ‘during this period’, I’ll rectify it.

28 June–11 July (2 weeks): GlitterGallery developed till now needs to be integrated with a design suit. During this period, it will be integrated with design suits discussed with my mentor during initial weeks.

12 July–16 July (5 days): My College reopens during this period and so I’ll have to move back from my home to the college. I’ll get back to work as soon as I settle myself back in the college. So there might be some disturbance during these 5 days.

17 July–27 July (2 weeks approx.): Implement the new issue/proposal reporting system.

28 July–11 Aug (2 weeks): Tie up any loose ends. The code will be checked for bugs and several tests will be written/run through to check for any possible issues.

12 Aug–17 Aug (1 week): A proper documentation will be made/updated for GlitterGallery during this period. The code will be made available on Google Code and in Fedora Repositories after this. (Goal for final evaluations).

September and beyond: Since the time-scope of GSoC is limited and number of ideas I have to implement are so many, I continue contributing to this amazing open source project, GlitterGallery, making updates and adding new features.

Have you communicated with a potential mentor? If so, who?

Yes, I’ve communicated with Emily Dirsh.