From Fedora Project Wiki

Contact Information

Application

Why do you want to work with the Fedora Project?

Fedora is one of the few successful linux distributions, I believe in Open Source philosophy and would like to support and contribute, I believe that Linux should be used by everyone, Fedora is not just a project it's a great community which is the most important in my opinion, I believe that the community is the core of any successful open source project. I am willing to gain some real life experience and meet new people and make friends from the fedora community, I am new to the community but I love new experiences. Getting involved in such a successful open source project is a life milestone to begin my professional life beside the satisfaction i'll get while contributing back to the community who helped you at the beginning.

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

I don't have any past involvement in Fedora, But I contributed to Ubuntu by reporting bugs, suggesting translations, contributed as part of the LoCo team Ubuntu Egypt by creating some needed artworks, building the team website, gave some web development sessions and co-organised public events and team activities.

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

No I didn't, It's my first year to apply.

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

Yes, I am interested to contribute in the Marketing Team or Website Team, I would be also interested to maintain the project idea I am applying for.

Why should we choose you over other applicants?

  • I am eager to learn new web technologies.
  • I am willing to invest my next vacation learning and building a new application which will help others (The main motivation for me is to help others).
  • I will keep contributing to Fedora after the end of the Program.
  • Increasing my experience in Web Apps development is my career objective.
  • I have experience in Web Design and User Experience, I follow up with all recent web technologies and try to use some of them in my projects.
  • I have a good financial background, as I am a Business Information Systems student.
  • I have been using linux since June 2006, and I believe in this operating systems and I will keep recommending it to all my friends.
  • Experienced in building MVC web apps.

Proposal Description

Proposal Overview

The project idea "Fedora Financial System" can be used with in the project to track and analyse the financial activities for FAms (Fedora Ambassadors), Managing Fund Requests, Receipts, Budget Proposals and generating financial reports.

The need I believe the project fulfils

  • Track Cash Inflows and Outflows.
  • Allocate Budget for each region.
  • Generate reports and managerial level data which will help Budget Owners to allocate the right budget for next year.
  • Help Fedora Ambassadors to easily request funds without following a long process, also give them the option to track approval inside the same system.
  • Save evidence (receipt) in one place for easier reference.
  • Replaces many Trac installations for every region with a centralised system for cross region reports generation. (Old Process).

Relevant Experience

I am a Business Information Systems Student, I have a good background in business specially accounting and finance from college. Firstly started with web design then web development since 2007, created many small websites that were static at the beginning, then build many dynamic websites using some CMSs (Joomla, Wordpress and Drupal). I am maintaining some examples in my resume hosted here.

I have a good programming knowledge specially PHP since 2008, I love to follow the best practices for each language I use, I adore keeping myself updated with the latest technologies and features.

I am currently creating my graduation project with laravel 4, unfortunately I don't have it in a public repo right now.

This is my first financial or accounting system, but not my first web app, I believe that I have the set of required skills that will help me to implement my proposal.

How I plan to implement the proposal

Below is a brief information about the system implementation and core features from the requirements, For the detailed information check this Wiki Page. I am planing to learn more about how we could improve the implementation to be more solid and reshaping the requirements with my mentor before the Code Start period, Check the timeline for more detailed information. As "This is a live system so we will not be clear 100% about the requirement" quoted from Buddhike Kurera

Definitions

  • Regions - Fedora Ambassadors are divided into regions (APAC, EMEA, NA & LATAM).
  • FAm - Fedora Ambassadors are the representatives of Fedora. Ambassadors ensure the public understand Fedora's principles and the work that Fedora is doing.
  • Budget Owners - Every region have a Budget Owners who determine budget limit and approve fund requests.
  • Double Entry Accounting System - In a ‘double entry’ system each value is stored twice, once as a credit, once as a debit.

System Core Features

The system will have four core backends (Access Control, Double Entry Accounting System, Budgetting & Reports Generation) which is the core for all the needed front-end features, most of the described core modules below will have their own data models and controllers to conveniently interact with from the front-end.

  • Access Control: (To authenticate users, allow them to do certain actions according to their roles and assigned permissions.)
    • Fedora Account System Integration (FAS)
    • Roles
    • Permissions
  • Double Entry Accounting System: (Module to record journal entries associated with accounts which reflects the paper double entry accounting system in a relational database).
    • Transaction Types
      • Deposit
      • Withdrawals/Payments
    • Accounts
    • Journal Entries
    • Postings
  • Budgetting: (Module to let FAm submit next year budget requirements and facilitate queries by Administrators.)
    • Budget Proposals
    • Budget Filtering (Type, Amount, Region)
  • Reports Generation: (Pre-set reports to facilitate data extraction for system administrators and budget owners for high level managerial data or decision making.)
    • RESTFul JSON API for Reports Generator
    • Pre-set reports implementing the above JSON API. Less Priority (Backbone.js or Ember.js for report generations without page refresh).

System UI, Front End

Tools

Rough Timeline

1: Requirements Finalisation

2: Mocks, UI Wireframes & Final Layout

3: Database Models & Relations

4: Double Entry Accounting Classes

5: Controllers Logic & Fund Requests

6: Views Setup

7: Budget Proposals

7: Reports Generation

8: Twitter Bootstrap Themeing & UI Enhancements

9: Test & Fix Round 1

10: Test & Fix Round 2

Other Information