CS169 FALL 2004 PROJECT PROPOSALS PROPOSAL 1: Name: Kevin Tsui Project Part 1 - CS 169 - Project Proposal Problem: As of March 2004, there are approximately 730 millions of internet users in the world. People in general seem to be using the internet so much that they have less time to meet new friends and socialize with others. Solution: I-Link-U is an online service that helps customers link in with their friends, share their thoughts, as well as meet new friends with similar interests. This service can also help them better keep in touch with old friends, find dates, and host a web journal of their own. It is a combination of the popular Friendster and Xanga that are out there. Customers: This service is targeted towards young adults and older people who spend most of their time on computers but it is also useful to those who do not. Description of what the system would do: The system would allow customers to create profiles of their own. Customers are allowed to invite friends to join I-Link-U and also search for people with similar interests based on their profiles. They can communicate through I-Link-U by sending messages, write testimonials, and upload pictures to share with others. I-Link-U has a special feature that allows customers to keep an address book online that automatically updates itself as other customers update their own information. It also allows customers to build their Weblogs and publishes their thoughts to the web instantly anytime from anywhere. In addition it allows other customers to leave thoughts to others' Weblogs. Justification: The project seems to be a large-sized project. However most of the work is needed to be done prior the programming part which is in the designing process. The implementation can start by getting the basic functionalities of the system to work effectively then improve on it. Thus it is possible to produce a complete system in about 6 weeks. ---------------------------------------------------------------------- PROPOSAL 2: Name: Tom Gaston I propose to write a mini online auction site for purposes of selling locally produced art in Malibu. The customer for this software would be my dad?s friend Calvin, who is working on a Malibu business and community website and desires this functionality. This is an important problem to solve because it would allow artists to sell their art in an online environment. It would superior to eBay in that the artists would benefit from the community dynamic, which would hopefully be created by concentrating on such a specific location and trade. This system would be very similar to eBay, but scaled down to a more manageable size. We would also have to be careful not to use features/ideas that eBay has patented. This site would probably only provide the ability to browse items by category and bid on them. Users would pay one another using PayPal (owned by eBay) or perhaps cash as both buyers and sellers will likely live in Malibu. This project wouldn?t be too easy. I alone do not posses all the know-how to create a system like this, so it would probably require many students to learn more about databases and PHP. I suspect it isn?t too ambitious either, as a very stripped-down auction site can work with only a minimum of features. ---------------------------------------------------------------------- PROPOSAL 3: Name: Hsiao-Tser Kelvin Jiang The software system I propose to build is an application for generating web page templates in HTML from user-generated images. That is, users can create web page designs and layouts using familiar graphics software such as Adobe Photoshop, and quickly generate web page templates from the image outputs. In particular, users who may be unfamiliar with HTML can easily manifest their design ideas by creating images with lines, rectangles, and colors and produce blank web page templates as HTML files with tables and frames. Such an application would be aimed at people like artists and journalists, who have an image of a layout in mind, but lack the technical prowess to turn the layout into a web page. This tool would also help out the average layperson looking to transform a spark of ingenuity into reality. At first glance, such a software system may seem to need to employ advanced optical character recognition techniques for parsing image files containing layouts. However, the application can simply recognize differences in the RGB values of pixels on an image to determine the lines and colors of the layout. It would not be hard to create a working prototype that restricted users to black and white bitmap files with only lines, generating simple HTML files with tables or frames. The system can then be extended to allow for colors, and more advanced page style specifications, along with text and even images. ---------------------------------------------------------------------- PROPOSAL 4: Name: Robert Chu I propose to a workgroup collaboration tool which has peer-to-peer networking. Every group that needs to get a job done relies on communication between group members. Class projects like the Nacho OS, or a company's year-end financial report needs collaboration between a few to hundreds of people. A lot of the time, miscommunication is very costly; from not meeting the deadline to trashing the whole project. Since the requirements and the tasks can be changed from time to time during the development cycle, when let say a couple of group members needs to work on something else but the other members are not aware of such changes, bad things are going to happen. This tool is to ease the complexity of communication, to see what's need to be done and who's doing what in real-time, and to prevent disastors caused by miscommunications. My customer is my co-worker of the company I interned at this past summer. The system would define workgroups and users. Each user can assign a task to another user on the P2P network. The task would appear under the user's node once the task is accepted. A user can update the status of the task as he/she progresses. Tasks can have dependencies and other subtasks. When a task is blocked by another task not being completed, some optimization algorithm can suggest a new course of action for the workgroup. The system could draw diagrams to help visualize the workflow and to maintain efficient organization. Because this tool uses P2P networking, the network does not require a server and can be updated in real-time. Tasks for each workgroup can be made private so only users from that group have access to the tasks. A chat function can be included to allow real-time collaboration between users. There are a lot of features that can be included or excluded like encryption or the chat function. So this project is really flexible and can be fine-tuned to be completed within our time frame. The major backbone of the project is the P2P network, the UI, defining workgroups and users, task lists, and the visulalization tool. Hence, there are still substantial amount of programming to be done and one semester is about right. ---------------------------------------------------------------------- PROPOSAL 5: Name: Branimir Ciric I propose a program that would provide logical organization of personal data that is in some aspects better than the one currently used on most systems. Data on most personal computers today are stored in hierarchically organized file systems. These include large amounts of data that may contain music, pictures, video, and other popular contents. As the number of files and directories increases, it gradually becomes more and more inconvenient to search through the data (especially if there are many layers of subdirectories). What many users would like to be able to do is to perform a simple and quick search for the desired data, according to some specific criteria. For example, instead of trying to organize and remember a directory with pictures from a particular event, one would prefer to have a program that would do the search for him/her (I have witnessed a couple of half-hour long attempts to locate a particular file in those hundreds of directories and gigabytes of data! ). Besides the improved search for a particular content, this program would organize data in a more user-friendly manner. The current system offers only one organizational structure - the hierarchy of files. The proposed program would offer some customizable alternative views. For example, pictures could be grouped by the event, persons, locations, date, theme, etc. While the actual data on the disk would remain the same, the program would represent an abstraction that would be logically more appealing to the customer. My customer is Melissa Holloman, my friend and coworker. She has large amounts of data (primarily music and personal photographs) that she finds inconvenient to organize and search. She would like to have a program that would allow her to easily and quickly obtain files with a certain theme (and only those files), without a need to spend too much time trying to remember where a particular file (for example, a particular picture) is physically stored. A similar problem arises for the musical files, even though they are in general easier to search. The system would provide a level of abstraction that would hide the organization of the files on the hard drive from the user, and it would offer a multiple ways to organize the data. Also, the program would provide efficient search for the data with particular content. This content would, of course, have to be entered into the system by the user with the data itself, but this carefully organized information would provide the system with many convenient features. This project requires some careful deliberation on the side of the programmers. The efficiency is of utmost importance, as well as the ability to organize data in logical units of customer’s choice. With a proper distribution of work, a simple variant of the system can be completed within the assignment’s constraints. The project may focus on one of the mentioned features (organizing only pictures, for example), and such approach should result in a manageable workload. ---------------------------------------------------------------------- PROPOSAL 6: Name: Joshua Lee Title: The Online TC (Transaction Coordinator) Introduction In the real estate business, the simple concept of buying and selling houses becomes complex when the details of each deal are examined. The clientele involved in these transactions range from demanding and frugal buyers, to easygoing down to earth sellers, therefore making each transaction have different needs and deadlines for a real estate agent to keep track of. At the center of a real estate transaction is a set of legal papers that must be signed in a timely matter to transfer ownership of property. In addition, buyers make various demands in the proposed contracts and the agent must make sure these demands are completed. Otherwise, the deal may fail. This is a lot of work to make one property deal go through. Problem: The task of keeping track of twenty to thirty documents and faithfully babysitting each transaction for one month requires much organization and discipline. A computer is well suited for the task of remembering deadlines and notifying the parties involved about their duties and responsibilities in the transaction. Why is it important? This problem is important because keeping track of so many papers and deadlines is an enormous and stressful task. Computers are made for these types of tasks and will make life much simpler for the customer who purchases this software. 0. In real estate, time is of the essence. There can be grave consequences, in terms of money, if a transaction is not closed in a timely manner. [Example, seller or buyer may use failure to close as an excuse to back out of a deal due to the changing market.] 1. Each transaction is unique in its timing and the number of documents needed is not always the same; 2. Each real estate agent, commonly has several transactions occurring at the same time, each at a different stage of closing; 3. tracking documents is difficult since service multiple agents must be notified while maintaining privacy of data between agents. 4. the system should allow only involved buyer or seller to view their transaction via the web- another privacy issue. It is the aggregate of the above requirements and circumstances that makes it very difficult for a real estate agent to be on top of each and every transaction. Who is the customer? The customer is a real estate agent or broker. The customer has stated a need for a program to help manage all the paperwork and deadlines associated with the business. This is a real world problem that a customer has. Solution: (what the system does) 1. this is to be a web system (desirable) 2. the system's administrator is ultimately responsible for the integrity of the data and the system. It is possible for the agent to be the system administrator. 3. The system will generate on a nightly basis, an alert report of upcoming due dates (within the number of days specified by each agent). This alert report is a to-do list for the transaction coordinator or the agent. 4. The system will allow the administrator or an agent to setup transactions. Also, a list of required documents is specified. 5. An agent is able to go online to view their transactions 6. A buyer is able to go online to view their transaction (different privileges than agent) 7. email notification for all parties about due dates 8. Ability to email or fax additional documents electronically to all parties Justification Given six programmers over seven weeks, this program is just right. The program must optimize appointments in order of time dependency and importance. It must also be able to track and be accountable for all deadlines and remind the user of pending deadlines. A GUI should be made to make the program easy to use and efficient. Additional details - basic specifications Basic functions for the system: At the system level or initial system setup time: 1. A system wide preference screen for (a) turning on or off features of the system; (b) setting defaults for certain feature of the system 2. A screen to setup "documents" in terms of full name and short names, the required signatures 3. A screen to define agents (that the transaction coordinator works for). These are the benefactors of the systems (i.e. the ones who pay for the system) For each new transaction: 1. A screen to define buyers and sellers 2. A screen to define the other agent of the transaction 3. A screen to setup the transactions: in terms of all the documents that are required, the due dates for each of the documents 4. A screen to update the information for the transaction 5. A screen to allow viewing of the information for the transaction (with no update capability) [Note: the agent of the transaction may get this screen or the previous screen; this is to be specified as an option of the agent. Also, the system is to recognize the "entity' that is logging onto the system to determine if they get screen 4 or this. 6. Ability to track information of the escrow, title, lenders, etc. 7. Alert "reports" (ideally this is kicked off automatically each night by the system at a time specified at the system level; alternately, this can be kicked off by the administrator). The distribution of the reports is specified at the transaction level. Possible receivers of the reports: TC, agent, buyer, seller, and other agent. (Note: everyone only gets their own data). 8. Status report. This shows all relevant transactions as specified by the requesting user. Additional features for the system: 1. Ability to setup transaction templates. This allow the user an ability to quickly setup new transaction based on a template which has all the customary due date. This way, the user only needs to update the exceptions. ---------------------------------------------------------------------- PROPOSAL 7: Aaron Steele 1. Problem Description (includes excerpts from Wieczorek et al., 2004) ........................................................................ ........................................................................ ..................... Over the last 250 years, biologists interested in documenting the diversity of life on the Earth have gone into the field to collect specimens, observations, and associated environmental data. Taken in total, the result of these biological explorations comprise an irreplaceable archive of Earth’s biological diversity and a treasure of potential knowledge. Underlying this variation, however, is a core set of concepts common to all natural history collections, one of the most important of which is the ‘collecting event’ - a description of the time and place (locality) where a specimen was collected. The collecting event is an essential association between the specimen and its spatio-temporal context on Earth and is required for quantitative analyses of specimen data together with other spatial data using geographical information systems (GIS). Despite increasing interest in natural history collection data, there remain considerable obstacles to their use in GIS. In the relatively few cases in which localities have been assigned coordinates, there is seldom any documentation of the method used to determine those coordinates. Thus, even where present, georeferenced localities may be of limited utility since we have no knowledge of how they were generated. For example, it has been common practice to assign a single point to a locality, without estimates of how well that point represents the actual locality. Without this knowledge, uncertainties cannot be incorporated into analyses and it becomes impossible to determine whether a given record is appropriate for a particular application. Spatial analysis without consideration of data uncertainty is of limited utility. John Wieczorek of the Museum of Vertebrate Zoology at U.C. Berkeley has developed the point-radius method (Wieczorek et al., 2004) which provides a practical solution for georeferencing descriptive localities that can be widely implemented, especially in communities where sophisticated GIS expertise is lacking. By providing a single measure of the combination of uncertainties inherent in the locality description, the applicability of a locality for a given analysis can be more readily discerned. By capturing the spatial attributes of the locality in a simple, consistent set of parameters, the point-radius method offers a solution that is practical for natural history collections without the need for spatial databases that would be necessary to store georeferences created using other methods. In experiments using a manual georeferencing approach, Wieczorek found that locality descriptions were converted into spatial coordinates at the rate of 16 localities per hour for geographic areas where digital media were available (Wieczorek et al., 2004). While this rate represents an important step forward for the biodiversity community, preliminary tests using an automated tool suggest that the georeferencing rate can be increased by an order of magnitude by distributing the uncertainty business logic to a web service that both calculates uncertainties for georeferences and allows users to graphically edit the resulting uncertainties. 2. Customer ........................................................................ ........................................................................ ..................... Museum of Vertebrate Zoology, U.C. Berkeley 3. System Description ........................................................................ ........................................................................ ..................... Three components will be built. (1) A client web application (the workbench client) that provides an interface to (2) a server web application (the workbench server) which provides the interface between natural history collection specimen data (the provider) and (3) a georeferencing uncertainty web service. From the workbench client, users send an XML request to the workbench server. The server then queries a set of providers for specimen records that contain latitude and longitude fields without uncertainty values. These results are returned to the workbench server in XML, then submitted to the georeferencing uncertainty web service. The input to this service is an XML document in a SOAP wrapper, provided by the workbench server. The XML documents will have a element within which an unbounded number of elements can occur. Every will carry along all of the metadata required to do uncertainty calculation. Once the geospatial coordinate uncertainties have been calculated and returned to the workbench server, XML results are streamed back to the workbench client where researchers and scientists can view the data using interactive maps. Each coordinate is mapped with an error glyph that represents the uncertainty. These error glyphs can be graphically mutated. For example, a user can drag the error glyph to increase or decrease its magnitude. 4. Justification ........................................................................ ........................................................................ ..................... The 'not too easy' part should be obvious by the problem statement and system description. The 'not too hard' part is justified since we would have an 'XP expert customer' (John Wieczorek) who would be available throughout the process to provide guidance and advice. Since he is a Programmer/Analyst, he can provide both technical and implementation guidance to the effort. References: Wieczorek, J. 2001. MaNIS: Georeferencing Guidelines. (http://elib.cs.berkeley.edu/manis/GeorefGuide.html) Wieczorek, J., Guo, Q., and Hijmans, R., 2004. The point-radius method for georeferencing locality descriptions and calculating associated uncertainty. International Journal of Geographical Information Science. ---------------------------------------------------------------------- PROPOSAL 8: Name: Norm Aleks The anesthesia group at Kaiser Hospital in Oakland provides around-the-clock anesthesia services at more than two dozen locations (operating rooms and other) at four facilities -- three in Oakland, one in Richmond. The group consists of nearly forty anesthesia providers, about one-third physician anesthesiologists and two-thirds nurse anesthetists. Scheduling this group -- that is, ensuring adequate coverage for each location at each time, while respecting individual anesthesiologists' and anesthetists' scheduling preferences and requirements -- is an enormous job currently done quarterly by two people over about a month. When a schedule does come out, much more time is spent on changes to it (for illnesses, vacation changes, etc.). The department badly wants a system that can produce a schedule more quickly and also allows for on-the-fly readjustments based on new staffing requirements, illnesses, etc. They have actually contracted for such software before, but no product was able to achieve their goals. I propose communicating with them to determine their requirements, then writing a scheduling system flexible enough to meet their needs now and in the future. Since this anesthesia department's scheduling requirements are among the most complex seen in most hospitals, a scheduling system that was useful here would probably be useful at many other hospitals (and perhaps at other round-the-clock businesses). The customer would be the anesthesia department at Kaiser Permanente's Oakland hospital, represented by H. Jacqui Miller (department coordinator) and Therese Hickey, M.D. (assistant chief of anesthesia). The system would take as its input a set of staffing requirements by day, hour, and location as well as staff availability and preferences, and produce a tentative schedule that should then be easily modifiable. Upon modifications, it should allow either a "forced override" situation, where it simply left the modification in place, or an automated re-adjustment that tried to make the fewest possible changes to achieve a complete schedule again. It would be great if its inputs and outputs could be done through Web browsers. Although others have tried and failed at this project, to me it seems achievable during this course. The biggest problem will be in determining what the staffing constraints truly are, and how to specify them -- for example, how can the system accomodate the fact, known to the human schedulers the department has now, that "Mary likes working 24-hour shifts, but always wants two days off afterward," or "John doesn't work out well at Richmond -- we only put him there if we're in a bind"? The scheduling routines themselves are well-known. ---------------------------------------------------------------------- PROPOSAL 9: Name: Randy Chung Summary: I propose to develop a system that will automatically and systematically audit the security of a network. Problem Description: The dependence of modern society on the internet and networks in general has made the security of these networks of utmost importance. A lack of security can lead to a major downfall of computer grids and networks, resulting in very real damages. For example, viruses released for the Win32 platform over the past two years have led to national defense networks breaking down, leading to disrupted communications and a break down of civil defense systems. A breach in the network security of a business can lead to customers' private data being leaked. While internal networks are often kept safe from network attacks from the outside, network security within is minimal. This results in networks which fall quickly once even a single machine has been compromised. There is a difficulty in securing internal networks, since it's often useful to keep all communication lines open within the organization, but doing so also results in more vulnerable systems. A compromise would be to scan and identify holes which can be automatically exploited by viruses and worms, and leave communication lines open. While this would still leave the system open to a dedicated hacker attack, it would at least make it harder for an automated program to exploit the hole. Customer: In general, system administrators. Specifically, I think campus' Residential Computing might find it useful in identifying and securing computers in the residence hall network that might be compromised otherwise (which would lead to another embarassing scenario for the University, as last year's mass virus infection was). System Description: The system should offer an intuitive GUI to make the program easier to use. The system should automatically scan a network (single computer, partial subnet, subnet, etc.) and identify possible ways to break in. There should be an easy way to add new possible methods of compromise to the list of exploits scanned. There should be reports generated on a configurable scope (e.g. single computer, partial subnet, subnet, etc.), which would include individual exploit ratings as well as an overall security rating. There should also be a mechanism to collect scanning rules into groups and name them, allowing different networks to be scanned according to different rulesets. It is important that the system intelligently scan for security holes, checking to make sure that "holes" identified are actually problematic and not resulting from a known, benign program. Project Feasibility: I think it is possible for a team of 5-7 programmers to do this project since how much work is involved is variable. There are a lot of potential holes floating out in the internet, as well as a plethora of bugs that can be find in the bugtraq mailing list. The difficulty of the project lies in how far the team wants to go with it, e.g. how many exploits to support, how many whitelisted programs to check for, etc. There isn't a concrete lower bound of work built into the project description, but there is at least a GUI, a number of significant bugs, and a few major programs which should be whitelisted. ---------------------------------------------------------------------- PROPOSAL 10: Name: James JiaYuan Zhang I propose the development of Version Control Software. I believe that on the current market the only well known version control software exists for source code development. The version control software I am proposing goes beyond the scope of serving just the software engineers. This software will be handling everyday document types that common businesses use in their operation. I believe this is important because it is easy for human to make mistakes, and some times unrecoverable mistakes while using a computer. If all the documents are to be going thru a version control with proper version control, unrecoverable mistakes can be recovered. The customer any type of business who feel the need of protecting and managing their documents in a level above what their Operating System File System provides. Basically any company that feels that the importance of the safety of its files can become a potential customer. The main purpose of this software will be keeping track of different version of the same document that has been edited by many users. It keeps record of version number, author and users who made change also any comments that comes with the change. The software provides a virtual interface of the file system that it manages to the user, in which it will also be hiding the actual file system that the Operation System implements away from the user for protection purpose. The software will contain two separate parts, a server and a client. Of course the software will also provide user easy to use User Interface I believe it is possible for a group of five to seven students to accomplish this project because this project only touches very selected few area of computer science. The main part will be the virtual interface between the File System users sees and the actual File System the Operating System provides, the next most important element will be the network communication between server and client. Other than that it's has some concurrency problems and user interface design. I believe most of the important aspect of this project has relationship to CS162 Operating Systems, which for students who has taken that course this will be a development of application on top of existing knowledge. ---------------------------------------------------------------------- PROPOSAL 11: Name: Paul Cho I propose a 3D virtual tour of a city, such as San Francisco and Berkeley. This tour will ease the process of visiting a city, and it will hopefully make the visit to the city more enjoyable. I believe it will help the tourists because the tour will familiarize them with the location. This service will also facilitate making reservations for tourists, so that they won't have to hunt down the business information just to get their phone number and make a simple reservation. It will also lists the main attractions and people's choices of their favorite restaurant/store. Also, this tour is aimed towards the business owners, so that they have an easy way to advertise their business on a service that will hopefully be used by many people. Also, since there are a lot of businesses that do not have website, this tour will give them a way to reach potential customers online. The customer that I am aiming for are the business owners in the city that I will be creating a tour for. For example, if the business owner wants their business advertised, they will have to pay for the service of keeping their store advertised on the virtual tour. There will be several features to this virtual tour. 1) This tour will allow the user to take a virtual walk through a city. The businesses that want to be advertised will be displayed as a 3d modeled store in the tour. The exterior will imitate the actual store, and if possible there will be a simple imitation of the interior of the store. Along with the virtual walk through the city, if possible the tour will allow the users to enter big complexes, like a mall. 2) The user will be able to enter into a business in the virtual tour and make reservations with that business, like a restaurant. This will make it easier for the tourist to make reservations, otherwise the tourists will have to search online for the individual business and attempt to make reservations by phone or even online. This will require the business owner to have a close relationship with our service. 3) The users will have an option to leave comments about the stores/restaurants that they have visited. 4) With the tour, the user will be able to create an itinerary and a map to visiting these areas. This can be done through mapquest. Also users will be able to post up their itinerary that they found helped them make the visit enjoyable. 5) As an extension to the itinerary, it may display some traffic statistics, such as the probability that parking spaces will be unavailable, the traffic congestion, etc. 6) List of main attractions with PICTURES. 7) We will allow other users of this site to interact with each other in realtime by implementing some sort of instant messaging system. Hopefully, we can take this to the next level by allowing users to interact with the business owners online, instead of having to call the store by phone. To do this, we will have to implement some "wait" system. 8) If possible, this service will allow business to post up a website of their products, such as clothes at a clothing store, etc. It will definitely have links to their website, if they have one. 9) Possibly allow users to order items from these stores online. I believe that this project will not be an easy project since there are a lot of features that need to be implemented and a lot of features that can be expanded upon. Even just the creation of a virtual city will take quite some time to implement. On the other hand, it is not too ambitious for 5-7 programmers to undertake in one semester because after creating the virtual city we can implement one feature at a time. Since most of these features are optional and only there to improve upon the project, I believe we can finish the main functionality of the project within time. The only problem that I can think of at the moment would be the physical resources that are needed, such as a web host. ---------------------------------------------------------------------- PROPOSAL 12: Name: Steven K. Moy Revision: 1.02 Many people love taking photographs and sharing their memories with their friends and families. However, traditional photo albums tend to grow too big to be easily portable, especially when you have consistently taking pictures in the last couple years. Then, many companies brought out online picture hosting services for people to share their digital photography. With ever-increasing quality and decreasing price of digital camera, more and more people have switch to digital photography. However, the online hosting service tends to become a bottomless pit costing countless of dollars as users’ picture collection and storage requirement grows. The alternative is to host pictures on users’ own computers but it tends to be a challenge enough task that deter many home users from doing so. Therefore, I propose an easy to use web-based photo publishing service that hosted right within a home user’s desktop.  The beta testers of this application will be the Berkeley Anime Network. They would use it to share outing photos. However, the target customers of this application will be users who already have broadband internet connection and want to share their digital photos online; yet are unwilling to commit to a monthly-fee based hosting service. In addition, the application will be so easy to use that users are not required to have experiences with web servers or to tinker with the internals of the operating system.  The web-based photo sharing system would allow basic administration of their photos: add and remove photos; customize page layout along with their photos; associate meta data with photo to enable photo search; shopping cart to buy publishing rights for a photo. Once the framework of the system settles, we will add optional services, such as announcing a photo albums in a peer to peer fashion (thus eliminating the needs to buying a domain name when others can search for the user’s photo directly via the peer to peer network) The key challenge of the system is the extraction of metadata from the digital photos since the required method will vary among different picture formats. However, initial support would limit the amount of supporting formats. The layout of the photos would be developed by dedicate engineer that is familiar with CSS. Other features such as shopping cart can be solved by leveraging the open source knowledge. The peer-to-peer function can also leverage the JXTA open source project, which is a framework for implementing peer-to-peer communications.  ---------------------------------------------------------------------- PROPOSAL 13: Name: Peter Tseng I propose to develop tool for Aspera, Inc. that will monitor throughput and network load between hosts connected over an IP network, and display the information graphically. Aspera is the developer of a suite of software applications based on their own FASP file transport technology. Their technology is designed to replace standard TCP as a superior solution for file transfers, to provide fast, reliable, predictable, and secure file transfers. They are on the verge of achieving gigabit speed transfers. Aspera has an office in Berkeley and will be available work with the project group. Their web address is www.asperasoft.com . Aspera has expressed a need for a system for monitoring and testing the network on a host and between hosts. This tool would accomplish several objectives: it would provide valuable information for testing and debugging their software; a method of benchmarking the performance of their software over wide-ranging network conditions; a concrete way for new customers to evaluating the software; and a diagnostic tool for existing customers. The importance of this tool is that it allows Aspera - a small start-up company - to establish its technology as the best file transport solution, and to save time during testing and debugging. Additionally, the tool has a generic application for any network, in particular those with geographically distant hosts connected over a variety of networks. The graphical tool will be installed on network endpoints (defined by IP address) where monitoring is desired, to perform both active and passive operations between them. Active operations include: (1) Measuring maximum throughput between hosts; (2) Capturing and displaying traffic through a host, categorized by packet type (TCP, UDP, etc.). Passive operations include: (1) Gathering network activity data (bytes/packets in and out, round trip time, etc.) and storing it for display and correlation. This project would be ideal for the size of CS169 groups, given one semester. The code for the tool requires significant design and planning, since it must combine a user interface, a number of backend functions for monitoring and testing the network, and a graphical display for information. Developing code that deals with networking multiple computers is also non-trivial in terms of testing and technical knowledge required. However, the tool is specific in its purpose and should not be unreasonable to code within the given time frame. ---------------------------------------------------------------------- PROPOSAL 14: Name: Armen Abrahamian The system I am proposing is intended to solve the proliferation of redundant address books and contact information for e-mail, cell phone, instant messaging, etc. users everywhere. Nowadays when using these applications or services, and others, the people you know and collaborate with, your "contacts", are replicated in the address book or phone book or contact list of each separate service or application. This system will in effect act as a central repository for all those contact lists. This problem is important because as we become more and more dependent on all of these applications and services, one could start spending surprisingly large amounts of time maintaining and updating the contact databases for each of these applications. This runs completely counter to the purpose of most of these apps, which is to streamline the task or provide a service that saves one time/headache. The customer for this system would initially probably be any mobile warriors or people who interface with a lot of people. This includes groups like salespeople, consultants, real estate agents and the like. However the system should scale down and be usable and useful for a home user as well. Even an average-level tech-savvy home technology user uses a significant number of the apps and services listed below. The system should interface with all major repositories of contact information on a user's tech devices. That is, after an initial period of aggregating all of the contact information from apps/services, the system will then take any new updates in from the user, then push those updates out to any relevant apps/services. Thus, the system will keep all of these contact lists in sync. The apps and services to interface with include but are not necessarily limited to: -Address book built in to Windows or Mac OS X -Address book built in to Outlook, Netscape Mail, Eudora, and other major e-mail clients -Contact list in instant messaging applications such as AOL Instant Messenger, MSN Messenger, or Yahoo Messenger -Cell phone phone books (not all phones will be capable due to built-in software or connectivity limitations) -PDA devices including Palm OS and Pocket PC devices -Online communities such as Friendster or The Face Book The system will maintain information on all of one's contacts. Contacts can be a part of multiple user-defined groups. The system can also have dynamic "smart" groups which are based on rules rather than manually created (a la Smart Playlists in iTunes). Also, ideally the system will be able to provide off-site backup of this rather important contact database by backing up to hosted servers on the Internet. There could also be a web interface to access the contact information were you to need it and not have any of your devices present. The system will also keep track of all the information for the user himself on all of these apps and services. When the user changes an e-mail address or phone number, the system could offer to assist in notifying some/all of his contacts of the change. This system is definitely not easy to build. It is going to have to interface with a multitude of different applications and services. This will be *relatively* easy for those services or apps which are storing things in a standard or open format, which is relatively few. For the rest there will have to be research and possibly some reverse engineering happening. The system will also need to store potentially a lot of data in a way that is quickly searchable and usable. The interface for this project will also take a significant amount of planning, design, and testing. Thanks for considering my proposal. ---------------------------------------------------------------------- PROPOSAL 15: Name: Michael Bina Dining out can be a very pleasant experience, one that many enjoy from time to time. However, there come times when the experience is not so pleasant, usually on account of the service. One problem that has always been around with restaurants is the problem of inefficient and/or unpleasant service. Diners sit down at their table and are given menus and are pressured into hurrying to decide what they want before the next time the waiter comes around. There is always the issue of a waiter getting the order wrong. And it is never any fun trying to get the waiter to bring you the check when the restaurant is busy and you’ve got somewhere you need to be. There are many more problems with the current system of waiting on tables. The system that I am proposing is one that would solve these problems. The primary customer for this product would be restaurant owners who are looking to make their restaurant more efficient and aren’t afraid to try new things. The secondary customer and the primary user of the system itself are regular customers at a restaurant. Because they are the primary users of the system, they are the ones that should be used as subjects when testing the interface and features. When determining how the backend system should work and how the system should provide information, the restaurant owner should be the subject for testing. The proposed system is a kiosk of some sort that sits at each table and provides an on-screen menu. Users can browse the menu right there at the table including daily specials and when they see what they like, they can order it right then and there. The kitchen gets a message saying what was ordered and can begin to prepare the meal right away. Waiters are not completely done away with because they are still needed to bring the food once it is prepared and provide general customer service. This system of ordering when ready not only speeds up the ordering process, but since orders don’t have to go in all at the same time, the chefs can start preparing the food as the orders come in, speeding up the return time for the food. The same goes for ordering drinks. The system would also provide an easy way to call over the waiter when help is needed and the waiter would have a system for knowing who is asking for help instead of having to come around every few minutes to check on things. Finally, the system can also speed up the paying process. Once the meal or ordering is done and the customers are ready to pay, they simply hit a button on the kiosk and their bill shows up right there on the screen. They would then be provided with a way to pay by credit card by swiping at the machine or printing out the bill and paying by cash to either the waiter or the cashier. Overall, the system would prove to make a more efficient and pleasant experience for both the diner and the waiter. The bulk of this system lies in the interface itself and making it friendly and usable. The actual implementation in the final technology is something that would not be necessary for this project. While the final product might be a simple flat panel with a touch screen interface, for this project, we could make a working prototype that did not use the touch screen interface but rather a simple point and click interface that could later be changed. The sytem of sending the orders to the server could be implemented over a wired network for this project while the final product might work wirelessly. Overall, with these downsizings, the project would be very feasible for the scope of this class.