From Fedora Project Wiki
No edit summary
No edit summary
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
=Insight use cases for calendar project=
=Integrate Proxy Settings and Network Connections(Locations)=


=== Contact Information ===
=== Contact Information ===


* Email Address: malith.hirantha@gmail.com  
* Email Address: mudithagayan88@gmail.com  
* Telephone: +94715623003
* Telephone: +940711353199
* Blog URL:  http://unhidecode-malith.blogspot.com/
* Blog URL:  http://mudithagayan88.blogspot.com
* Freenode IRC Nick: wmmalith63
* Freenode IRC Nick: muditha88




Line 14: Line 14:


=== Do you have any past involvement with the Fedora project or with any another open source project as a contributor (if possible please add some references as well)? ===
=== Do you have any past involvement with the Fedora project or with any another open source project as a contributor (if possible please add some references as well)? ===
* yes
* No
i'm level 2 undergraduate in university of moratuwa.This year we are doing industry base project my project is the SSO WebBrowser for Virtusa.
  https://github.com/wmmalith63/Virtusa_Vbrowser 
 
i'm create a plugins for worldpress
 
  https://github.com/wmmalith63/img-uploader-base64


=== Did you participate with the past GSoC programs, if so which years, which organizations? ===
=== Did you participate with the past GSoC programs, if so which years, which organizations? ===
Line 28: Line 21:
=== Will you continue contributing/ supporting the Fedora project after the GSoC 2012 program, if yes, which team(s)/area(s), you are interested with? ===
=== Will you continue contributing/ supporting the Fedora project after the GSoC 2012 program, if yes, which team(s)/area(s), you are interested with? ===
* Yes,
* Yes,
  Fedora Websites Designing and Developing
BZR Python-Fedora Package(bzrpython-fedora)
  Fedora Ambassadors Team
 


=== Why should we choose you over the other applicants? ===
=== Why should we choose you over the other applicants? ===
* Because I’m so much interesting about CMS and to be a good Web Designer & Web Developer is my only dream. I have some experience in CMS and PHP also  I successfully followed Web developing and Designing Degree in 2010 December. Also I’m mostly trying on to finish the work with best.
* Because I’m so much interesting about networking and to be a good network engineer is my only dream. I have some experience in network programming using Java, Python, C and I successfully followed CCNA in 2011 December. Also I’m a very friendly person.




Line 41: Line 32:


====An overview of your proposal====
====An overview of your proposal====
* According to the project description, the summarized idea is to create Insight use cases for calendar  For any given Fedora Project team, any CLA-signed member of the Project will be able to check availability and schedule IRC meeting rooms on irc.freenode.net.User will be able to filter on team, as well as other Fedora event and other happenings, such as release schedule.
According to the project description, the summarized idea is to create a network connection stably and less involving the user. For the wireless system this is like roaming when user cross the networks, detect the new network and using the database automatically connect to the new network without involving the user.Here are some facilities which I hope to implement,
* Data base to store the network profiles
A new content type for Event could be set up, and the "create content" persmissions be given to the "CLA signed" role.
* User Interfaces to enter proxy settings
The new content type will have all the numerous Fields that we settle for after the discussions, and also have another user (linked through the User Reference Module) "responsible" for that event.
* Pop up windows to notify when changing profiles
The "responsible" user would have the permissions to classify an Event as "not yet in progress", "in progress", "completed", or "not going to be done", as Kevin Suggested.
* Separate user interfaces for wireless and wired connections
 
* User friendly environment
The event can be categorised based on a taxonomy setup on drupal, as say a Fedora Team Meeting or Fedora Release Schedule, etc which can be themed in the end to let the user know the category of the event in the Calender from the look of the event on the calender.Regarding the creation of the Event, any one with required permissions can either create an event from an admin menu, or we can provide for a graphical "+" symbol on all the dates which appear on hover, to add the Event on that particular date. This would take manipulation and theming of the Calender module.After the events are populated,the Views filters like team, release schedules, etc can be exposed to let users change them, and hence manipulate what appears in their Calender.Drupal Date filters can also be used to show only events completed till date, or all upcoming events.For the proposed Timezone support, Drupal already has built in Timezone support, so that wont be an issue integrating with Calender.Drupal DateApi already provides an iCal Parser, so that can be used in conjunction to achieve the iCal import and export feature (Nevertheless, Views on which Calender module is based, already has a plugin Views iCal Export which can be used, but iCal imports are tricky)And for the feature request by Maria, in specific categories of Events, options like "I am attending"(FUDcon) can be added , or "I am looking forwards to it"(a new Release) , using Drupal Taxonomy Vocabularies. And subsequently the code from Notifications/Subscriptions can be used to Send Notifications, and updates, etc)


