From Fedora Project Wiki

Revision as of 20:58, 19 September 2016 by Jibecfed (talk | contribs) (internal link cleaning)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Contact Information

please answer following questions

Why do you want to work with the Fedora Project?

I've been a FOSS lover since 2007. Started with Linux OSs itself. Since then what i always wanted is to be a part of it. So i've contributed to many open source projects in past years and as i think what better organization there's to contribute than Fedora. I have a goal to be the next Fedora Ambassador from Sri Lanka. So i want to make my start the GSoC '15. I will never hesitate to achieve any of the qualifications to be an Ambassador. I also love the fedora community very much. I've interacted with a lot of community members in past years and i've grown to know that they're really good people. I have a desire in working with all of those people.

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

I have been using Fedora for a very long time and never got my mind to do contributions to Fedora. But i developed a lot of skills in GTK+ and then i started contributing to Gnome. I've also created a new module for CCExtractor. My GitHub contains only a few of my projects.

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

I've applied for GSoC in 2014 for CCExtractor but my proposal didn't get selected. My proposal can be found here.

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

Of course. I love to make people happy by something i've done for no cost. That's the real happiness of freedom. I think that's what FOSS is all about. I'll be contributing to fedora in the future starting from this day unconditionally. Finally i also need to achieve my goal of becoming an Ambassador. I'd love to be in the Web Development team.

Why should we choose you over other applicants?

I can't say that i'm a special person comparing to others. But i have a skill set that i've been developing for nearly 12 years in this path. i have expertise in a lot of Programming Languages including C, C++, JavaSE, JavaEE, python, Django, php, HTML, javascript, Ajax, GTK+, GTKmm and few more. I know that i can take any responsibility related to IT industry without any failures. I also don't give up until i achieve the complete success of that particular work.

I'm currently a Well Achieved Software Engineering Student and NIBM Sri Lanka. I have shown many talents in succeeding all the components in Software Engineering very often. I have won many Software development competitions over the past years since my childhood. Also i have contributed to many Open source projects including local ones as i mentioned above. I also have past experience in the GSoC program from last year. So from all of these facts i think i could be the best person for this project.

Project Proposal (AskFedora UX/UI & Functionality Overhaul)


Fedora never suffered from lack of support for users over all these years because of AskFedora and the contributors who make AskFedora alive. I've used AskFedora personally and i got answers within minutes i posted the question. I watched the rate of submission of questions by users per day and it's an average of 25. So anyone can understand how popular is this.

With all these facts we can agree on giving the users a new experience just like askUbuntu or Stackoverflow. Currently askFedora in on Askbot's default UI and it doesn't seems to be neither much attractive nor responsive. A really smooth core application or backend isn't enough for a user to interact with a product. The interface matters very seriously. I quoted following from the wikipedia page about GUIs

"Designing the visual composition and temporal behavior of a GUI is an important part of software application programming in the area of human-computer interaction. Its goal is to enhance the efficiency and ease of use for the underlying logical design of a stored program, a design discipline known as usability."

I also think the AskFedora application also needs an update because it runs on Askbot version 0.7.49. There is a minor update for version 0.7.50. I've tested the new version and it seems to be working really good.

Why current UI/UX doesn't work

In the part of contribution, AskFedora has came a long way to the current status. But if we compare the User experience and the unique design of AskUbuntu to AskFedora there's a considerable difference. I've used both AskUbuntu and AskFedora and i can understand each difference one by one.

Fedora has it's own unique set of colors and shapes that has been developed for years now. The only product related to Fedora that doesn't inherit this uniqueness is AskFedora. Why leave that alone?

AskBot's default UI doesn't match the Unique Fedora designs in any way. And for the User experience users needed to be guided in a well manner when using the forum. Just like in StackExchange products. How do you earn the badges, how does the karma is collected....etc.

In points,

  • Colors are not attractive and doesn't match the fedora Uniqueness
  • Usage of fonts are not very good. Need to be changed.
  • Pages are responsive but not in the way we need it.
  • Most of the elements are out of the alignment.
  • Users that doesn't at least have 20 of karma shouldn't be allowed to create new tags.

And just for the technical part

  • Useless usage of variables in Django code should be modified.
  • Usage of bootstrap grid system is needed.

My Current Experience regarding the project

First i got my hands on AskBot & different versions of it. I used both askbot-devel and pip install of Askbot. Digged deep into the coding of every version in Askbot. Referred all the CSS files and got a complete idea about the whole project. As following..

  • What is already there?
  • What is to be done?
  • What can i add more?

I've seen that some of bootstrap components are currently used. Compared the default UI with Suchakra's Mockups and got into some editing. Edited CSS to match Suchakra's mockup and most importantly i added Google's Material design CSS and JS to some elements in the askbot. Here's the ask button working with material design.

