Mobile Computing
Home Lab Cams Projects Sponsors

Below are short descriptions of projects that students created for their final project in CPT 355 - Software Development for Mobile Computers.

Andigotchi

This game allows users to adopt a virtual pet, or Andigotchi, and take care of it in a variety of ways. Users can interact by feeding, healing, and teaching their Andigotchi, as well as participating in a variety of other ways. Andigotchis are based upon 5 basic needs: hunger, hygiene, energy, fun, and health. Users can buy food, vitamins, and items for their Andigotchi, allowing for fun interaction. Andigotchi's stats are all based upon each other and the Andigotchi's current state-if you're Andigotchi is sweatin' to the oldies, dancing, his energy will decrease faster for example. Users are able to create their own custom items and share them will all the other players worldwide via the internet. This is seamlessly integrated into the game. Any items that users create can be shared for a certain value. If another user chooses to buy this item, the creator receives the price into his online bank, which he can withdraw from at any time. Again, this is all done without visiting a single web page! Andigotchi features cool flash-based animation graphics, as well as numerous static-graphics for food and other items.

Andrew Stone, Spring 2006
 

Smartphone Bluetooth Windows Media Player Remote Control

This project contains two different applications. The first application runs on a PC and acts as a remote control receiver. The second application runs on a Smartphone and acts as a remote control. In conjunction with one another, these applications allow users to use a Bluetooth enabled Smartphone to control Windows Media Player running on a Bluetooth enabled computer. The user has the ability to Play, Pause, Rewind, Fast Forward, Stop, Open Files, Eject Disks, Toggle Full Screen, and Adjust Volume.

Brandon Montgomery, Spring 2006
 

Mobile Blackjack

Mobile Blackjack is a one to two-player application designed to assist an individual in learning the game of blackjack. The game features card-counting values that the player can use to help them in determining whether to hit or stand in regards to a specific hand and what amount to bet. The game mimics real-world casino game-play; it features betting, split, and double-down capabilities. In single-player mode, the player attempts to beat the dealer. In two-player mode, both players attempt to beat the dealer instead of individually facing off. Multiplayer consists of the ability to connect to one other PDA via a Bluetooth serial connection. Once a connection has been established between players, they take turns in placing bets and hitting/standing.

Chris Ross and Matt Hilliker, Spring 2006
 

Mobidoku

Mobidoku is a Sudoku-lover's best friend. It allows for regular Sudoku gameplay, as well as extra features such as keeping track of user guesses, completely solving a puzzle, and brainfart prevention (preventing a user from putting a number where it already exists in a row, column, or block). Another feature is allowing a user to input his own puzzle.

Keith Shininger, Spring 2006
 

Space Mines

Space mines is a Minesweeper clone designed for the Pocket PC. The object of Space Mines is to pinpoint the location of a set number of mines on the playing field. There are 3 difficutlies: Beginner, Intermediate, and Expert. Initially, you begin a game by taking wild guesses around the board until a sizable group of tiles are revealed. From here, the tiles are different numbers; these numbers represent the number of mines touching the tile containing that particular number. Try to flag all of the mines without accidentally setting one off!

Ricki Thorpe, Spring 2006
 

Magic the "Basic" Gathering

For our project we did a "simplified version" of the card game, Magic the Gathering, called Magic the "Basic" Gathering. This PDA version of the game takes the basic idea of the card game along with some original ideas and pits two players head to head over WIFI. First the players are able to connect to each other while one player hosts and the other joins. The game let's the host know his/her IP address with a message display window. Each player has a deck of fifty cards made up of spells, creatures, and mana, which draws seven random cards into their hand at the beginning of the game. Each turn, the player subsequently draws the total number of cards to get back to seven cards in your hand. The player can do certain actions while it is his/her turn with the rules in place. Players can bring out one mana to the playing field per turn. A maximum amount of mana (six mana) may be out in the playing field at any given time. Players can bring out to the playing area, a creature card if they have enough mana in the mana pool playing area to cover the cost of the card (mana is discarded). Players may discard any creature in the playing area. Players may use a spell as long as they have enough mana in the mana pool playing area to cover the cost of the card (mana is discarded). The idea is that the players can attack the opponent with their creatures and spells to try to defeat the opponent by lowering their life points to zero first. Creatures can also defend against other creatures. Once the player has made the maximum number of moves they then click the "DONE" button and turn it over to the other player who does his turn. The game continues like this until one of the players is defeated, thus ending the game.

