From Fedora Project Wiki

Revision as of 07:55, 20 March 2014 by Lool0 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

  • Your name: lool0
  • FAS Account: lool0
  • Fedora userpage: [1]

Contact Information see melange for more information

Why do you want to work with the Fedora Project?

I've used fedora for a while mainly in chroots and I'd like to give back to this project.

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

I've been mainly involved with the tatoeba project for the past 3 yrs. I've contributed to it mainly through adding sentences, offering help with maintaining the server and code repository, and some coding projects including a japanese romanization server (https://github.com/loolmeh]

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, if yes, which team(s), you are interested with?

Hopefully I'll continue working on and improving the Fedora College project long after gsoc is over, mainly because its goals overlaps with other projects I'm passionate about.

Why should we choose you over other applicants?

I'm decently familiar with python and django and thought about making my own learning management system for quite sometime. Fedora College seems to have goals that overlap with what an LMS would be about.

Proposal

An overview of your proposal

The idea is to have a central portal that makes it easy enough to add screencasts and educational tutorials, categorize and tag them, as well as have modern xmpp capabilities that would allow video and text conferencing between contributors.

The need you believe it fulfills

It will help new contributors and users coming to fedora to have a library of practical videos at their disposal to learn how to administer their system faster and without hassle. It will also serve as an intuitive way to get in touch with other experienced users for help (much easier than IRC).

Any relevant experience you have

I have worked on a simple django cms before, as well as several other django projects.

How you intend to implement your proposal

I plan on using Django as a backend, Tastypie as an api framework, Angular-UI for the interface, Prosody as the XMPP backend, and possibly candy or converse.js as the client part for the XMPP features. The project will consist of the following modules:

  • library module: This part handles storing references to the videos/text tutorials, comments on them, and ways to access them using tags/grouping, and a recommendation system that suggests other videos/tutorials.
  • ui module: This should contain the templates so customizing the website using some other design would be easy.
  • api module: This contains all tastypie related code and gives access to all relevant models.
  • registration module: This will probably depend on userena and social-auth modules and act as glue code and a customized interface to both apps. It will provide a messaging system, authentication, profiles, and social authentication to the website.
  • xmpp module: this will tightly integrate the js client part of the XMPP features and have custom code to interact with Prosody through ad-hoc commands to create MUCs for necessary pages and jids automatically on the server for registered users.

A rough timeline for your progress

  • week 1-2: implement the database schema and api part.
  • week 3-4: implement the library views to add and view videos, as well as the registration module.
  • week 5-6: implement and setup the XMPP part.
  • week 7-12: implement the angularjs ui module that communicates with the api and port it to phonegap and tidesdk. Also build it for as many platforms as possible if time permits.

Any other details you feel we should consider

Switching development to django from the current flask/sqlalchemy will allow access to a plethora of reusable apps that can be easily integrated into fedora college to cut down on development time.

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

Not yet.