Please follow this video to inspect my current work on AskFedora (Unfortunately the hosting plan i own doesn't allow apache mod_wsgi & the openshift also failed to run. I'll be looking at those soon)

Why 'Google Material Design'?

Google Material Design was first implemented in Android 5.0 that blew users minds. I was sitting at the Google I/O when they were announcing it and what first came to my mouth was "WOW". I heard everyone saying things like that. Because it's just amazing. Attractive solid colors, Amazing animations and transitions, Layered design.. etc.

Everyone loved the new approach of Material Design. It gives the user a complete idea about what happens in the UI. I've never seen anyone who disliked this UI. So i thought implementing this design in web pages will be a really good way to attract people and give them a way better experience. I found few open source projects that took an effort on making it happen.

From all those projects i've selected Materialize because it's really simple and does not mess up any of the original codes.

What benefits does this proposal have for AskFedora

The plan of giving a whole new UI/UX to all types of users such as Registered Users, Contributors and also the visitors will improve the rate of usage in AskFedora just initially by at-least 25%. Users doesn't need to visit StackExchange to solve issues regarding Fedora or Fedora related applications.

Other than implementing the improvements suggested by the community my proposal assures to implement much more powerful and advanced UI/UX features to improve the experience of the user. As a day to day user of these services i always would prefer the most user friendly and most attractive of all. These features aren't just Eye candy. They actually are responsible for the performance of the application, Resource usage meanwhile giving the best experience to the user.

This proposal also assures that a new update to the Askbot application will be done matching to the DB queries & also cleaning out the whole django coding by throwing out the garbage codes that aren't essential to AskFedora.

Prioritized Final Deliverables

  • High Priority
    • Brand new UI created by taking apart the template of the Askbot
    • Modified Django coding to couple with New UI
    • Final documentation for the improvements done by me
  • Mid Priority
    • New user guidelines for the new UX just like in AskUbuntu
    • New easy to use navigation system for users. (Similar to StackExchange)
    • Updated Badges system
    • Modified permissions to new users such as "Adding new tags is not allowed until the user receives >20 karma"
  • Low Priority
    • Cleaned out Django codings
    • Updated application to Askbot Version 0.7.50

My qualifications to take the Responsibility of this Project

  • I'm a well achieved, Well dedicated student at NIBM Sri lanka.
  • I have experience in usage & Development in Linux operating systems including Fedora since the year 2007.
  • I have shown the abilities of very Fast learning & gaining experience over the past years continuously.
  • Well experienced and well practiced in Computer Programming since when i was 11 years old. Also written many commercial web & desktop application since then.
  • I've Expertise in programming languages such as C, C++, GTK+, GTKmm, JavaSE, JavaEE, python, HTML, php, Javascript, ajax, Django, Visual Basic 6.0, .Net..etc
  • In past years i've experience in contributing to FOSS organizations such as Gnome. More can be found in my blog. And also my GitHub. Most of my work is on private repos at bitbucket. I'm not allowed to make them public. :(
  • I have the Guidance of all current Fedora Ambassadors from Sri Lanka.
  • I'm also guided by professors from my institute.
  • I went through all the things that related to this project and i can assure that i have a 100% understanding about the project. In fact i have done some of the developing related to this project. Video

My time commitments

I'm currently completing my Diploma level in software Engineering. So i'll be attending lectures on on saturdays. I assure that I'll be dedicating all the other time to this project.

My plan of implementation

Tools i'll be using to make this project a success

  • Python & Django (obvious)
  • Inkscape, Balasmiq & Gimp (For mockups)
  • VirtualBox and KVM with Virt Manager (For virtualizing purposes in testing)
  • Openshift (For online instance of Askbot)
  • GitHub (For version tracking)
  • Sublime-text 3 (For file editing purposes)
  • Materialize (An open source project to bring the Google Material Design to HTML. Will be used to implement the Material design to Askbot)

  1. First level (UI)
    • Taking apart the Askbot source and going through each and every part of the coding with my mentors. (Partially done)
    • Come to an agreement with mentors on a mockup.
    • Editing of CSS, HTML & Django to match the selected mockup.
    • Adding new styles and HTML, Django elements.
    • Replacing the old elements with Amazing Google Material Design elements.
    • Adding attractive JS transitions for areas that my mentors suggest.
  2. Second level
    • Getting hands on the mobile view and checking on the responsiveness.
    • Upgrading the responsiveness with Bootstrap Grid system.
    • Checking the pages with different user agents.
    • Looking at errors occurred in python while implementing the new UI
    • Modifying Askbot Macros, Methods, Functions to resolve errors.
    • Creating new macros because there are instances that some functions can't be edited. (Such as getting the user's Gravatar. If we modify the img element in the macro to be appear as a circle to be used in the header, it appears everywhere rounded because same macro is used to retrieve the Gravatar.)
  3. Third level
    • Running a test period on an openshift instance to start the low level debugging process.
    • Tracing the bugs and resolving them by discussing with mentors.
    • Trying for an Update of the Askbot application. Looking for any DB clashes or code mismatches.
    • Finalising the project by discussing with mentors.

