View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Team Union of Code Monkeys 409

Cases for the Union of Code Monkeys #409

M4 - PDA GUI

Design
For M4, we ported the Current gui to the PDA. for this we had to resize the window and all its components and do the physical port. The most difficult part of this milestone was simply deciding the orientation of PDA windows with the limited space it has available. the other difficult part is actually getting squeak to run on the PDA, it is rather akward on the PDA, and there are a few tricks that we learned. There were other updates that we needed to implement to get a little more functionality and use out of the gui and backend. those were minor problems and were fixed quickly. some examples were misnames accesors or duplicate methods, NEVER make a duplicate method without deleting the original first! this led to alot of heartache in debugging when a Gui coder would try to get myName and not getName make sure mothod calls are consistant.

Implementation
One was that by default there is a button above the scroll up button on every squeak window that will bring up a menu that can "do it" and "print it" amung other things. The other is that if it's running slow on the desktop, it will run even slower on the PDA. And finally, that typing or editing anything on the PDA is nearly impossible, so have everything done before you move the image over to the handheld. This Milestode should have all the design changes recommended from your TA implemented and put under further review. It is terrible to find out at the end of M6 that something required in M4 wasn't there and needed to be there for every Milestone (timelines and scenarios).




M5 - Adding Notes

Design
For M5, we added a note class, which would contain the name of the note, the message, and a timestamp telling when it was made. What made this milestone more
difficult was that we didn't fully implement some aspects of place and what it held until this milestone. We still did not add x and y coordinates to place, or to person yet. When we first made note, it only existed in a place, not at a specific location.
One thing that was good about this design was that we kept notes stored in place, which we already transferred along the network. So, when we added notes, and later on, hotspots, we didn't have to add any more network functionality. Because we used SIXX, it just converted place and everything it held into an object that could be transferred, so we could just add things into place.

Implementation
At first when coding, we made the mistake of trying to add new network functionality, even though it was unnecessary. This was due mostly to a lack of a definite decision about the uses of notes, and how it would be created. This led to some unnecessary extra work.





M6 - Added Functionality - Hotspots, closest bathroom

Design
For M6, the overall design did not require a lot of things added to it. The extra effect we added was extra types of items in locations called hotspots, which would be of several different types, including phones, bathrooms, etc. Then, we would add a method to each client, allowing the person to find the nearest one of any of the categories. So, if a person desperately needed to use a phone, the pda could tell them which one was the closest. All that this required was another class called hotspot, which was basically a container, and different types for it to be. Then, we added the methods in the world to find the closest one of any type.

Implementation
When we finished up writing the hotspot class, we discovered a bug in the program. We did not implement xy positions for people until this hotspot, so we had some new errors because of that. Basically, when a person tried to move, you could move them, but after a short delay, they would be moved back to their starting position. This was due to some timing problems between the server and client, and how they tried to overwrite each other. We eventually were able to get it to actually move the person, but it would still appear that they were in the same spot in the gui.

Link to this Page