Suhail Vagal and Nate Buesching, Spring 2006
 

MobileBreaker

The project Robert created was a game for the Windows Mobile operating system called MobileBreaker. It is a clone of a game included on Windows Mobile 2003 called Jawbreaker. It was not included in earlier versions and is not offered for sale or download for the earlier version. This is the problem that prompted the creation of the game. To play the game, the user selects "New" and the screen is filled with approximately 132 randomly colored balls. If two or more balls of the same color are next to each other, the user can select those balls to remove them from the screen. For each ball removed, the user gets a set number of points. The point amount each ball is worth increases as the number of balls removed increases. The user can select from four different game types and 10 different difficulty levels.

Robert Wakeland, Spring 2006
 

Nursing Assessment

Nursing students at Purdue University make hospital visits to assess patients. Currently the students take handwritten notes of their assessment and than at a later time go to a Desktop to fill in a Microsoft Word template which is submitted electronically. The Pocket PC Nursing Assessment application allows the students to complete the template as they are assessing the patient. This process is less cumbersome and improves the quality of the assessment. The application allows students to save their work and creates a text file that the students can submit when they are done.

Leonard Aloi, Spring 2005
 

Tiled Picture Game

This is a game in which you try to arrange a set of mixed up tiles back into the original picture. The game starts out by allowing the user to select the options for game play. The options include difficulty, scoring mode, and picture to use. The difficulty allows the picture to be split into nine, sixteen, or twenty five tiles. The user can either use the amount of time or the number of moves to keep their score. The picture option allows the user to pick from two predefined picture or to use any picture of their choice. Once the user selects his options he is taken to the game screen which mixes up the picture. The user then taps around the randomly selected white space to try and arrange the tiles in the correct order. Features available during game play include menu items to start over, receive a hint, and view the picture. These features are used to help the user finish the game faster. This game keeps track of the top five scores for each difficulty level and scoring mode. Another added feature is the integration of the Pocket PC help system to explain the game in more detail.

You can download Tiled Picture Game and install it on your Pocket PC. Tiled Picture Game requires .NET Compact Framework 1.0 SP2 on the Pocket PC.

Pocket PC CAB - Copy this cab file to the Pocket PC and tap it to install directly on the device.

Jason Fish, Spring 2005
 

Purdue PocketGPS

Purdue PocketGPS is a program that allows visitors to roam parts of the Purdue campus and view their current location, walk around as part of a passive tour, or be aided in navigating the campus. The program integrates multimedia such as audio and video to improve the user experience. The end product is the result of a project to explore the use of Macromedia Flash as a development tool for the PocketPC. The program was made possible by utilizing both C# and Flash ActionScript.

Yang Liu, Spring 2005
 

LazyEmail

LazyEmail is a client/server application that uses both email components and a text to speech component. Currently the application allows a user to set up an account, based upon their email, download any new emails from acceptable users, and then transfers the spoken word email to the user's PocketPC upon the user's request.

Brad Marsh & Jeremy Marshall, Spring 2005
 

Yahtzee

Yahtzee is a game for the Pocket PC which is very similar to the popular board game of the same name. The Pocket PC version is a single player game. There is a Top Ten feature which keeps track of the top ten local scores with a text file, as well as the top ten global scores by connecting to a server application. There is also a system for the game which is integrated into the Pocket PC help system.

You can download Yahtzee and install it on your Pocket PC. Yahtzee requires .NET Compact Framework 1.0 SP2 on the Pocket PC.

Pocket PC CAB - Copy this cab file to the Pocket PC and tap it to install directly on the device.

Ben Caruso, Fall 2004
 

Mobilector

