Here are a few ideas I have thought about, or other instructors have contributed: Software Application that manages all the activities in a typical restaurant Manage waiting lists (reservations may be excluded since it may involve lot more complexity) and alerting customers when the table is ready. Interface for "welcome desk" to show current status and graphical view of tables (RED - OCCUPIED/ORDERED, ORANGE - SERVED, GREEN - AVAILABLE) - customer can select the table. Menu over the web/android phone - remote orders - friendly to mobiles - nice pictures Database to keep track of everything in the backend. Table configuration data - how many seats in each table, etc. Server configuration data - name, table assignment Android or handheld device for servers to alert order is ready PC screen to show the cooks about pending orders - each screen may show only the items that are made in that cooking area. Table can be modeled as state machine IDLE --> OCCUPIED --> ORDERED --> SERVED --> PAID/TOBOCLEANED --> IDLE Privacy booths - waiter replaced by touch-screen. Orders can be input using touchscreen. May be, food should be delivered by Robot? :-) Feel free to dissect this one and add/remove features. Design a mobile phone application to provide patients with the costs of various medical procedures, aiding them in selecting the best cost provider. Medical procedures such as x-rays and MRIs do not have uniform costs across various providers. In fact, for the same MRI, one provider may charge an amount that is a few times larger than the amount charged by another provider. Insurers reimburse providers at different preset rates, the result of a negotiation process between insurers and providers. More interestingly, the same insurer may reimburse providers at different rates for the same procedure. This tool should give the patient options in choosing the provider, by reporting a list of providers, what they charge, and the portion paid by insurance. A typical scenario where it can be used is the following. A practicing physician recommends the patient a procedure, say MRI. Usually the physician also indicates the lab where he expects it to be done. One problem with this rather common approach is the potential conflict of interests: the physician may have financial interests in the lab (as co-owner, investor, etc.), have his/her good friends or relatives working at the lab etc. Many labs only perform the procedures while the interpretation of the results is done by specialists, often contracting with a few labs, and charging a standard cost. Thus, the difference in charged costs stays with the lab performing the procedure. No matter the recommendation of the physician the patient has the freedom to chose another provider and should exercise it if the costs are significantly smaller. Instant availability of nearby providers and the costs charged thus becomes of great interests. The tool should provide the user an interface to introduce a standard code for the procedure. It would then search various provider and insurance databases for nearby providers and costs and list the providers according to a few options that can be selected by the user, including total cost and patient cost. It is preferred that the interface is developed for a mobile phone running Android OS. Lawn Maintenance Services Andrew is running home based family business of maintaining people's lawns in Dallas area. Typical customer signs up sometimes in March/April for biweekly lawn mowing service. Most customers pay $25, except when the lawn is really huge. Customers call in sometime in October to stop the service as the Fall sets in. Andrew mails out reminders to past customers around March 1st requesting them to requesting them to sign-up again. Currently, Andrew performs these activities in ad-hoc manner and do not have good recording system to figure out which customer is behind in payments. Customers pay in 3 mechanisms: cash, check, or bill-pay checks directly from the bank. While most customers do remember to send payments regularly, overpayment/underpayment issues occur, and sometimes customers do forget to reactivate the bank's bill-pay mechanism. Andrew is worried that he is losing 10% or more of his income right now, due to such issues. He would like a simple application to keep track of everything. In addition to various transactions, he would like a simple way to generate a report of all the customers with outstanding balance above specified limit. He does not want many 'bells & whistles', particularly if those features will require more of his time. He cannot afford to spend several hours every day for data entry or maintaining the data. Andrew's business has grown and there are several crews working every day. They have moved up in technology too. Each crew has iPhone or Android phone, they would like an application in their phones to inform remotely after completing the job at each customer's home. Also, it can tell them which home they should service next. You will need to design an algorithm to generate schedule based on locations of customers & their “day & time” preferences. Grocery Store Application Check-out operations & inventory control. Additional analysis to improve profitability based on business criteria. ANDROID based application (R&D). This is meant to create a new app or enhance the features of an already existing ANDROID application. Students should prepare a survey of the type of services applications available (i.e video streaming, remote access, etc) and come out with a new application or a way to enhance already existing. Some o o o find a thoughts: Would you like to open your garage using your smart phone? is it doable? Would you like to open your CAR using your smart phone? is it doable? For streets and cities, you have GPS, what if you are in a big mall and you want to specific store? Is it doable? Games Project 1. The nine-puzzle. The screen has the following initial format: ^^ ^ 324> 517> 698> That’s 9 text fields and 6 buttons. Pressing one of the “^” buttons causes that column to rotate upward. Pressing one of the “>” buttons causes the row to rotate to the right. (Alternatively the rows and columns could be rotated with finger swipes, like the tumblers in the iPhone. In which case the arrow buttons will not be needed.) The object of the game is to sort the numbers into sequence with the fewest rotations. As an option, there could be an integer text field along the bottom that shows the minimum number of moves necessary to solve the problem, both initially and after each user move. Once this works, the numbers could be replaced with segments of a picture, so the game was like solving a jigsaw puzzle. 2. Black and White Knights. The screen begins with a 5 by 5 board covered with images of chess knight pieces. The center square is empty. Half of the 24 knights are black and half are white. The player repeatedly touches knights that are a legal knight’s move away from the currently empty square to cause each one to jump to the empty square. The objective is to move the knights so that the upper diagonal 12 squares are white and the lower diagonal 12 squares are black and the middle square is empty: WWWWW WWWWB WW-BB WBBBB BBBBB As options, other moves might be allowed, such as jumping over a piece to get to the empty square, or sliding one of the pieces adjacent to the empty square into that square (like the 15 puzzle). For each of these options other symbols would be used. As above an integer at the bottom could tell the optimum number of moves left to solve the puzzle. 3. Balancing Beam The opening screen shows a beam supported on two triangles: _______________________ ^^ And a series of images of weights with given weight: 1,3,6,10 You have to place the weights onto the beam without it tipping. On subsequent “levels” the pivot points change and the number of weights changes. This one might need more development.