iMenu Presentation Update 3Dec07 - imenu-project - home

martencrushInternet και Εφαρμογές Web

8 Δεκ 2013 (πριν από 3 χρόνια και 11 μήνες)

86 εμφανίσεις


Background / Motivation / Vision

Overview / System Functionality

Use Case / Sequence / Class / Interface

Struts / Tapestry / Lenya

Project Management / Technology


Introduction


Requirement Analysis


System Design



Proposed Technology


Challenges & Sol




o
To make the ordering process fun and more
accurate/efficient

o
To provide customers with entertainment or
resources to utilize their wait time (for food,
for a bill, etc.)

o
How do you imagine the next generation of
dining?

o
A “digital” ordering menu that is very easy to
use, easy to maintain and can provide value
-
added service?




o
Streamline the ordering process in an interactive
system

o
Allow customers and staff to take part in using
this interactive system, which makes their lives
easier (and more fun)

o
Allow value
-
added services such as profiling and
data analysis from the perspective of the
Restaurant’s owners

o
Provides an overall more enjoyable dining
experience





o
Allow customer to browse and order food
efficiently

o
Allow customers to have personalized profiles &
managers to manage customer relations

o
Allow managers to customize/ update the menu

o
Provide customers with a medium of
entertainment while waiting (food, bill, etc.)

o
Allow the system to be scalable so additional
functionalities can be added





o
Customer

o
Browse through / filter menu

o
Order food / Update order

o
Create / Login to an iMenu profile

o
Sources of entertainment

o
Staff

o
Customize and update their products on the menu

o
Order food on behalf of the customer

o
Maintain a relationship with customers through
profiles (Order analysis, Newsletter, etc)





o
Many use cases among few actors

o
Use cases involve mostly pre/post dining experience

o
E.g. Browse Food, Order Food, View Bill



o
Most Critical are :

o
Browse Food (Customer)


primary feature of
iMenu

o
Submit Order (Customer)


primary need of
customer

o
Add Product (Staff)


iMenu is flexible from staff
perspective

o
Edit Product (Staff)


Allow real
-
time status of
product (e.g. inform customer of availability and
avoid disappointment)






Purpose

: Allows Customers to browse food using iMenu

Actor

: Customer and Staff

Preconditions

: None

Flow of events

:

1. Look at "Special of the day" on the default search result pane

2. Click on one of the product icons for the special of the day

3. Read the details to the specials, including price and ingredients

4. Click on the details pane again to go back to the main page

5. Click on the search / filter box

6. Click on a filter to add criteria to narrow the number of food displayed in result
pane

7. Click OK and the result is filtered

8. Drag the slide bar at bottom of search result pane from left to the right to browse
the food

9. Search the food he or she wants by name, by tapping on the search box on top
right hand corner

10. type the name of the food he or she wants to order

11. click on the search button to search by name and he or she finds the product in
the search result pane



Home Page
Loaded

Look at product
Detail

Apply Filter

Keyword Search




Purpose :
Allow Customers and Staff Members to submit order to kitchen

Actor :
Customer, Staff Members, Kitchen

Preconditions :
Customer has already found the food he or she wants to
order in the result pane

Flow of events :

1. Order a product by dragging the product icon in the search result pane to
the order pane

2. Drag the same product to the order pane again to place a second order,
product icon has a "2" to signify the number of orders

3. Click on "Order" button to submit the "order" to kitchen.

4. Once order has been processed, the “View Bill” option replaces the
"Order" options.




Purpose:

Allows Staff members to update products on the iMenu system

Actors:

Staff Members

Preconditions:

Access to the iMenu Admin Page / Staff username and
password

Flow of events:

Select the “Update Products” option from the iMenu's Admin Page

To modify existing products, select the “Edit Products” option

1.Edit the title the product ( less than 80 characters)

2.Edit the category of the product

3.Edit the description of the product ( less than 400 characters)

4.Edit the product ingredient’s tags

5.Update / change the product’s image

6.Edit the product’s price

7.Edit the product’s availability status(Available, No Available)

8.When all above steps have been completed, select the “Save” option

Confirm the modification of the product




Purpose:

Allows Staff members to add products on the iMenu system

Actors:

Staff Members

Preconditions:

Access to the iMenu Admin Page / Staff username and
password

Flow of events:

Select the “Update Products” option from the iMenu's Admin Page

To add new products, select the “Add Products” option

1.Provide a title for the new product (less than 80 characters)

2.Provide a category for the new product

3.Provide a description of the new product (less than 400 characters)

4.Tag the new product with ingredient(s)

5.Provide an image of the product

6.Set a price for the product

7.Supply the product availability (Available, No Available)

When all above steps have been completed, select the “Save” option

Confirm the addition of the new product



tommy123

************

hainan chicken

1

2

3



Apache
Struts
2.0.9

Tapestry
4.1.3

Apache
Lenya
1.2.5


