Marbles

Revision as of 10:10, 10 April 2009 by Puneet (talk | contribs)

Design Goals

Design Goals
  1. Good design
    I am greatly impressed by Turtle activity of sugar, and would like to achieve if not same, then try to reach the UI clearity
    as much as possible. Usability would be primary aim for design.
  2. Good help system
    Since it involves various new widgets which children might not know .It better to have help-activity along with GUI
    builder to offer help to users for building the UI.
  3. Automatic Decision System
    Minor decisions for widget placements, size ratio with desktop resolution and other script associations should be done automatically.
  4. User Input
    Mouse input is more preferrable than Keyboard input.
  5. Final Considerations
    Below are the final considerations for Marbles (Future goals as well)
    • Quality
      prefers quality of features over quantity.
    • Promote Collaboration
      Promote collaboration through good documentation, careful modular design and quality code.
    • Modularity
      Design will allow extending to other target languages and other GUI toolkits.


Q10. What is the timeline for development of your project? The Summer of Code work period is 7 weeks long, May 23 - August 10; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (July 6-13); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant.


Ans. In summer, I plan to follow the following schedule:

  1. Preparation phase( Time : April 25 - may25 )
    • gathering requirements of the project
    • getting involved with Mentor in verifying and validating the requirements.
    • Architectural design / Pseudo code.
    • This phase, I would be communicating with people as much as possible, getting requirements and verifying
      with people or community. I would also go to the pre-releases of similar softwares to get prons and cons and trying to improve in our project
      development.I am sure to get community support on this very interesting project.
  2. Coding Phase ( Time: May 25- July1 { This phase would be subdivided to different phases } )
    • divisions for coding timeline
    • decide approach for programming
    • actual coding, testing accordingly
    • documenting code parallely
    • periodically sharing information with mentors and community members
    • This phase will include actual coding. Since I already knew the related technologies and familiar to sugar development process. I can devote
      more time to coding and thus improving the project at each phases. I will share doubts with community if occurs.
  3. Testing Phase ( Time: July7- July 25 )
    • full testing of system with different phases
    • use coverage analysis to know the redundance code and improving it further
    • fixing bugs if any
    • Last minute changes before final submission
    • finish any documentation steps if left.
    • After coding, this is the most interesting part for me. Past I have also worked on code coverage tools for python and I really like this
      efficency measurement whicha also helps a lot in improving run-time. I will go for different testing tools on program, Some tools I would like
      to go with
    • coverage or flegleaf tools for anlaysis.
    • I will use boost algorithms to improve run-time if it comes under requirement.
  4. Finalizing phase / Revision ( Time: from August 1 to END.)
    • review of code/ algorithm
    • production of coverage reports, analysis, performance etc.
    • discussions on limitations of software and beneficials.
    • preparing final deployments for various systems.
    • Documentation stuffs would go in this phase

Time line: Seems very little time to do so many things, but I will try to give the best from my side.

I have worked on variety of projects ranging from web application, mobile j2me midlets, Web server management( python project ) and desktop application. One of the interesting projects I worked on is "cross platform windows explorer" which I built in python using wxwidget, in which we handled the issues like portability, searching and UI designs. If I am not exagerating, that would not be wrong to say that I am a fast learner.

Believe me, I have that talent needed to build and design a complex system for customers. Below are some of the projects I worked on

  • Shallow file browser: cross platform browser
  • Multithreaded multi media-server : A multithreaded cross platform media-server for streaming podcast or mulitimedia contents to mediadevices.
    It is currently being used by medicare services to stream health podcasts to the users.
  • Mobile Softwares: I had done some freelance work in mobile computation last semester. Major projects, I was associated with are Mobile
    Shopping, SRV navigation tool for medicare services (SRV is an open source hardware(robot) for education purposes).
  • Web Development & Services: I have been actively involved in web-development from past 1 year and used Ruby on rails and Django for development. Django, by
    far, was among my best tool for Web-UI applications.
  • Minor projects on kernel implementation ( as a part of OS course ), Database managment projects and others.

My "Open Source" activites