SummerOfCodeProposal rohita

From The Battle for Wesnoth Wiki
1)Basics
    I am Rohita Hemachandra, a 3rd year undergraduate student from university of Moratuwa, Sri  
  Lanka, studying for a BSc in Information technology. I was interested in participating for Google
  Summer of Code 2009 because I would be able to contribute to an open source project in my free 
  time and get an experience on how collaborative software projects are been developed. I was a keen 
  follower of Google Summer of Code and this is my third time in applying for the program.  
  Email: rohita85@gmail.com
  Freenode nick: Rohita
  Wesnoth forum ID: rohita85
2)Experience
     I have had an internship at WSO2 Inc [1], an open source SOA middle ware provider for 6months.
  I mainly contributed to WSO2 Mashup [2], a javascript web service engine. I worked in a project to
  implement gadget a server to WSO2 Mashup. Also I worked in WSO2 ESB [3], an open source Enterprise
  Service Bus (ESB). I implemented an Ajax based monitor to monitor and debug SOAP messages gone 
  through the WSO2 ESB server. 
     I have worked with GTS [4], a software solution provider as a mobile application developer. I
  contributed mainly to Aba Hatana, a java mobile game developed as the official mobile game of the 
  popular Sri Lanka film ABA [5]. I also developed a free SMS sending mobile application for Sri
  Lanka [6].  
      This is the third time I am applying for Google Summer of Code. On the previous two occasions 
  I could not get selected to the program. The competition in the mentoring organizations I applied
  was tough but on the process I had many valuable experiences about the program.
    I am a big fan of strategy based games since my childhood. The first to get on my attention was 
  Age of Empires 2 and I found myself playing it many hours a day until I finished it successfully. 
  Then on I moved onto more strategy games such as Command and Conquer Red Alert, Command and 
  Conquer Generals, and Rome. 
    I am new to the game Battle for Wesnoth. What I found interesting in the game is the open 
  environment where we can also get involved in the development process rather than only on playing.
  I am playing Battle for Wesnoth these days in the single player mode.
 3)  My mother tongue is Sinhala and also I am fluent in speaking and writing in English. In my 
  internship at WSO2 I got experience on how to work in a collaborative environment. I communicated 
  often with the community to get their feedbacks and requirements. I take advices as an 
  encouragement and consider giving clear advices as necessary when the need arises. I believe that
  criticism can be either useful or useless, and try to get encouraged by the positive ones while 
  ignoring what I consider the negative ones.
 4)	I chose, Implement campaign statistics reports on stats.wesnoth.org as the project to
   participate in Summer of Code. I chose Battle of Wesnoth as the possible mentoring organization 
   because I am very interested in strategy based games and idea of an open source strategy game was 
   very interesting to me. I chose this specific project as I have many experiences on charting and 
   reporting projects. I have previous experiences on Eclipse Bert [7], Jasper  , Google chart API  
   and on MySql. I felt like this is the perfect project idea for me to participate in this year’s 
   Summer of Code program.
      I will be using Google chart API and Open Flash Chart [8] as the main charting components. 
   Both of them are very good charting components that facilitate in creating dynamic and 
   interactive charts and reports. I will be using php to query the stat database of Wesnoth and 
   access and call charting components. 
       Once the project is successfully completed rather than just been a statistics viewer the 
   project should aid campaign designers in decision making. A campaign decider should b able to 
   decide whether or not a campaign is successful, what are most successful scenarios in a campaign,
   what the scenarios that prevent a player from progressing, what are the scenarios that players 
   tend to play over and over, what are the most effective units and special units in a given 
   scenario, whether the popularity of campaign is on the rise or declining, etc.
      After the project is completed successfully I hope to provide the following charts and reports
   to campaign designers.
     1) Users vs Campaigns graphs. For a selected duration, users would be displayed against selected
        campaigns in a line graph.
     2) Reports on the number of players who played campaigns and the success rates. A bar graph 
        would be provided with number defeats, victories and total games for each campaign.
     3) The user participation in a given campaign over time. A Line graph depicting the how the 
        player participation is changing over time for a given campaign.
     4) Graph showing the number of victories and defeats in a campaign over time.
     5) Number of victories and defeats in scenarios in a given campaign.
     6) One particular user’s use of units and special units in a scenario and the result and the 
        time duration.User would be able decide what is the best combination of units and special 
        units for given scenario.
     7) User successfulness of a given campaign.The campaign designer would able to decide the 
        success rates of users, whether new users are finding it easily to succeed and whether 
        experienced users succeed more than new users.
     8) Campaign rating system. I would be introducing an algorithm to decide the best campaigns.
        Statistics on success rates, adaptability of new users, number of users who play again and
        again and the number of participants would be used in the algorithm. More ideas on this 
        would be collected from the Battle of Wesnoth community. The algorithm would be clearly 
        stated in the reports.
     9) An option would be provided to the user to select the associating difficulty level of 
        statistics. User would be able to select overall, easy, normal or difficult and view graphs
        and reports with statistics of the selected difficulty level.
     I am hoping to get valuable experience oh how collaborative open source projects work and what 
   programming techniques are used in strategy games by contributing to this project. I would also 
   like to keep contributing to the reporting and statistics components in Battle for Wesnoth 
   project and be a part of the development team.
 Project Schedule
   Community bonding period – Get ideas from campaign creators and wesnoth community. Studying 
wesnoth statistics database. Studying more advanced features of charting and reporting technologies.
  The GSOC program spans 12 weeks, so I intend to utilize it as follows (milestone reached at the 
  end of week):
 Week 1: Designing the application. The charts and reports would be designed. The operations allowed 
         for users would be decided and the navigation of the application would be designed.
 Week 2: Designing and creating the UI.
 Week 6: Implementing real application. The charts, reports and the navigation of the application 
         would be implemented.
 Week 8: Get feedbacks and modifying the application to be robust and interactive.
 Week 10: Testing application and fixing bugs.
 Week 11: Documentation of the project to make sure the continuation of the project.
     5)Practical Considerations
        I have previously worked in sub­­version based projects so I have very good experience on how 
   to use sub­­version. I am not familiar with C++ but I have good experiences on Java and Python as 
   desktop programming languages. I use Eclipse and jidea as development tools and my favorite build
   tool is Maven2. I am mostly online during the day. I would be available on IRC more often through 
   10.00 AM to 6.00 PM UTC. I would be available through phone in case of emergency; my phone number 
   is +94715188005.     
 References: 
   [1] www.wso2.com
   [2] http://wso2.org/projects/mashup
   [3] http://wso2.org/projects/esb/java
   [4]http://www.gtslk.com/
   [5] http://www.abahatana.com/
   [6] http://www.dms.lk/
   [7] http://www.eclipse.org/birt/phoenix
   [8] http://teethgrinder.co.uk/open-flash-chart/gallery-pie.php
This page was last edited on 20 March 2013, at 23:55.