In 2009 when I was a student in Southern Cross University of Australia (SCU), I was supposed to do a project as my final project. It was quite a while that I was heard about Windows Presentation Foundation (WPF) and I was in love with that. So I thought it would be great if I create a WPF application as my final project. So I decided to write an application to learn WPF in action and this project came to existence. After that, when I graduated from SCU I decided to make a video demo of the app in action and put that on the Youtube.
<object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=3,0,0,0" data="http://www.youtube.com/v/CVlSj0yr3rg?version=3&feature=player_detailpage" height="360" type="application/x-shockwave-flash" width="640"><param name="movie" value="http://www.youtube.com/v/CVlSj0yr3rg?version=3&feature=player_detailpage" /><param name="quality" value="high" /><param name="wmode" value="transparent" /></object>
After putting this video on Youtube, I received many feedback and requests from students in academia to share the code with them. They were interested in how I had created this app using WPF technology. I hadn't decided to share the code in public mostly because it was my first try on WPF and I knew that it is not well developed to be considered a guide for new learners. In fact, I was a newbie in WPF and I didn't want to put others in a wrong direction. Therefore, when I was receiving such requests I was forwarding them to the open source Family.Show application from Verrtigo and Pro WPF in C# book by Matthew MacDonald that were among my best resources in learning WPF.
It's almost 3 years passed now from when I did this project but I still receive such requests and feedback from academia students. To be honest, I am tired of replying such insistent student who ask for the code even though I reveal this fact with them. Therefore I've decided to share the source code of the app with everyone who is interested by the subject as is.
But I highly emphasize that this is a project that was done by a WPF newbie, hence you should consider that there might be better ways to do the things that were done in this application in terms of coding, designing and etc. In fact, If I'd wanted to create this application now, I would do that differently and in a more standard way.
Anyway, here is the whole thing you need to know about this project.
This project consists of two separate parts; Restaurant app and Waiter app. The Waiter app is a Pocket PC based application based on Windows Mobile 5 that helps waiters to place customers’ orders besides getting informed of orders’ states to serve them to customers. This application works in an online environment in a WiFi network.
On the other side, the Restaurant app is a PC application based on WPF which is used in three different stations by three different users; Manager, Kitchen organizer and Cashier. The Manager, defines users of the applications and assigns different permissions to them. Moreover, he/she can defines initial data of the application and also can get different reports by the app. Kitchen organizer uses the Restaurant application to be informed of new or edited orders to prepare them besides, updating orders state and also availability of orders’ items. And finally the Cashier, who will use this application for printing receipt and doing check out processes.
Important notice: I definitely know that the processes inside Restaurants might be different in real situations. Better say, the processes in this application are just imaginary.
Using the code
After you download the files, you should attach the database files in Microsoft SQL Server 2005 or higher versions. Then you need to change the connection strings used in both Restaurant and Waiter apps accordingly.
For changing the connection string in the Restaurant app, open Settings.settings file in visual studio and change ConnectionStr property to point to your SQL Server instance.
Setting the connection string for the Waiter app will be done through frmConfiguration form.
That's it! Hope it helps.
Keep in touch!
If you are interested to check my new apps, please ckeck http://PortraitPad.com