Mobilector is a RSS/RDF aggregator that allows a user to consume these feeds anywhere with their Pocket PC. Within Mobilector, the user may add all desired channels by either entering in the full address, searching through Feedster.com, or by importing OPML files which contain their channel listings. Once RSS/RDF channels are entered, they can be easily updated with one click, which directs Mobilector to consume all feeds within the channel. These channels, with all their individual feeds, are seamlessly stored in the file system by Mobilector (via XML) so that later viewing does not require an internet connection. When viewing feeds, the user has the option to change font size, font style, foreground color, background color, and whether it is displayed in "Full Screen" or "Normal" view. Also, the user has the ability to quickly direct Pocket Internet Explorer to the actual site of the feed, if they wish to view its full content. Finally, any favorite RSS/RDF channels found on the user's Pocket PC, may then be transferred to almost any other RSS/RDF aggregators by exporting the channel list to an OPML file.

Carl Chesser, Fall 2004
 

Wedding Planner

My project is a wedding planning tool that allows the user to store and access information related to the planning and organization of a wedding. Written in C# and using a SQL Server CE database, this project allows the user to enter a variety of information including guest lists, budgets and expenses, vendors and event details. Users can review their data on the device or in reports.

Christina Kennedy, Fall 2004
 

Blackjack

The Blackjack project is a Pocket PC gambling card game. This version is a single player game that plays against the dealer. Before the hand is dealt, the player must decide how much they would like to bet on the hand; minimum of $10, maximum of $100. After the hand is dealt, the player has the option to hit, stand, split, double down, or get hints from the built-in coach. The game goes until the player runs out of money or quits. Sorry, free drinks not available.

Allison Devereaux, Fall 2004
 

OutBreak

OutBreak is a Pocket PC game that is very similar to Breakout. A paddle is controlled with the directional pad to bounce a moving ball into multi-colored blocks. If the player destroys all the blocks within a level, they move onto the next. There are many different gameplay features such as different power-ups that can be collected (large paddle, bomb, fireballs, etc.), choice of paddle and ball, game speed and blocks that crack or are unbreakable. OutBreak also keeps track of the top ten scores by using a binary file. The game was created with C# and the .NET Compact Framework. It utilizes the Graphics and Bitmap classes to draw the images on the screen while tracking ball collision with the blocks, paddle and walls.

You can download OutBreak and install it on your Pocket PC. OutBreak requires .NET Compact Framework 1.0 SP2 on the Pocket PC.

PC Setup Program - Download to your PC, open the zip file, and run setup.exe with the Pocket PC connected to ActiveSync.

Pocket PC CAB - Copy this cab file to the Pocket PC and tap it to install directly on the device.

Bret Scarlavai, Spring 2004
 

Access Purdue

The Access Purdue application is a Microsoft Smartphone-based portal to Purdue University news, information, and events. It "stream-scrapes" HTML data from the Purdue University News Service, ITaP News Service, Purdue University Calendar, and the Purdue Electronic Directory (PED), reformats the resulting information in a concise packet (important for cellular cost reasons) and delivers the packets to the Smartphone for rendering in an easy-to-read format.

Doug Kanwischer, Spring 2004
 

RFID & SQL Merge Replication

Our project explores to possibilities of using a compact flash RFID (radio frequency identification) scanner on a pocket PC. In addition we constructed a database merge between SQL CE and a SQL Server in order to create a "sometimes connected" architecture with a powerful backend.

Bradley Agdern & Mike Lizzadro, Spring 2004
 

Winamp Remote Control

This application is a client/server Winamp remote control. The program allows for basic control of Winamp along with the ability to view the playlist, add and remove songs from a queue, and search for a song in the playlist. The application displays the song currently playing and the position in the song.

Keith Kunysz, Spring 2004
 

Game Server - Chess and Checkers Clients

The purpose of the project is to create a generic game server that would be compatible with multiple game clients. The completed project consists of a server and two testing clients, chess and checkers. The server is coded to send serialized messages sent from the clients back and forth between the game clients. When serialized messages are received from the server the client in turn reacts to the commands sent from another game client. The server has three main functions: maintains connections between clients, keeps track of what players are playing which games, and sends/receives messages to/from clients.

