Reference no: EM132615923
IMAT5210 E-Commerce Software - De Montfort University
Restaurant Details Facility - n-tier web application
Learning outcome 1: Design, construct and evaluate an e-commerce application involving the interaction between a range of software components.
Restaurant Details Facility - n-tier web application
1.1. Assignment Overview
1.1.1. Outline and Objectives
The purpose of this assignment is to build a dynamic data-driven web application written in ASP.NET and C#using the techniques that you have learned so far throughout the module. The main focuses of the assignment are persistent state, access control, ADO.NET database operations, validation and AJAX. Another important requirement is that your web application has an underlying n-tier architecture, and utilises principles of abstraction, decomposition and modularisation, as has been taught during the module.
The web application that you will develop will form the foundations of a Restaurant Details Facility for chefs and waiters. Chefs are considered to have higher privileges within the system when compared with waiters. For the purpose of this assignment, you have been specified with the task of developing some initialbasic, butessential functionality for this web application, which may then be further developed as necessary.
You have been provided with a prebuilt SQL Server Database (see Section 1.2) that you must use as a means of data storage and retrieval. Most of the required functionalityhas been comprehensively documentedfor you as a requirements specification consisting of use cases, and user interface designs (see Section 2). You should strictly adhere to this documentation and use it as a basis for completing PART A of the assignment. PART B of the assignment provides you with more freedom to show creativity and innovation.
PART A
Core use cases
You have been provided with several well documented use cases (see Section 2), that inform you of the required functionality for the web application:-
(UC001) Login User
|
|
(UC006A) Load Chef Details
|
|
(UC002A) Load Available Restaurants
|
|
(UC006B) Remove Waiter
|
|
(UC002B) Register Waiter
|
|
(UC006C) Load Chef Cuisines
|
|
(UC003) Display User Account
|
|
(UC007A) Load ChefRestaurants
|
|
(UC004) Logout User
|
|
(UC007B) Update Chef Restaurant
|
|
(UC005) Update User Password
|
|
(UC008A) Load Waiter Details
|
|
|
|
(UC008B) Show Chef Email Address
|
|
You should attempt to develop all of these use cases. Should you do so, your mark will be based on their design, correctness, and fitness for purpose. Should you not be able to develop any use cases, then you will lose some marks for this area of PART A.
N-tier architecture design and comments

You should make use of component-based programming and logically separate different components into an underlying n-tier design as taught during this module.
A typical n-tier design with a dedicated data access channel
You will be assessed on your ability to correctly deploy this approach within your solution, and identify logical areas of abstraction, which will ultimately make your code less repetitive, more easily interchangeable, and simpler to maintain.
PART B
Note: Part B will require you to create and submit a Microsoft Word document (report.docx).
Applying AJAX
You should apply Asynchronous JavaScript and XML (AJAX) functionality in appropriate places within the Restaurant Details web application. The way you should go about this is purposely specified in less formal detail to give you a chance to show creativity and innovation.
Make use of the AJAX Extensions web server controls, in particular the UpdatePanel control and where appropriate the UpdateProgress control. Where you apply AJAX is entirely up to you. It should be an appropriate use of AJAX carried out in a correct way, e.g. ensuring an external trigger is associated with an UpdatePanel correctly. You should be careful to not introduce AJAX behaviour where it is inappropriate, and should aim as a minimum to have it applied in two locations within the application.
You should submit a brief overview of how and where (in your web application) you have applied AJAX as part of the report.docx attachment inside of your website directory. You may be asked questions about this during your viva.
Secure password storage
You can achieve further marks for integrating a means of secure password storage into the Restaurant Details web application. To do this you will need to update the database slightly, and apply password hashing and salting procedures appropriately. You will need to research into an appropriate means of achieving this within ASP.NET and C#, and you should reference any source code that you use from elsewhere. It is expected that you will (at the very least) adapt this source code to meet the specific requirements of your own application.
This additional functionality should be integrated into your existing n-tier design, and you should update the relevant use cases from this specification to include additional steps and/or extensions that account for these procedures being undertaken. You should submit these modified use cases as part of the report.docx attachment inside of your website directory. You may be asked questions about this during your viva.
Additional use cases
You can add up to THREE additional use cases to those which already exist. The precise behaviour which these use cases define is entirely down to you, however, they should logically have a purpose within the context of the existing Restaurant Details facility, should not repeat any existing features, and should ideally show further creativity and innovation. As an example, you could think about sorting, filtering and paging through data (e.g. the cuisines).
The additional functionality encapsulated by these use cases should be integrated into your existing n-tier design. You may add additional Web Forms, or integrate features sensibly into existing Web Forms. You may optionally wish to update the database design, however, if so, it should be done correctly such that all use cases are still designed, behave, and operate in the same way, and principles of normalisation still exist throughout the database design.
You should submit these new use cases (formally documented) with a parallel brief explanation, and any changes to the database, as part of the report.docx attachment inside of your website directory. You may be asked questions about this during your viva.
1.2. The SQL Server Database
The SQL Server database (restaurant_details.mdf) that will be used for the assignment has been created for you. All the required tables (and fields) for Part A have already been generated.Whilst developing the web application you will insert and delete records when testing required functionality.
1.2.1. The Entity Relationship Diagram (ERD)
This ERD allows you to see the tables, fields and relationships.
1.2.2. Table Relationships
An explanation of the tables and the relationships between them:-
• ARestaurant User has a User Role, which may either be Waiter or Chef.
• A Waiter works at one Restaurant and a Restaurant has many Waiters.
• A Chef works at one Restaurant and a Restaurant has many Chefs..
• A Restaurantoffers one or more Cuisines and a givenCuisinecan be offered by many Restaurants.
• This many-to-many relationship is broken down into the table RestaurantCuisine, which has a composite key.
It is worth noting that this database design is simplified compared to that used in practice for such a system. For example, a Chef or Waiter could work at multiple Restaurants. For the purpose of this assignment however you should develop the web application based on the database design that has been provided.
1.2.3. Field Data Types and Constraints
On most occasions the data types chosen for the fields should be fairly obvious, however, to look at this in more detail, you may use the Server Explorer within Visual Studio.
Attachment:- Restaurant Details Facility.rar