o
Model
-
View
-
Controller pattern

o
Basic idea is to provide a framework for consistent
implementation / on
-
going maintenance of codes

Data access

Data persistence

Display output to user

Collect user input

Validate Input

Data Transformation

Flow Control







Advantage of Struts:

Our project need:

Web MVC implementation that facilitate
collaboration

We need to collaborate to build a web
app

Centralized configuration and properties
file

Be able to cope with continue evolving
requirements

Tag library, Large user
-
base, plenty of
online resources

Rapid development

Relatively mature and stabilized

Reliable and stable framework




Disadvantage of
Struts:

Potential Need:

Alternative Technology

A “web
-
only”
technology

To migrate application to
another platform/technology

Spring


framework that include
more than MVC and depend on Java

Webwork


less tied to web


Tight
-
coupling with
Struts classes

To migrate application to
another platform/technology

Spring, Webwork


only couples with
Interfaces

Spring
-

“pluggable” technologies

Tapestry


object
-
oriented approach

Testability

Need to use other technology
for Unit
-
testing (Junit)

Spring,Webwork


built
-
in testing
functionalities

Lack of UI
-
specific
feature

Apply seasonal themes to
iMenu

Webwork


similar to Struts but have
enhancement (e.g. UI themes)

Vs

Comments

For our project…

Spring is superior in flexibility
and development momentum

Struts can do the job although
without potential benefit

Webwork similar to struts but
less
-
tied to servlets/web
-
container and has additional
feature

Struts first, experiment with
similar technology later

Tapestry takes a totally different
approach than MVC

Use Tapestry in our project and
Struts as our Framework

o
Need to be added by XX




o
Need to be added by XX




Advantage

1.
How it presents your content for
editing

2.
Flexibility: stores all content as XML,
transforming it on the fly when
required by clients

3.
Tag library, Large user
-
base, plenty of
online resources

4.
The ability to apply Meta Data

Disadvantages

1.
Terminology takes a bit of getting used

2.
Be able to cope with continue
evolving requirements

3.
Requires some extra programming to
do tasks that should be done by
default

4.
Time required to learn Cocoon
(pipelines)




Vs

Comments

For our project…

OpenCMS is very similar to
Lenya, but the learning curve is
very steep and the ability to
customize the interface is quite
difficult

Lenya provides the needed
CMS supported for the
deployment of iMenu
compared to Open CMS, where
modules need to be supplied
to obtain added features

Alfresco is very verse CMS that
supports quick and easy installs,
and
delivers significant benefits
in the areas of time, cost,
quality, and compliance

Alfresco is still relatively new,
and there is not much
documentation on the
technology. Lenya on the other
hand is Apache Stable with a
large base of dedicated
developers

o
Java/XML open
-
source content management system based on the
Apache Cocoon content management framework

o
Stores all content as XML, transforming it on the fly when required
by clients

o
Platform: any Java server

o
The interface is very detailed, providing a lot of options for each
content element

o
Each content element has 8 tabs of configuration options,
including metadata, versioning and workflow information

o
Multi
-
server deployment

o
Lenya can be deployed across multiple servers, with each server
being assigned capabilities




o
Revision Control

o
Scheduling

o
Search Capabilities

o
Workflow support

o
Browser
-
based WYSIWYG editor

o
XML (Bitflux)

o
HTML (Kupu)

o
Validation Engines

o
Security / Access Control

o
Asset Management

o
Language Support

o
Uses of templates / Customization

o
Lenya API




Advantage

1.
How it presents your content for
editing

2.
Flexibility: stores all content as XML,
transforming it on the fly when
required by clients

3.
Tag library, Large user
-
base, plenty of
online resources

4.
The ability to apply Meta Data

Disadvantages

1.
Terminology takes a bit of getting used

2.
Be able to cope with continue
evolving requirements

3.
Requires some extra programming to
do tasks that should be done by
default

4.
Time required to learn Cocoon
(pipelines)




Vs

Comments

For our project…

OpenCMS is very similar to
Lenya, but the learning curve is
very steep and the ability to
customize the interface is quite
difficult

Lenya provides the needed
CMS supported for the
deployment of iMenu
compared to Open CMS, where
modules need to be supplied
to obtain added features

Alfresco is very verse CMS that
supports quick and easy installs,
and
delivers significant benefits
in the areas of time, cost,
quality, and compliance

Alfresco is still relatively new,
and there is not much
documentation on the
technology. Lenya on the other
hand is Apache Stable with a
large base of dedicated
developers




To
Satisfy all defined
requirements

Setting milestones to meet /
exceed

To d
eliver product on time

To utilizing
R
apid
A
pplication
D
evelopment

Document Collaboration


iMenu Wiki Space
Collaboration domain







Open source technologies are
not easily integrated

Establishing a baseline version
across all different technologies
used before design /
implementation


Code collaboration

Utilize the

software

to code collectively

Work division


Technology used

allowed for
separation of concern