Nicholas Krueger & Aaron Tyler, Spring 2004
 

Integrated Movie Location System

Integrated Movie Location System (IMLS) uses the functionality and ease of use of a barcode scanner coupled with the mobility and power of a Pocket PC device. The purpose of the application is to make movie locating in large retail or video stores easier on both the employee and the customer. Employees are able to relate movies and shelf locations by scanning the movie barcodes and the barcodes located on the shelves. Once adding, updating or deleting movie locations the employee syncs the database located on the PDA back to a server running as a search terminal for customers. The new movies entered into the system and the locations of all movies are then streamed back to the server where it is stored in the local database. From there all new movies are subject to "screen scrapping" from imdb.com where information such as director, lead actors, runtime, and rating are gathered. This information is then used to give the customer more robust search features. The customer is able to search for moves by name, director or actor. All related movies are returned from the search and when the user selects the movie they want, the location is displayed allowing the user to go directly to it versus getting frustrated searching a large store such as Wal-Mart for one movie.

Travis Harlow & Matt Goebel, Spring 2004
 

Texas Hold'em

The Texas Hold'em Multiplayer project is a poker game that uses multicast technology to connect two players and allow them to play Texas Hold'em against each other. Through the use of sockets and stream writing, it allows a pocket pc with a wireless connection to send and receive serialized messages, allowing it to take appropriate actions according to what message is received.

Ed Collins, Spring 2004
 

Bowling Scorekeeper

This project is a personal bowling scorekeeper. The basic functionality of this software allows the user to input a bowling game by moving the stylus over (or touching) the pins that were knocked over for each shot. As the game progresses, the score is displayed accordingly to the user. The score sheet and pins are all drawn using the system.drawing namespace allowing for a fully customized interface. All of the data from the shots and from the game is stored using SQLCE. When a user has finished his/her game, they can go back and review each shot by clicking on the frame. In addition, this software allows the user to retrieve a past game for review in the same manner. Finally, the user has the ability to view his/her stats either from all their games, or for just the games within a certain date range.

Randy Scales, Spring 2004
 

Bird Field Guide

Basically, my project is an electronic version of a typical bird field guide you would find in the bookstore. My aim is to design software that would aid people who have no experience in birding to easily identify a bird, as it can be very hard to look at the bird and flip through the field guide at the same time.

Azlinawati Munajat, Fall 2003
 

M-Education Suite

The M-Education Suite is be based on Client-Server architecture with a Server, Instructor Consoles and Student Pocket PC Clients. The purpose of the suite is to facilitate for a paperless classroom with features like instant quiz grades, real-time communication with the professor, etc. The suite is designed to work over a wireless LAN without the need for Internet access. Using the M-Education Suite in a classroom has the following advantages: 

  • Automatic attendance when students log on. No more passing around an attendance sheets. 
  • All questions answered in class by an Instructor are logged for later retrieval. o Easy to administer and grade quizzes 
  • Database backend provides an easy means to access data 
  • Real-time in class messaging between students and instructors. 

Using the M-Education Suite will help Instructors with attendance, quizzes and in-class questions.

Aravind Mavila, Fall 2003
 

PocketIM

The PocketIM package is a simple, easy to use instant messaging program for handheld devices.  The package implements a client-server architecture.  This architecture uses a custom protocol that implements TCP/IP (Pocket IM Protocol, or PIMP).  In addition to being able to type in custom instant messages, the user is able to add frequently used messages to a custom menu for added speed and ease of use.  The quick phrases as well as all other critical data (such as buddy lists) are stored on the server.  This allows you to sign on from any mobile device and have all your buddies and quick phrases instantly at your finger tips.  Users can also change the style of the main buddy list (accessed via a context menu on the buddy list).  The PocketIM Client also has the ability to send offline messages, complete with timestamps, so that when a user signs on, messages not yet received are shown.

Jon Coulter and Ian Lehman, Fall 2003
 