The Timeline

I'll be following the Agile Iterative Development method to make this project a success. The reason for using this methodology according to my knowledge, is to test out a working portion of the Askbot after every implementation with my mentors.

Warm up period (27th March - 27th April)

  • I'll be studying bit more advanced parts of Django & Python. Also will be practicing WSGI on apache for more understanding in the module. Will be spending time on openshift a lot. More knowledge never hurts. :) 
  • Will be Going through Askbot doing modifications till i fill my mind up with askbot structure. Even though i have a complete understanding about the askbot i could use some memory for tracing bugs later. 

Community Bonding period (27th April - 25th May)

  • I'll be talking with my potential mentors and evaluating any work i've done in the warm up period. I'll be taking all the advices from my mentors. 
  • I'll do a rough flow chart of the process upon the agreements with my mentors. 
  • If it's possible i'll show my modifications to the community approved mockup and get a confirmation on the UI.

Iteration #1 (25th May - 1st June)

  • I'll be deploying a fresh copy of Askbot on my Virtual machine and on Openshift. 
  • Will be initializing a Git repo for the use of me and my mentors.
  • If any mockups were confirmed i'll be starting the work on Askbot Landing page (/questions)
  • If mockups were not confirmed i'll be getting the mockups approved by my mentors.
  • Will be upgrading the responsiveness of the questions page with bootstrap or without(with respective to conditions like {%- if request.user.is_authenticated() -%} )

Iteration #2 (2nd June - 15th June)

  • Adding the Burger Menu with Material Design transitions.
  • I'll be editing existing CSS classes to resolve clashes in Materialize, Bootstrap & style.css
  • Start working on 'Ask your question page'. Adding the unique colors & shapes. Especially on the Secondary Header.
  • Try to improve the tag suggestion system like Askubuntu.
  • Will be doing modifications to WMD editor if needed to match the UI.

Iteration #3 (16th June - 26th June)

  • Will start working on the User profile page.
  • Arranging the content inside the user profile page in a proper manner and reducing the font sizes.
  • Will be changing the notification system Along with the inbox UI 
  • I noticed a bug that Number of answers of a user does not exceed 100. I'll be looking into solving that.
  • Will change the listing of questions and answers on user page. Currently it lists 100 answers and all the questions. That's way too much for a single page.

Iteration #4 (27th June - 3rd July)

  • Will be doing the final touch ups for the Mid term evaluation with my mentors.
  • Debugging as much as i can.

Iteration #5 (4th July - 24th July)

  • I'll be working on the users page.
  • Changing the search users feature to be working on a LIKE clause instead of an EQUAL. SO the users doesn't have to know the whole username to search a user.
  • Looking at the possibility of changing the search trigger for every key press instead of waiting to hit the return key.
  • Getting the Hands on CSS to implement Media Queries + Bootstrap to get the responsive UI on mobiles and many other user agents.

Iteration #6 (25th July - 10th August)

  • I'll be completing the mobile views and testing them.
  • I'll be improving the help documentation and help page.
  • Looking at the possibility of implementing a top navigation bar to switch between fedora services like in stack exchange.
  • Also will be looking at the possibilities of updating the application before or after the modifications.

Iteration #7 (11th August - 28th August)

  • I'll be debugging all the UI issues, DB errors and Django error occurrences.
  • Will be running the long period test on openshift for bug tracing with my mentors.
  • Finalizing of the documentation will be done.
  • Will  be creating a patch with modifications to the corresponding askbot version.
  • Finalizing the project for the final evaluation.

I'll be proceeding further with my mentors to get this project evaluated by community members and get it live.

Handling of any unexpected issues

There could be some unexpected instances like personal issues, Getting sick, Family emergencies, losing of computer, Sudden announced examinations by the institute..... within this few months of participating in GSoC. So i could be losing the time that has to be spent on this project.

I'll be handling these kind of problems in well manner by being ready for every single one of those instances. For an example: Having a backup PC set up for the project with backed up data in case of a sudden break down of my current PC.

In any case i'll have to do travelling, i'll be occupied in this project on the road using my laptop.

Like this I'll manage my problems in well manner without doing any harm to the project.

Potential Mentors

Kushal Das, Suchakra & Sarup Banskota will be my potential mentors. I've spoken with all three of them and i'm really glad to work with them further more.

I hope this proposal meets the maximum potence that a student in my skill level can dedicate for an Open Source Project.