====The need you believe it fulfills====
====The need you believe it fulfills====
* To achieve my target I want to improve my PHP & Drupal knowledge. Especially about Drupal.  
* To achieve my target I want to improve my Python and C knowledge. Especially about the package python-take-bilinear-pairing.  
   
   
====Any relevant experience you have====
====Any relevant experience you have====
* As an undergraduate I have some good experiences about web designing and developing using PHP,HTML 5 & CMS. I have developed shopping cart(it's my first year Assignment),Plugin(for wordpress), etc. Also I have the basic knowledge of FAS systems, configuring Drupal, MySQL, jquary and javascript.  
* As an undergraduate I have some good experiences about network programming using Java, C and Python. I have developed some client-server protocols such as Go-Back-N, Selective repeat etc. Also I have the basic knowledge of configuring routers, configuring switches, MySQL, Shell scripting and IPv6.  


====How do you intend to implement your proposal====
====How do you intend to implement your proposal====
* Because these are some special features of Calender and it can be used as a separate application, I hope to implement these features using its source files.
*When Wi-Fi adapter detects another network, network manger should check whether it is defined in the database or not. Then it should calculate the signal strength of both signals. If and only if the strength of new signal is greater than the current signal should change the network profile of the current network to the new network.. A very high-level view I designed the following diagram which depicts about the solution.
[[File:Wi-Fi_diagram.jpg]]
 
Actually to act as a roaming system(without disconnecting) all the access points should be in the same subnet. If not to act like that we can temporary store the current port numbers and then disconnect the connection. After that we can create new sockets for the new subnet using previous stored port numbers and then establish the connection.
 
*For wired connections as describe in the project idea it is enough to get the domain name of the network. After detecting the network connection, using the domain name can be selected the appreciate network profile and connect to the network using its proxy settings. I think Python or C are the best languages to implement this.
*Because these are some special features of NetworkManager and it can be used as a separate application, I hope to implement these features using its source files.


====Final deliverable of the proposal at the end of the period====
====Final deliverable of the proposal at the end of the period====
* Create Insight use case Calender according to the requirements.
* Modified NetworkManager according to the requirements.
* Documentation.
* Documentation.
* Video demo about “how can user use Calender”.
* Video demo about “how to use new features”.
* Tutorial for those who are interested to learn how we modified Calender.
* Tutorial for those who are interested to learn how we modified NetworkManager.


====A rough timeline for your progress====
====A rough timeline for your progress====
Line 72: Line 68:


* 29th May –  1st July:-
* 29th May –  1st July:-
Developing the required implementation for the log in and notification system,Discuss the implementation,Report - 03
Developing the required implementation for the Wi-Fi connections,Discuss the implementation,Report - 03


* 2nd July - 8th July:-
* 2nd July - 8th July:-
Testing and finalizing the ,Report -04
Testing and finalizing the Wi-Fi task,Report -04


* 9th July - 13th July:-
* 9th July - 13th July:-
Line 81: Line 77:


* 14th July – 4th July:-
* 14th July – 4th July:-
Developing the required implementation for the insight web site,Report - 06
Developing the required implementation for the wired connection,Report - 06


* 5th July – 12th August:-
* 5th July – 12th August:-
Testing and finalizing the task,Discuss the implementation,Testing the entire implementation of use case calender,Report -07
Testing and finalizing the wired connection task,Discuss the implementation,Testing the entire implementation of NetworkManager,Report -07


* 13th August – 24th August:-
* 13th August – 24th August:-
Line 94: Line 90:


=== Have you communicated with a potential mentor?  If so, who? ===
=== Have you communicated with a potential mentor?  If so, who? ===
* Yes, she is [[User:tatica]]
* Yes, he is [[User:Danw]]


[[Category:Summer_coding_2012]]
[[Category:Summer_coding_2012]]

Latest revision as of 04:40, 3 April 2012

Integrate Proxy Settings and Network Connections(Locations)

Contact Information


Why do you want to work with the Fedora Project?

Fedora is a powerful operating system based on the Linux kernel. Under the Fedora Project include very successful open-source software releases such as NetworkManager, Policy Kit, FreeIPA, SELinux, HAL, D-bus, PulseAudio etc. As I hope to become a network engineer in my career in the shortest time I can with the real experiences, I believe Fedora Project is the best place for it. Because I can see a clear path to achieve my targets especially under the NetworkManager. Even though I won’t be able to do the GSoC 2012 I want to contribute with Fedora to improve the technical and communication skills.


Do you have any past involvement with the Fedora project or with any another open source project as a contributor (if possible please add some references as well)?

  • No

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

  • Yes,

BZR Python-Fedora Package(bzrpython-fedora)

Why should we choose you over the other applicants?

  • Because I’m so much interesting about networking and to be a good network engineer is my only dream. I have some experience in network programming using Java, Python, C and I successfully followed CCNA in 2011 December. Also I’m a very friendly person.


Proposal Description

An overview of your proposal

According to the project description, the summarized idea is to create a network connection stably and less involving the user. For the wireless system this is like roaming when user cross the networks, detect the new network and using the database automatically connect to the new network without involving the user.Here are some facilities which I hope to implement,

  • Data base to store the network profiles
  • User Interfaces to enter proxy settings
  • Pop up windows to notify when changing profiles
  • Separate user interfaces for wireless and wired connections
  • User friendly environment

The need you believe it fulfills

  • To achieve my target I want to improve my Python and C knowledge. Especially about the package python-take-bilinear-pairing.

Any relevant experience you have

  • As an undergraduate I have some good experiences about network programming using Java, C and Python. I have developed some client-server protocols such as Go-Back-N, Selective repeat etc. Also I have the basic knowledge of configuring routers, configuring switches, MySQL, Shell scripting and IPv6.

How do you intend to implement your proposal

  • When Wi-Fi adapter detects another network, network manger should check whether it is defined in the database or not. Then it should calculate the signal strength of both signals. If and only if the strength of new signal is greater than the current signal should change the network profile of the current network to the new network.. A very high-level view I designed the following diagram which depicts about the solution.

Wi-Fi diagram.jpg

Actually to act as a roaming system(without disconnecting) all the access points should be in the same subnet. If not to act like that we can temporary store the current port numbers and then disconnect the connection. After that we can create new sockets for the new subnet using previous stored port numbers and then establish the connection.

  • For wired connections as describe in the project idea it is enough to get the domain name of the network. After detecting the network connection, using the domain name can be selected the appreciate network profile and connect to the network using its proxy settings. I think Python or C are the best languages to implement this.
  • Because these are some special features of NetworkManager and it can be used as a separate application, I hope to implement these features using its source files.

Final deliverable of the proposal at the end of the period

  • Modified NetworkManager according to the requirements.
  • Documentation.
  • Video demo about “how to use new features”.
  • Tutorial for those who are interested to learn how we modified NetworkManager.

A rough timeline for your progress

  • 23th April - 20rd May :-

Finalizing the technologies to be used with mentor and the community,Finalizing the deliverables with community,Report - 01 to Fedora GSoC blog.

  • 21rd May - 28th May:-

Creating the database,Finishing UIs (might need to add some more later),Report - 02

  • 29th May – 1st July:-

Developing the required implementation for the Wi-Fi connections,Discuss the implementation,Report - 03

  • 2nd July - 8th July:-

Testing and finalizing the Wi-Fi task,Report -04

  • 9th July - 13th July:-

Preparing for mid evaluation,Get the feedback from community,Submit work for mid evaluation,Report - 05

  • 14th July – 4th July:-

Developing the required implementation for the wired connection,Report - 06

  • 5th July – 12th August:-

Testing and finalizing the wired connection task,Discuss the implementation,Testing the entire implementation of NetworkManager,Report -07

  • 13th August – 24th August:-

Code clean up,Documentation,Other deliverables discussed at the very beginning,Submit the work for final evaluation,Report - 06

Any other details you feel we should consider

No


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