Summer Coding 2010 proposal - Freeseer - Auto-Systray with Hotkey

About my project

 * 1) What is the name of your project?
 * 2) * Auto-Systray with Hotkey
 * 3) Does your project come from an idea on the Summer Coding 2010 ideas page?  If so, provide a link for reference, as well as a link to any discussions with mentors about your proposal.
 * 4) * Yes, Summer Coding 2010 ideas - Freeseer
 * 5) Describe your project in 10-20 sentences. What are you making? Who are you making it for, and why do they need it? What technologies (programming languages, etc.) will you be using?
 * 6) * Freeseer is an open source video capturing utility that is capable of capturing live presentations. This software has be used in open source events like OSGeo’s FOSS4G, FSOSS, BSDCan, PGCon and more. Currently, the program displays a preview output while the program is recording. Its purpose is to indicate that the program is recording. However, the preview takes quite a bit of resource and the program hasn't been implemented to disable it. In this project, I will provide the feature to disable preview display and among other useful features like configurable hotkeys and auto-system tray in order to make it successful. My project will not only help make user experience more seamless, but will also benefit the viewers of the recordings of the presentations. Freeseer is based on Python, PyQT, and GStreamer. I will mostly deal with Python and PyQT.
 * 7) What is the timeline for development of your project? The Fedora Summer Coding work period is 10 weeks long, June 01 - August 9; 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 5-12); the last steps always take longer than you think, and we will consider canceling projects that are not mostly working by then.
 * 8) * Pre-June: Read up on Python and PyQT
 * 9) * Week 1: Add GUI and implement disable preview
 * 10) * Week 2: System tray icon color change, bind record button minimize to tray
 * 11) * Week 3: System tray icon action events, add GUI for auto-hide option
 * 12) * Week 4: Keybinding, add GUI for keybinding combinations
 * 13) * Week 5: Watermark design, watermark disappearance timing, research on “above all windows” (Watermark implementation is optional and could start testing, debug, documentation, and work on other issues)
 * 14) * Week 6: Watermark implementation, add GUI for watermark option
 * 15) * Week 7: Auto-save config and defaulting implementation
 * 16) * Week 8-10: Testing/debug, documentation, involve in resolving other Freeseer issues
 * 17) 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.
 * 18) * Just recently, me and three other people were in a team to do a Restaurant Automation for our Software Engineering class. None of us had any experience with what was needed in the project. Being chosen as their database guy, I did some research and chose sqlitejdbc as our backend. I wrote approximately 7,000 lines of code and documentation within 10 weeks. And as the team was lagging behind, I went outside of my line and wrote 20% of the GUI, which helped bring a working demo for our presentation and report.

Community and I

 * 1) If your project is successfully completed, what will its impact be on the Fedora community? Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers from members of the Fedora community, at least one of whom should be a Fedora Summer Coding mentor. Provide email contact information for non-Summer Coding mentors.
 * 2) * Leo (me): First, this project is my first coding contribution to the open source community and will give me experience working with experts. Second, enhancing the graphical user interface, my project will bring a more desirable alternative for a recording desktop application.
 * 3) * Andrew Ross (mentor): What makes Freeseer different from other options for Fedora today is that Freeseer can record from USB, firewire, etc. Thus, it is possible to record with no additional software installed or running on the speaker's computer. This is unique to Freeseer and a small number of closed source alternatives. The result of this proposed project will enable Freeseer to become feasible and easier for Fedora community members to record presentations and demos. This benefits the entire community, making it easier to share knowledge and communicate. And as a secondary effect, people outside the Fedora community today will find it easier to discover material related to Fedora and this will serve an outreach function to recruit/invite/welcome more Fedora community members.
 * 4) * Thanh Ha (mentor): What makes Freeseer stand out from other similar projects today is the focus on recording presentations at conferences. Freeseer is designed to be simple to set up/configure (laptop+vga2usb+mic), allowing the user to focus on the task of recording many presentations at a conference with as little hassle as possible. The result of the proposed project will enable Freeseer to have improved usability changes enabling it to be more intuitive and easy to use as well as get more developers into the project to continue improving the software.
 * 5) What will you do if you get stuck on your project and your mentor isn't around?
 * 6) * If my mentor is unavailable and the matter is specifically for him, I will e-mail him. I will be on IRC whenever I work on the project, engaging with the community and get immediate help.
 * 7) In addition to the required blogging minimum of twice per week, how do you propose to keep the community informed of your progress and any problems or questions you might have over the course of the project?
 * 8) * I will post weekly status on my blog. I have a git fork of the development branch and people can test my branch.

Miscellaneous

 * 1) We want to make sure that you are prepared before the project starts
 * 2) * Can you set up an appropriate development environment?
 * 3) ** Yes, I've already made the first step in my git fork.
 * 4) * Have you met your proposed mentor and members of the associated community?
 * 5) ** Yes, on IRC. I've also associated with them on the freeseer mailing list.
 * 6) What is your t-shirt size?
 * 7) * Small
 * 8) Describe a great learning experience you had as a child.
 * 9) * There was a time around, when I was grade 2 or so, when my mom was asking me questions trying to review me for an exam for the next day. It got so late at night and I was so sleepy, I remember being able to see words floating like you'd see on an old 3D text Windows screensaver. I would read out the biggest one and I would get it right. After that heavy review, of course, I had aced the exam. But being able to grab words like that during the review, I thought it was awesome.
 * 10) Is there anything else we should have asked you or anything else that we should know that might make us like you or your project more?
 * 11) * Describing the project in 10-20 sentences may not have been enough. Here is a more detailed version of the proposal.

Comments
Use the Talk:Summer Coding 2010 proposal - Freeseer - Auto-Systray with Hotkey to actually make comment, which then appear here on the main proposal page. You can use this link to make a new comment].