GoneFishing

The project was to create a system to make it easy to create maps using GPS, and for users (fishermen) to view maps, find their location on the map, and find the location of fish that they've caught with the program. Thus, this system consists of two applications, the LakeMapper, and the GoneFishing client. The GoneFishing client displays maps, user's location on the map, along with fish locations. It also contains a database of current regulations to help users determine if the fish they've caught are legal to catch. A results form shows users the fish they've caught, and can be filtered by lake, fish type, size, and bait/lure used.

Jerry Bohacik, Matt Hodson, & Eric Wei, Fall 2003
 

Virtual Piano

My project is a virtual piano.  The user can pick note and rest values and enter notes through the piano interface.  The user can make their own compositions and view them as sheet music.  They can also choose different instrument sounds.  Songs can also be edited by deleting the last note or all notes.
Lauren Nieminski, Spring 2003
 

Mobile Waiter

This project goal was to develop an application for a mobile device that can be used in restaurants to record the food items ordered by patrons. This program has two components; one that runs on the mobile device and another that runs on a server to displays the order information to the food preparers in the kitchen. Waiters and waitresses can eliminate the mistakes made through memorization, and reduce the time wasted when going back and forth between the serving floor and the kitchen to take orders. This system also allows waiters and waitresses to record the information only once, and this recording can occur while the customers are placing their orders. The application relies on two main components. The first is the database component. This is used to store all of the menu information and record the details of each order. The second component is the wireless network component. In order for the waiters and waitresses to experience the benefits of a mobile device, the device must be able to communicate with the server. The application also provides a way for the mobile app to record what data has been sent to the server, in the case that a temporary network outage is experienced. The client application will also make use of threads to periodically check for a network connection. When the connection is detected for the first time, or detected after a network loss, the program will send any orders that have not yet been sent to the server. The server will also use threads so that is always available for incoming data connections.
Erik Anderson, Spring 2003
 

Bar Code Scanner Inventory Control

This application is as an inventory control program that could be used in either industrial or retail environments. In order for this application to work there are three requirements, there must be a wireless network present, there must be a web service running the server code, and the PocketPC must have a bar code reader. The way this program works is, the user would scan a barcode with the PocketPC, this information would then be sent to the web service over the wireless network. The web service will then process the data and return new data which will then be displayed by the PocketPC application. The Pocket PC program has four major functions, retrieve inventory, add new inventory to existing inventory for example when a shipment comes in, delete inventory from current stock when product is shipped out, and the ability to update the current quantity if it is incorrect. Other utilities included a ping function to see if the web service is available, and a inventory function that lists of all the current items in stock. The main reason for this application is to eliminate the double entry process, this is the process of taking inventory on paper and then entering it into the computer at a later time. The double entry process leaves many opportunities for error, such as data entry errors due to handwriting. An inventory Pocket PC application could prevent errors, increase efficiency, and provide fresher data. The initial cost of this application and implementation would be costly but over time it should benefit a company.
Ken Becker & Scott Sisil, Spring 2003
 

PPC-FTP

PPC-FTP is an FTP client for Pocket PC's used to connect to remote FTP servers. It gives the ability to download and upload files between the pocket pc and remote server, along with other capabilities such as:
  • Deleting Files & Folders remotely and locally.
  • Renaming Files & Folders remotely and locally.
  • Creating directories remotely and locally.
  • Recursive folder transfers in both directions.
  • Remembers previous sites that have been visited.
Adam L. Dyer, Spring 2003
 

J2ME

The objective of this project is to do research on J2ME application on Pocket PC. If it is possible, J2ME application will be developed, and features of J2ME applications will be compared with those of .NET Compact Framework. Several topics will be explored, which are listed as follows:
  • Discover the possibility that if J2ME application can be developed for Pocket PC. Available development tools, run time environment, virtue machine, and emulator for Pocket PC.
  • Research on debugging, synchronization, and deployment methods and their advantages and disadvantages comparing with .NET Compact Framework.
  • Develop application on GUI controls, Graphic programming, File IO, Networking, Database connectivity, Web services.
  • Perform performance and portability testing. Applications with the same functionalities will be developed in Java and C# in order to analyze which performance is better.
