none
Pizza Delivery System - what points to focus on RRS feed

  • Question

  • Hi,

    Hope I am in the right forum.

    I have an interview and they told me that I will have to create a vb.net pizza delivery system. They use winforms but since I only know asp.net I can use webforms.

    I will have to use jquery, webservices/wcf and sql server including stored procedures. Also it has to be n-tier.

    The UI will be simple with a few tables and calendar.

    Any tips? Should I build the tables with Gridview?

    What do you think I should concentrate on? I want to build a project at home and practice.

    How would you go about doing it? Also, I assume OOP is important.

    Thanks.

    Friday, January 23, 2015 8:06 PM

All replies

  • How long is the interview going to be.  I don't think they expect a working project.  So I would concentrate on architecture and documentation.

    jdweng

    Friday, January 23, 2015 10:24 PM
  • It is about 3 hours. They do expect me to use webservices (what do you think they need it for?).

    If they say pizza delivery do you think that they mean that a client phones the restaurant and the employee makes the order or that the client goes to the site and places the order and it gets sent to the pizza place?

    Friday, January 23, 2015 10:30 PM
  • It doesn't matter.  A delivery system has 3 parts

    1) Place Order

    2) Make/Bake Pie

    3) Deliver Order

    The important word is "SYSTEM".  A System can be broken into smaller pieces.  A System as Inputs and Outputs.  You have to first define the inputs and outputs.  So when you start designing a System you have one block with all the inputs and outputs.  Then you start partitioning the block into smaller piences, but the external inputs and outputs remain the same.  You start to get internal inputs and outputs when you start breaking the project into subassemblies.


    jdweng

    Friday, January 23, 2015 10:40 PM
  • Okay, i will start thinking about it and building a project for practice.

    What could they want the webservice to do in your opinion?

    Friday, January 23, 2015 10:54 PM
  • Okay, i will start thinking about it and building a project for practice.

    What could they want the webservice to do in your opinion?

    Pizza Hut allows online ordering. Other pizza stores probably do also. Even ma and pop ones.

    I think you should go online and see what other pizza place websites do before you attempt to reinvent the wheel. You don't build prior to design. Unless you're in a hurry to mess up an entire project.

    I would focus on what capabilities I could provide the customer with an application or website or whatever they want. But guess what. If I didn't know what all the other pizza places can do online I probably would have no idea what to tell the customer.

    The customer doesn't want a POS application for use with their registers do they? Or do they want a "carry out" app just for their cashier/order taker to use (which makes no sense to me as their POS app for use with their registers should do that)?

    Cause what they should have is a POS app used with their cash registers that provides the features necessary to provide "carry out" and utilize information provided by customers to a WebSite if necessary.


    La vida loca



    Saturday, January 24, 2015 1:41 AM
  • I think if you can make some block diagrams that show how the user might interact with the program, and in turn how the program might interact with the services they specified, that should be good. I wouldn't worry about getting too extreme with explaining to them how it would work on the inside. I think they want to see that you know how to write it, and how to interact with the services they specify.

    Did they ask you to make a presentation for the interview? Do you know what you're doing, or are you winging it?


    “If you want something you've never had, you need to do something you've never done.”

    Don't forget to mark helpful posts and answers ! Answer an interesting question? Write a new article about it! My Articles
    *This post does not reflect the opinion of Microsoft, or its employees.

    Saturday, January 24, 2015 3:16 AM
    Moderator
  • If a professional programmer is told to go and build a "Pizza Delivery System", you can bet that the first words out of his or her mouth will be "what are the requirements". If the company giving you the interview can't or won't give you a proper description of what they want, then I think the best thing you can do is follow Mr. Monkeyboy's advice and look at what is provided by the websites of a selection of pizza shops.
    Saturday, January 24, 2015 3:29 AM
  • How would you go about doing it? Also, I assume OOP is important.

    You should try to find out why they would ask that question.   If they want to see how quickly you can turn out code, the design doesn't matter much - they probably won't be implementing it. If they want to get an understanding or your architecting skills, then design is critical, and the coding is only to show what that design looks like.    If they want to know whether you understand project management then you should refuse to do anything until they provide a proper specification.   If they want to see how keen you are for the job then take a complete, prepared solution.  

    Go back to the job ad and look carefully at the keywords it contains to find out exactly what they are looking for.   If the ad was written by a consultant you will need to contact someone in the organisation to find out what they really need.

    Saturday, January 24, 2015 4:37 AM
  • I don't know when your interview is or what the customers requirements may be. Perhaps they don't know enough to know what those should be.

    But maybe you should peruse the search results for the below google search. After looking at enough of them I suppose you could discern capabilities used and other information that may help in an interview.

    Plus UI's are usually simple since employee training for systems like those are not for computer literate people often enough. So of course images, prices, etc, are displayed on touch screens usually so an employee doesn't have to do much other than point and touch whatever a customer is asking for on the phone if in fact you would be writing something like that. And some typing I suppose for names, addresses, phnrs (unless caller ID gets the phnr), credit card info, and then providing delivery driver maybe a printout of appropriate info with a map from google maps or whoever provides maps maybe.

    Man this could get intensive depending on what the customer expects. You may even want to search for website hosting sites that could be used by the customer if they need a site hosted.

    Google search results for "Point of sale pizza systems"

    Oh yeah. Who knows what hardware the customer wants you to program for. So that will have impact on what can be done probably. And after reviewing results from the above link it seems there's many types of card readers, printers, screens, PC's and other interfaces like the cash drawer or even caller ID that could interface which you may need to program for. Unless the customer wants you to interface just "pizza delivery" with whatever they may already use which could be difficult on its own.


    La vida loca



    Saturday, January 24, 2015 4:50 AM
  • When my son was in 8th grade I just completed a Graduate Course in System Engineering.  His school had a Career Day and I spend the day talking about Engineering.  I ask the class to design a Computer Game System.  The kids new every option and specification for an X-Box but didn't know the following

    1) The size of the room

    2) The Television Set

    3) The electricity

    4) What to sit on

    5) The Lighting

    6) The floor covering

    7) The color of the room

    Right now you are thinking like an 8th grader, and not an engineer.  You can't write the entire software in 3 hours.  What you should do is to walk into the interview with a complete System Design on paper.  Create Block Diagrams and Use Cases with input and outputs.  These will be the input and outputs of each software module.  The interviewer will probably have you write the code for 1 or 2 software modules from your design.  Don't forget the following

    1) Payment System

    2) Tax Tables

    3) Map System (to locate where to deliver the pizza and what store in the chain will make the pizza)

    4) Advertisements

    5) Accountants


    jdweng

    Saturday, January 24, 2015 7:41 AM
  • Thanks all for the feedback. Some wrote that the company probably doesn't know what the customer wants. The company doing the interview I don't think they will build an app for a pizza company. They just want to see that I know how to code.

    They didn't tell me to prepare or come with a design to the interview. The hr department sent me an email stating that I will be asked to write code in vb.net for a pizza delivery system ( i know noticed it is written a screen).

    The job requirements : framework 3.5 , wcf/ webservices, sql server , winforms  (which i don't know).

    The job interview:build a screen for   pizza order that works with wcf/webservice and includes SQL (stored procedures). Since I don't know winforms and will be doing it in asp.net they want to see some jquery. The screen will be a simple ui with a calendar and a few tables.

    They wrote something about business logic (n-tier? )

     

    Saturday, January 24, 2015 9:31 AM
  • I think the best way of going is with a windows form.  Not hard to add simply controls to the form.  Adding a DataGridView to the form is very simply so you can easily add the results of the query like below.  It seems like they have stored SQL procedures that you will need to display in the form.

    Imports System.Data
    Imports System.Data.SqlClient
    Public Class Form1
        Sub New()
    
            ' This call is required by the designer.
            InitializeComponent()
    
            ' Add any initialization after the InitializeComponent() call.
            Dim connStr As String = "Enter Your connection string here"
            Dim conn As SqlConnection = New SqlConnection(connStr)
            Dim SQL As String = "Stored_Command_Name"
            Dim cmd As SqlCommand = New SqlCommand(SQL)
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.Add("@FirstName", SqlDbType.VarChar).Value = "John"
            cmd.Parameters.Add("@LastName", SqlDbType.VarChar).Value = "Smith"
    
            Dim adapter As SqlDataAdapter = New SqlDataAdapter(cmd)
    
            Dim table As New DataTable
            adapter.Fill(table)
    
            DataGridView1.DataSource = table
    
        End Sub
    
    
    End Class
    


    jdweng

    Saturday, January 24, 2015 12:48 PM
  • or they may want to see if I know how to write stored procedures and I will have to write them.

    The issue with winforms is that I have no experience with it. I have only used asp.net. They said that I can use asp.net since I don't know winforms.

    Someone told me that in an interview I must use what I know esp. since they told me I can use asp.net as I don't have experience with windows form.

    The time that I have till the interview - should I practice at home writing the system with windows form?

    What do they expect to see in a one screen site?

    Never had that kind of interview and I want to come prepared and practice at home.

    Saturday, January 24, 2015 1:06 PM
  • or they may want to see if I know how to write stored procedures and I will have to write them.

    The issue with winforms is that I have no experience with it. I have only used asp.net. They said that I can use asp.net since I don't know winforms.

    Someone told me that in an interview I must use what I know esp. since they told me I can use asp.net as I don't have experience with windows form.

    The time that I have till the interview - should I practice at home writing the system with windows form?

    What do they expect to see in a one screen site?

    Never had that kind of interview and I want to come prepared and practice at home.


    It depends on what the job is and what they advertised for. If they want someone to sweep the floor then your vb forms skills are not very important but your sweeping skills are.

    I think you should practice with asp.net since they said you can use it? You wont learn much good stuff about windows forms in an hour.

    Seems the main things you would do is set up a database with some menu items. Show the menu on the screen (form). Add the interface to click the menu and show the selections in another something, maybe a gridview or just a text box even. Click place order. Get a confirmation of somekind.

    One thing I would be interested in as the employer is does it look good? ie do you have any creative artistic skills?

    And finally what kind of security do you know? Can you make a secure ordering page to accept credit cards? Can you create something that interacts with the credit card processing software to accept payment for the order? However the credit card stuff may be well beyond anything they do themselves and not expected of you.

    Don't wear yourself out worrying about it. Most important is to be confident and gracious. Have lots of desire to do a good job and work hard. Listen and learn what you don't know. Be honest and believable. Admit what you don't know and when you made a mistake.

    Saturday, January 24, 2015 1:29 PM
  • I don't think ion an interview they will want you to be able to modify their database.  Only allow queries.  You said "Work with ... Stored Procedures".  How quickly can you take a query in asp and fill a control with the data.  Winforms it is one instruction. 

    jdweng

    Saturday, January 24, 2015 1:30 PM
  • Thanks all for the feedback. Some wrote that the company probably doesn't know what the customer wants. The company doing the interview I don't think they will build an app for a pizza company. They just want to see that I know how to code.

    They didn't tell me to prepare or come with a design to the interview. The hr department sent me an email stating that I will be asked to write code in vb.net for a pizza delivery system ( i know noticed it is written a screen).

    The job requirements : framework 3.5 , wcf/ webservices, sql server , winforms  (which i don't know).

    The job interview:build a screen for   pizza order that works with wcf/webservice and includes SQL (stored procedures). Since I don't know winforms and will be doing it in asp.net they want to see some jquery. The screen will be a simple ui with a calendar and a few tables.

    They wrote something about business logic (n-tier? )

     

    You don't mention how much time between now and the interview.

    Also try using the MSDN Library search engine to search for things you are unfamiliar with.

    N-Tier Data Applications Overview

    Walkthrough: Creating an N-Tier Data Application

    Also since you are going to an interview and the requirements for the job are knowing framework 3.5 , wcf/ webservices, sql server , winforms  all at the 3.5 level of which you don't know some or all then you need to let the prospective employer know what you do and don't know probably. Since most 3 hour interviews of writing a program will probably involve people knowledgeable in those areas and trying to make them believe you know something that you do not know will fail most likely. And if it doesn't then all the sudden they will task you and you will probably fail and be fired or let go.

    I don't know why anybody would be required to "know" a framework. That sounds rather strange. If you create an application only controls for the framework it is set to be compiled to will be available anyhow as will coding capabilities for that framework. You can always look up .Net 4 Framework to see what was added to it from .Net 3.5.


    La vida loca


    Saturday, January 24, 2015 10:10 PM
  • If they told you that you will have to use web service, ... then make sure that you can build something that is reliable and secure .. that is what they will be looking for. 

    They wont care about the UI or the database code ... 

    Sunday, January 25, 2015 1:58 AM
  • I wouldn't worry about Net 3.5, 4.0, 4.5.  HR at the company is using an old job description that was never updated.  The people who are hiring never bothered to give HR a new job description.

    jdweng

    Sunday, January 25, 2015 3:34 AM
  • Your questions are too detailed. Unless they've already handed you the specs, or they expect that you have created a pizza delivery system before, you can't really answer design questions.

    I would focus more on the technology aspects. If it's n-tier then it's scalable, which is an advantage when using a web or WCF service to handle any business logic or database access because it can run on multiple machines. Using web services would also enable access from multiple types of UIs, whether it be from an ASP.NET app, Windows Form app or even a mobile app. I would suspect that they may pick your brain to see what you know about this.


    Paul ~~~~ Microsoft MVP (Visual Basic)

    Monday, January 26, 2015 2:30 PM
  • Thanks all for the help.

    Currently , i am practicing at home. Building a pizza site for myself. I separated it into 3 layers - presentation : user searches for customer by phone number. He then selects the customer and selects the pizza and toppings the customer wants.

    BL layer

    DL layer: this will be my wcf project that will access the database.

    What you think?

    Again, I have no idea what they want but I need to practice at home as I haven't used .net for 2 years :(

    Saturday, January 31, 2015 10:08 AM
  • Good start.  Be prepared to answer the question about the interfaces.  What other systems do you need to connected to?  The interviewer will ask questions about the additional parts of the code that still need to be written.

    jdweng

    Saturday, January 31, 2015 11:43 AM
  • They use winforms but since I only know asp.net I can use webforms.

    I

    Winforms is pretty fast to learn. If that is what they expect, I suggest spending time learning it, instead of trying to persuade them to do it a different way in an interview. If you have already told them you don't know how, then showing them you are willing to learn something new to get the job done will say a lot.

    Microsoft Virtual Academy

    When is your interview?


    “If you want something you've never had, you need to do something you've never done.”

    Don't forget to mark helpful posts and answers ! Answer an interesting question? Write a new article about it! My Articles
    *This post does not reflect the opinion of Microsoft, or its employees.

    Saturday, January 31, 2015 3:13 PM
    Moderator
  • The interview is on Thursday. They told me that I can do the test in asp.net as I don't know winforms. They don't mind teaching.

    I thought also to try and learn winforms and do the interview test using winforms but I won't have time to learn. I am busy learning other things that I might need such as wcf which i have never used  before.

    Saturday, January 31, 2015 3:41 PM
  • The interview is on Thursday. They told me that I can do the test in asp.net as I don't know winforms. They don't mind teaching.

    I thought also to try and learn winforms and do the interview test using winforms but I won't have time to learn. I am busy learning other things that I might need such as wcf which i have never used  before.

    If you're a good and fast learner and already show abilities in areas they are looking for then that's a good thing.

    Also you say "They don't mind teaching". I've been hired at places that were happy that I didn't have much experience in what they did because the bosses that hired me said that is better than having to break somebody from bad practices that some other place taught them.

    However when I got a job like that I wouldn't just work at work then go home and do nothing. For whatever time period I thought it required after getting the job I would either stay at work (salaried employee) and continue learning about their systems on my own or go home and continue doing whatever was necessary until the time came that I was at least comfortable with whatever I had to know. Usually between a month and three months depending on what I was learning.

    Windows.Forms are fairly easy in my opinion. As I started programming about the time I began a Microsoft account which is about 2.5 years ago. Some of the techniques for advanced coding may be more difficult but you probably already understand advanced coding techniques for other things like GridView which I guess is Asp.Net. And tables of some type. DataGridView is available as a control in Windows Forms. So is a Month Calendar Control and a DateTime Picker control. And of course DataTables.

    In fact I'll upload a simple project using a DataTable, DataGridView and Month Calendar to my onedrive in a few hours and provide a new post in this thread with the link to my onedrive so you can download the project if you want. Or display the code here along with an image of the Form so you can see what the Form looks like.

    However I don't use classes or modules like some people know in and out that look much nicer for performing certain things so the code used to perform operations will just be an example of what works but not necessarily the best methods for doing so.

    Although what year of Visual Studio do you use? And I would doubt you use an express edition do you? Since now Visual Studio 2013 community edition is available and free. Although I wouldn't download and install it between now and your interview as if there were issues doing that between now and your interview that could stop you from being able to work on your system and who needs the frustration between now and then.


    La vida loca


    Saturday, January 31, 2015 5:29 PM
  • Thanks for the comment. I feel that I need to strengthen some knowledge that they do expect me to know. It will be great if you can upload your code.

    I am using VS 2010 - i think it's ultimate but definitely not express.

    Saturday, January 31, 2015 7:23 PM
  • I'll upload probably within 7 hours or so.

    Don't expect anything great! :)

    Update - Make that Sunday sometime.


    La vida loca


    Saturday, January 31, 2015 8:39 PM
  • I'm sorry for the delay and don't waste too much time on this.

    I uploaded the project in a zip file to my onedrive. It's called Collies Pizzeria. The link is down below.

    It contains embedded resources of images and a text file. The text file contains the name and price of each pizza item.

    It's possible that Visual Studio will not allow you to open the project which was created in Visual Studio 2012. If that happens I believe you can start a new Windows.Forms project in VS 2010.

    In the new project go to Project and at the the bottom select the projects properties. In the projects properties window go to Resources. Add item from file should be available. Browse to the Resources folder in the unzipped apps folder. Select all items and add them which will make them all embedded resources in your app.

    Then use Notepad to open the file Form1.Designer.VB in the Collies Pizzeria second folder . In Visual Studio use Solution Explorer to display All Files for your project. One of the files will be the Form1.Designer.VB file for your project. If you copy and paste all of the code from Notepad over all of the code in the Form1.Designer.VB file in Visual Studio I'm fairly certain your apps designer window will immediately change as your app resizes as well as places all the controls on it that are in the Collies Pizzeria app. It may not work. If not just delete the project by closing it and when you go to open it again then right click on it and delete it.

    If the designer code works then view your Forms code by right clicking on the Form and selecting View Code or double clicking on the Form which should display its code window. Use Notepad to open the Form1.VB file in the Collies Pizzeria second folder. Copy all that code and paste it over all the code in your Forms code window. Then the app should work. Build and run it.


    https://onedrive.live.com/redir?resid=B8AB225FA76F270D!185&authkey=!AB_T0h68OIp4pAI&ithint=file%2czip


    I didn't spend a lot of time with it so some things may error. It's really just to give you an idea of some capabilities available in Windows.Forms.

    As you can see in the images below there is a Month Calendar which is just for display but has events that could be used.

    An area to enter a credit card number and an area to enter cash amount that aren't used but could be.

    A button to simulate a phone call being received. If a number and name were received that are not already listed in the DataGridView it will automatically add a new row in the DataGridView with the name and phone number. That functionality is not complete since the user can not delete the row if necessary. Plus the user will need to complete the row items for various information which works.

    A button to reset the Gui back to normal (nothing selected, everything cleared, does not affect an new rows in the DGV).

    Selecting different Pizza Items causes a ComboBox to add those Items to it as well as altering the price of the Pizza as that occurs and paints the selected item with a partially transparent color so you can tell what items are selected. Only one Pizza size and type can be selected. If a different one is selected after one is selected then the new one is selected and the old one that was selected is deselected. Any number of toppings can be selected. At any point you can select the ComboBox dropdown arrow for reading back the current pizza info to a customer and the price is displayed.

    There's a good possibility errors will occur with the program as I didn't spend much time testing it also.


    La vida loca

    Tuesday, February 3, 2015 4:00 AM
  • Isn't your 3 hour hands on interview tomorrow?

    Do you feel pretty good now about going to it?


    La vida loca

    Wednesday, February 4, 2015 4:01 PM
  • I forgot to say a big thank you for the code you uploaded. Love the design.

    Thanks

    The interview thank goodness was postponed to Tuesday. I am working on the project every chance I get.

    I am not confident at all :(

    I am now trying to pass a generic list between the wcf and DAL layer and I get an error 

       Cannot implicitly convert type 'System.Collections.Generic.List<BL.CustomerBL>' to 'System.Collections.Generic.List<WcfService1.CustomerAPI>'    C:\Users\collie\documents\visual studio 2010\projects\WcfService1\WcfService1\Service1.svc.cs    32    42    WcfService1

    Driving me crazy!!!

    Wednesday, February 4, 2015 10:21 PM
  • I forgot to say a big thank you for the code you uploaded. Love the design.

    Thanks

    The interview thank goodness was postponed to Tuesday. I am working on the project every chance I get.

    I am not confident at all :(

    I am now trying to pass a generic list between the wcf and DAL layer and I get an error 

       Cannot implicitly convert type 'System.Collections.Generic.List<BL.CustomerBL>' to 'System.Collections.Generic.List<WcfService1.CustomerAPI>'    C:\Users\collie\documents\visual studio 2010\projects\WcfService1\WcfService1\Service1.svc.cs    32    42    WcfService1

    Driving me crazy!!!

    Thanks. But really it's a poor design in my opinion cause I don't develop apps for anybody or companies and therefore have not much experience in providing something that is user friendly. Especially where a POS (Point of Sale) app needs to take into account low pay employees with <= high school edu and maybe no computer experience.

    Plus expending more time would provide much cleaner programming for the code of which I am unfamiliar with DataGridView, DataTables and DataBases.

    I just provided it as a simple Windows Forms app you could look at and look at the code and some of the functionality to see how it works. There's also probably much better methods than provided in it for doing things it should do.

    I would be confident. Mostly because as I said before if you can program and are good at self learning and spend time learning even during off hours to learn what you need to know until you come up to speed it's likely a company would hire you knowing that. Especially if they want to hire an entry level employee for the job at hand as that way they can train you to do things the way they want you to do them and not have to retrain you out of doing things some way you've already been doing them.

    I suspect they must already have Windows.Forms knowledgable people working there. I don't know anything about WCF but I would imagine you would be up to speed on it within a couple of months after hiring. Or perhaps less.

    Maybe you could take a "portfolio" of applications with you that you have created or are working on which they could see also if they're interested in looking at them. Especially if they're already on your PC and then they can just see them as you run them or something.

    And I know nothing about WCF. Although this Forum .NET Framework > Windows Communication Foundation, Serialization, and Networking may be a place to post questions regarding the issue you are having. I didn't look through it and don't know what it provides assistance with regarding WCF though.


    La vida loca


    Thursday, February 5, 2015 5:15 AM