From Fedora Project Wiki


An overview of the proposal

What is free media service?

In simply Freemedia service volunteer initiative by local Fedora Ambassadors and contributors is giving away Fedora products freely to whom got trouble in downloading.

What is the current process that Freemedia group following?


Above flow chart clearly describe current process going on the fedora freemedia service. For this process it use tool called trac.

What my plan is to

Current process of the free media is almost done manually. What I have to do is make this process automated as much as possible

The need you believe it fulfills

  • Volunteers should have facility to logging to system using FAS account. In current process he/she has to subscribe to mailing list and apply to freemedia group. In this system volunteers have to fill a simple form in order to apply to the freemedia service. So that they will be automatically subscribe to mailing list and freemedia group without much trouble.
  • In current process requesters just have to fill simple form and create ticket. Sometimes user provided data may be incorrect. So that their tickets may be rejected. This system will give proper validation for user data in order to overcome this problem. Also requester has to go through quick survey on why he/she needs freemedia.
  • Volunteers should get relevant email notifications on submitted tickets.
  • Current statistic report system is not efficient. This system use following methods to collect statistic data from the requesters
    • By requester forms.
    • By quick survey before creating a ticket.
    • By feedback survey after full filed the request.

These data can be used to make sophisticated static report. Also system consist authorized API for statistical data. So authorized user can generate report through API calls.

  • From the volunteers side there should be a moral up. For that static report system have leader board where top donators list will be displayed.
  • Attractive UI

Relevant experience I have

  • I have some experience with PHP and SQL.
  • I am B.Sc. (Computer Engineering) undergraduate of University of Peradeniya, Sri Lanka.

How I intend to implement my proposal

Tools and Frameworks use in this project

  • Most of in this project will be implemented within CakePHP, an open source PHP MVC Development Framework. The reasons are to select CakePHP
    • Uses the MIT license (Which is compatible with GPL)
    • Many documentation.
  • For Survey system, LimeSurvey will be used.
  • For front-end design - Bootstrap



Login mechanism

Login system is basically use FAS JSON interface. For each user type there should be different access level. In this system there are three types of users

User table.jpg

In login mechanism, first it checks whether the FAS account is active and valid. Then FAS account name is checked in system database and applied corresponding user level accesses and features. Volunteers and admins are directed to profile page after login done.

Form and ticket handling system.
Form handling

There are two types of forms in this system

  • Freemedia request form.
  • Volunteer application form.
    • Freemedia request form:-
      • This form has validation mechanism. Therefore it can validate specially email addresses and other useful data. Then validated data from the request form and quick survey data are used to create new ticket.
    • Volunteer application form:-
      • When volunteer submit the application form, admins get a notification (both mail and profile page notification). After admin accepts the application, Volunteers will directed to profile page which they can maintain.
Ticket handling

This system will use element called ticket to handle freemedia requests. When user created a ticket it will be stored in system database. All the tickets will be display in the page called request report page which can be seen by volunteers and admins. Also newly created ticket will be notified through email to relevant volunteers.

Following figure will describe the status of the ticket.

Ticket handling.jpg

Mailing system

Mailing system is uses to send notification about each actions done in this system. Following figure shows when mails will be send in this process.

Mailing system.jpg

In the ticket handling process, mails are auto generated and send automatically to users. In other situations like asking further clarification about ticket from requester, no need to use mail client. Because profile pages includes the mail sending feature.

  • Mail sending feature in profile page
    • This contains relevant mail templates which can be used by editing them and send them.

Also volunteers and admins have facility to change the mail sending settings in there profile pages. So that they will notified what they want via mails.

  • Mail sending settings page
    • Volunteer can filtered the notification mail as he/she wished. This could be better rather than having a fixed mail filtering method. Because volunteers ability to fulfill request may change
      • Ex- If volunteer change the resident in certain months in a year, he may want to change the notification of tickets according to his current resident.
Enhanced report generating mechanism (including leader board)

This system is used data provided by surveys and forms. Then these data are stored in the system database using well defined table structures. So that it can be easily retrieve to represent in analytical way. This system mainly provide an authorized API which can be used by the admins and other authorized users to generate report.

Also this system consist of leader board which displays the list of top volunteers.

Profile pages

Both volunteers and admins have profile pages. A profile page consist of following things.

  • User details
    • This includes basic information about volunteers.
  • Notification bar (notification of ticket requests)
    • When there are ticket requests relevant to profile page owner, it will be informed in the notification bar. So that volunteer can go through it.This notification also can be customize.Therefore notifications can be filtered according to the volunteers wish.
  • Links to statistic report page and request page.
    • Profile owner can easily refer to static page and request page through the quick links.
  • Volunteer invitation widget.
    • Profile owner can invite other people who might be interested to join this program as volunteers. This invitation will be done through an E mail.

Bootstrap will be used when creating profile pages.

A rough timeline for my progress

Pre work

  • Reading the documentation of cakePHP and test codes.
  • Reading the documentation of LimeSurvey and get familiar with it.
  • Further learn about the PHP object oriented stuff.
  • Refine the project idea.

Iteration1 (May 19 – May 31)

I’ll be busy with end semester exam.

  • Develop front end
  • Create Profile pages and Forms.

Iteration 2(May 31 – June 14)

Vacation Time. Can concentrate more about this.

  • Intergrade login feature with FAS account.
  • Develop login mechanism and account system for each role.
  • Connect profile pages, Forms with login mechanism.
  • Also concern about ticket and form handling system.

Iteration 3(June 14 –June 27)

Midterm evaluation

  • Further works on ticket and form handling system.
  • Develop the survey system with LimeSurvey

Iteration 4(June 27 – July 12)

  • System Database design and implement.
  • Develop the Mailing system.

Iteration 5(July 12 – July 26)

  • Develop the statistic report system.
  • Develop an API for report system.

Iteration 6(July 26-August 09)

  • Connect all features to back-end.
  • Concern on remaining work.

Iteration 7(August 11-August 19)

Pencil down period

  • Test the functionality of the system.
  • Documentation.
  • Ready for the final evaluation.

Potential mentor

My potential mentor Buddhike Kurera