Proposal: Fedora College
An overview of the proposal
ABSTRACT
Fedora College is a project that searches to deploy the use of virtual classrooms in the training of new Fedora contributors, using known educational resources, by relying primarily on video.
DETAILED PROPOSAL DESCRIPTION
A virtual learning environment is a place mediated by technology, this facilitates communication, processing and distribution of information, allowing new possibilities for learning and facilitating the interactions between the various actors involved in the process, relations, teaching and learning.
Usually in a virtual environment with these characteristics, students enrolled and registered, usually receive credentials, which consist of a username and password that allows it to be recognized by the system for exclusive access.
In a virtual learning environment combine several virtual tools in order to support teachers and students in order to optimize the various stages of the process of teaching and learning.
Said this, Fedora College will be a virtual learning environment based on screencasts for the fedora and FOSS contributors. Many of the fedora groups based their task in a model of sponsors and contributors. Sponsor with skills accept new contributors based in their proven contributor. Now, a rookie contributor have investigate between all available documentation, that is wiki, mailing list, manuals, but there aren't a centralized place for this information, and less so visual way.
While taking advantage of the centralized auth system of Fedora, (based on openid) that retrieves the information of the contributor and the groups to which they belong, we have to make a system with the roles of teacher and student, where teacher can publish screencast in video and text.
The need you believe it fulfills
Fedora have many contributors around of the world, many of them with a universitary formation on Information Technology (IT), languages, sysadmins, developers, graphic designers and so on, but like any large ecosystem, the information tend not to be found between many documents and sites. At the end of completion of the project, Fedora will dispose of a centralized place where the users can easily investigate about all their groups.
Any relevant experience you have
1. Study about implementation of IRC clients written in Python and bouncers written in C++.
2. Knowledge about Python programming from a course of EdX/MITX (https://verify.edx.org/cert/207664b4106f42439ff574a2110b6fa9).
3. Thorough concepts of object oriented programming using C++ and Java as I am in my final semester of Masters in Computer Applicatons (http://admission.ignou.ac.in/changeadmdata/AdmissionStatusNew.ASP).
4. Conversant with software engineering methods and feasibility studies.
5. Experience in use of Fedora OS, Git etc.
6. Used SaaP provided by Open Shift in developing an academic project.
How you intend to implement your proposal
The main goal is to develop a virtual learning environment (web application) for Fedora based on screencasts for the new Fedora contributors. The web application will be integrated with the Fedora Account System (FAS) taking advantage of the centralised auth system of Fedora (based on openid) that will retrieve the information of the contributor and the groups to which they belong.
An example http://railscasts.com/ with a chronologic line time, where the students can see the process and belong to any group of their preference.
From the developer’s view of perspective, the project mainly consists of three modules namely Backend Module (Content Management), Frontend Module (User Interface) and a rest API which will provide the accessibility of data on the web platform to the users.
Backend Module : This module will manage the uploads, comments, and access level of the contributors. This module can be viewed as the further division into smaller sub modules for the easy development and understanding of the web application.
1. Content management : It deals with the static delivery of content and handling of user’s requests.
2. Authentication : It uses the centralised auth system of Fedora (based on openid) for authentication and subsequent login to the Application. The user will be mapped to the default user level in the fedora groups according to the user’s access privileges (Admin, content creator, moderator, registered user, anonymous user).
3. Administrator : It deals with the admin privileges with includes content and user management, and maintenance of the web application.
4. Core : It includes the models and views of the core application. This module enlists the various models mapped with the database and will serve as the main media and content management system of the web application.
5. API : It will provide with the data access available on the web platform to the users and will support uploads, delete and revisions of the data along with commonly available API endpoints as mentioned in the REST API module.
Rest API : It will provide with the data access available on the web platform to the users. It will also support uploads, delete and revisions of the data along with commonly available API endpoints.
Main features of the API includes :
1. Support for Upload, Delete and Upload of revised or updated version of Media content (video, images).
2. Ability to perform video conversion from any open source video format to standard OGV video format. A possible example of GStreamer package from the Fedora can be used.
3. Use of python-babel library for language conversions and localizations.
4. The API will have the below mentioned commonly available access endpoints.
URL -- Description
/api -- General API documentation and usage.
/api/user/ -- Get Information about the user profile page along with the access privileges.
/api/media/ -- Get Information about the media content (videos, images) and publish revisions, edit information and delete media.
/api/content/ -- Get Information about the content and publish revisions, edit information and delete content.
/api/comments/ -- Manage the users comment stream.
/api/search -- An abstraction for easy searching of user’s queries.
/api/tags -- Manage tags.
Frontend Module : This module includes the user interface of the project web application. A rough sketch of the User Interface has been designed which includes the user’s profile page, screencast page and a general content page specifying the related videos and content accessible to the user based on the credentials provided. An example of railscasts.com can be viewed for the implementation of this module. Added to this example, it also includes a profile section where the user can ask questions related to the videos, any content from the organisation mentors and experienced contributors of the Fedora community.
A rough timeline for your progress
Till 20 April
Study open source IRC clients and bouncers
21 April – 30 April
- linking with the organization
- discussion with mentors regarding implementation of objective 1
- Community exchanges for suggestions in objective 1
- gathering required resources, brushing coding requirements for objective 1
1 May – 10 May
- discussion with mentors regarding implementation of objective 2
- community exchanges for suggestions in objective 2
- gathering required resources, brushing coding requirements for objective 2
11 May – 18 May
- Software Engineering
19 May – 15 June
- coding for implementation of objective 1
16 June – 22 June
- testing and deploying objective 1
23 June :- MID-TERM EVALUATION
24 June – 20 July
- coding for implementation of objective 2
21 July – 31 July
- testing and deploying objective 2
1 August – 21 August
- Documentation
Have you communicated with a potential mentor? If so, who?
Yes, I have communicated with the Project mentor Eduardo Echeverria.