Jie Gao & Yanrong Zhao, Spring 2003
 

File Explorer

My Project is a basic file explorer in which it includes all the functionality of the a basic file viewer. Functionality supported by the explorer
  • Directory View
  • File View
  • Resize Controls
  • Cut Copy Paste
  • Delete File To Recycle Bin
  • Execute a file
  • Rename and view properties of a file
Deepesh Mohnani, Spring 2003
 

Scribble Instant Messenger

The project completed was a Scribble Instant Messenger for mobile devices. The basic system consists of a server, and any number of clients. Clients are able to log into the server, and send messages to each other via the server through use of sockets. The first form that loads is the login form, in which the client enters the server's IP address and the client's username. If the username is already taken by someone currently logged in, the client must enter a different name. During the login process, the server creates a file for the user, which designates them as logged in. Once logged in, the user list form load, which displays the logged in users, along with their availability. A client can only chat with one other client at a time, so the availability of each client is shown in the user list. The user list form is updated after a certain amount of time by contacting the server for a refreshed list of users and their availability. If the destination client is available, the source client can click on the destination client's name in the user list and click the Start Chat button. If the destination client is not available, the Start Chat button is disabled. When the chat session is started, the Instant Messenger form loads, which consists of an output area and an input area. The source client can then scribble a message in the input area, and click the Send button. This sends the message in a serialized data point string to the server through socket technology. The server puts the string in the destination user's file. Every client has a secondary thread that asks the server if it has any messages. Since the source client sent a message, the destination client will see a message box that asks if they want to chat. If they click yes, then a chat session will start. If they click no, then the message is erased, and a chat session is not started. When a user wants to end the chat session, they click the End Chat button, which returns them to the user list form. When a user wants to log out, they click the Log Out button, which returns them to the login form. If a client sends a message to someone who logged out mid-session, a message box appears that informs them that the user logged out.
Mike Suzuki & Chung Ho Min, Spring 2003
 

Wireless Connect Four

Daron Zwink and Eric Shripka developed a " Wireless Connect Four" style game for the Pocket PC in C# using the .NET Compact Framework. The game utilizes network protocols & technologies such as Multicasting, UDP, and TCP to send and receive game data between the two devices. Networking classes within the .NET Compact Framework were used to develop the network part of the game. The game can be played directly between two Pocket PCs on a wireless network and on the same subnet. The user interface of the game was developed using the various graphics and drawing classes of the .NET Compact Framework. The user is shown a list of available devices running the game, and can choose to connect to them and play the game. The other user has the option of accepting or denying the invitation.
Daron Zwink & Eric Shripka, Spring 2003
 

Real Estate

The project was based upon incorporating a VB6 COM component into a .NET Web Service, and having a Mobile Device C# application access that WebService. In more detail, a Microsoft Access Database contained a list of Homes that a theoretical Real Estate agency might have. Another programming class at Purdue designed a VB6 COM component DLL file that contained classes that would interface to that Database, and returned various data from processing within the DLL. The project incorporates this COM component into the .NET framework, accessing its public methods. The Web Service has its own methods that other .NET applications can access, which would use some of these COM component methods to do its processing. And finally, the Mobile Device Application calls upon the Web Service's methods to provide functionality to be able to Search for Homes by City, Add Homes, Delete Homes, and Update Homes.
Alan Oshry, Fall 2002
 

Virtual Tour Guide

Virtual Tour Guide is a Pocket PC application that allows users to view media about selected areas around Purdue's West Lafayette campus. The application reads latitude and longitude data from an attached GPS unit to determine the user's location. If the user is within a specified range of a selected Purdue landmark then the application loads the appropriate media, a combination of text, graphics, and sound, which describe the location.

Potential uses for this include giving a Pocket PC to campus visitors to help inform them about various landmarks and services that are available near their location or having freshman use them during orientation to help familiarize themselves with campus.

Mikel Berger, Fall 2002