Home
Build a java application that captures the current screen and saves it to a JPEG file. We will enhance this so that it sends the images to Assembla, and use it in two ways:
- As a way to capture screen images and share them to the Breakout chat tool.
- As a way of logging time and tasks. oDesk uses an application that captures the screen every 15 minutes. It puts these images into a time log that shows what a developer was working on. I do not like this level of monitoring because I think it can cause a problem for the developer. However, it is very useful if we want to charge the hours to a credit card after the work is done. If we have the time log with images, the credit owner will not be able to argue that the developer was not working. This significantly increases the probability of being paid. So, it provides the developer with a good way to get paid.
I found some examples of this, with source code, using a Google search for "Screen capture with java": http://www.google.com/search?q=capture+a+screen+with+java
This version has a frame for selecting the area to capture: http://www.javaworld.com/javaworld/jw-04-2006/jw-0424-funandgames.html
We should create a new space and subversion archive for this application and java code base. I do not want outside developers making hacked versions that submit inaccurate information.
Version 1 - Show screen shots to comrades
The first version is an application that allows a user to select an area of the screen, and then push a button to capture an image from that area. It then makes a JPEG file and sends it to Assembla.com. It posts it to the file list in a space. A good version of this application will also post a chat message that links to the new file. So, a user can go to the chat area, capture a screen, and show a bug to a different user.
This application has a simple function, but it has a lot of components that we can use for the next application.
- It has a dialog box for configuration, where the user can put his Assembla.com username and password, and a file for saving this information.
- It has HTTP or Web Service communication with the Assembla.com server.
- It has a small UI where it stays hidden until the user wants to take a screen shot.
- We need an easy way to install it.
Version 2 - Time Tracking
This automatically captures a picture of the full screen every 15 minutes, and posts it to the user account on Assembla.com.
After it captures the screen, it pops up a dialog box where the user can select the space he is working on, and describe the task. This contains the previous entry as a default, and the user can just select OK if there is no change. The user can also stop timing.
There are some new components.
- Add "Start timing" and "Stop timing" buttons to the screen capture dialog box. Add a popup dialog box for selecting the current space to bill and describing the task.
- This application should be able to retrieve the list of spaces that the user belongs to, so that the user can select a space to bill.
- We need to make a new table in Breakout to hold the user time logs.
- We need to make a view in Breakout for showing the time logs to the user, and to the space owners who receive bills for the time.