An app to simplify the food ordering process in small and medium size companies
Software Requirement Specification
Food is an important and integral part of everyday life at any company. A lot of time and effort is spent when:
- employees decide on the restaurant
- make the order to the chosen restaurant
This application tries to alleviate these problems by offering employees a centralized repository of restaurants along with contact information and menus. Furthermore it allows employees to create group orders that can easily be relaid to restaurants. It does this by having two distinct parts:
1. Administration portal
Used for: adding restaurants, global configuration
2. Employee portal
Used for: viewing restaurant information, creating a group order, submitting individual orders to the group order
There is a total of 2 roles:
1. Administrator
Authenticated by an email and password. Only this role can access the administration portal.
2. Employee (anonymous)
This role does not have any authentication requirements. All unauthenticated requests are considered to belong to this role. This role can access the employee portal.
Administration portal
Following is a list of pages implemented as part of this module.
Page Name | Description |
---|---|
Log-in | Simple login form with email and password fields. |
Add restaurant | A form which allows administrators to add a new restaurant to the system. Input fields: restaurant name, address, phone number, menu URL, delivery information (delivery time, additional charges, etc.). |
View all restaurants | A table with all restaurants in the system. Following columns are present: restaurant name, restaurant short name (generated by replacing spaces with underscores), address, phone number, menu link. |
View restaurant details | Page which allows the administrator to view all restaurant details. This page has all fields associated with the restaurant. Furthermore it allows the administrator to delete and edit the restaurant. In case the delete action has been selected user is asked to confirm his choice through a confirmation dialog. |
Edit restaurant | A form which allows the administrator to edit restaurant information. Structure of the edit form is the same as in the Add restaurant page. |
Employee portal
Following is a list of pages implemented as part of this module.
Page Name | Description |
---|---|
View all restaurants | A table with all restaurants in the system. Following columns are present: restaurant name, restaurant short name (generated by replacing spaces with underscores), address, phone number, menu URL. Furthermore, the last column contains a link to the New group order page for this restaurant. |
View restaurant details | Page which allows the employee to view all restaurant details. This page has all fields associated with the restaurant. |
New group order | This page allows the employee to start a new group order. Employees must enter their name and the order timeout. Clicking the create button will create the order, and redirect to the Group order page. |
Group order | This page is displayed when a new group order has been created for a specific restaurant. It consists of three parts:
|
Following is a list of technologies used in project:
- Spring via Spring Boot
- MySQL as the RDMBS
- Flyway migrations
- Hibernate as an ORM
- Thymeleaf for server-side templating
- Twitter Bootstrap for the UI