Task ID
|
Development Areas |
Description
|
Assigned to |
Task's Role Type
|
Overall Status
|
Comments
|
| FS-1 |
Mobile Front-end Configuration |
Fix front-end to remove hardocoding of back-end URL and set as a
configuration/environment parameter. The hardcoded URL can be found at
persist.service.ts. It should be something similar to what is done
in the back-end where there is a config folder and those parameters
are handled depending on the environment (i.e., development, testing, production).
|
|
Developer |
Completed |
|
| FS-2 |
Mobile Front-end Usability |
Main ordering window must make it obvious that clicking on an item image
will get them to the item detail window. Propose first. Upon approval
you may start coding.
|
Not Assigned
|
Web Designer |
Pending |
|
| FS-3 |
Mobile Front-end Feature |
Start design of "checkout window" and transfer order submit button.
|
|
Web Designer |
Completed |
|
| FS-4 |
Mobile Front-end Usability |
Provide a Dashboard option to clear current order.
|
|
Developer |
Completed |
|
| FS-5 |
Mobile Front-end Feature |
Implement VISA Checkout Interface
|
|
System Analyst |
In Progress |
|
| FS-6 |
Mobile Front-end Feature |
Implement Google Pay Interface
|
|
System Analyst |
Postponed |
|
| FS-7 |
Mobile Front-end Feature |
Implement ATH Móvil Interface
|
|
System Analyst |
Completed |
|
| FS-8 |
Mobile Front-end Usability |
Include a small wait animation over the email notification envelope to be shown
when the envelope is clicked and disappearing when confirmation of the notification
action is completed.
|
|
Web Designer Developer |
Postponed |
|
| FS-9 |
Mobile Front-end Usability |
When the viewport screen refreshes, it should stay in the same page instead
of going to the last one.
|
|
Web Designer Developer |
Completed |
|
| FS-10 |
Mobile Front-end Usability |
Implement a "My Recent Orders" feature where customers can go back
and pick from around the last 6 orders mostly for viewing purposes
but even perform limited actions depending on the current status of
the order such as changing the notification email, pickup time or
update the customer note.
|
|
Web Designer Developer |
Completed |
This feature was completed and now it addresses the concerns that had been identified
for repeated orders:
-
There is no guarantee that all the items and/or options from a customer's past order are available at the time that
a repeated order is to be placed. Therefore, unavailable items must be removed from the repeated
order.
-
There is no guarantee that the prices on the saved order are the current prices for each item. The prices
on the repeated order must be updated.
The approach taken was as follows:
To build a repeated order it is best to start
from the current menu and use the saved order as an information source
to insert items and options in a new order with the current prices as per availability.
|
| FS-11 |
Mobile Front-end Usability |
When less than 6 orders are shown, the viewport window spots should be filled
starting from window #1 (left/top).
|
|
Web Designer Developer |
Completed |
|
| FS-12 |
Mobile Front-end Usability |
The Orders Viewport auto refresh time interval should be configurable at least globally.
|
|
Developer |
Completed |
The refresh rate was made configurable at the project level. |
| FS-13 |
Mobile Front-end Usability |
Incorporate receipt printing at the checkout view using the
industry standard paper sizes.
|
|
Web Designer Developer |
Completed |
|
| FM-1 |
Order Management Front-end
|
Overall design of a customer orders management module to be used mainly by
employees of the Fast Food restaurants to dispatch such orders must be started.
This module will read orders from the common back-end.
|
|
Web Designer |
Completed |
- Working on continuous order stream layout as of 2019-01-26.
- Automated order number sequence generation based on date/time tags
Completed on 2019-02-06.
- Time zone handling per restaurant location.
Completed
- Display of order number at the monitor.
Completed
- Implement application demo features and deploy to A2 hosting
(e.g., Maximum number of demo orders).
Pending:
- Order status and viewport control at the monitor.
- Error handling.
- Code cleanup.
|
| FM-6 |
Order Management Front-end Logic |
After a new user is registered, the form keeps the current user displayed while the [REGISTER]
button is active.
The form must be handled in such a way that while it lets the administrator keep
a view of the registered user, the immediate actions available thereafter do not include
[REGISTER] because that would imply a duplicate record.
The form layout as soon as a user is successfully registered may include actions such as
"Register another", "Clear form", "Edit existing user", etc.
Only if the administrator confirms the intention of registering another user should the
[REGISTER] button become active.
|
|
Web Designer
Developer
|
Completed |
|
| FM-7 |
Order Management Front-end Logic |
When the Order Viewport is loading the existing order pool, a "loading" animation
should be shown while the download is being completed.
|
|
Web Designer
Developer
|
Completed |
|
| FM-8 |
Order Management Front-end Logic |
When updating a user profile, there must be a checkbox to indicate that the password
will be updated. By default, the password should not be updated.
Also, users should be able to update their password from the "View Profile" UI.
Perhaps the window title should be updated to indicate that it can be used to change the password.
|
|
Web Designer
Developer
|
Completed |
|
| FM-9 |
Order Management Front-end |
Show pickup/delivery time.
|
|
Web Designer
Developer
|
Completed |
|
| FM-10 |
Order Management Front-end |
Orders for which delivery was set by the customer must show a special icon.
Upon clicking this action the application should allow sending a notification
to a "delivery boy".
|
|
Web Designer
Developer
|
Completed |
|
| FM-11 |
Order Management Front-end |
A set of filters and other features should be implemented in order to enable the following:
-
Make visible orders that have been made hidden via the close ☒ button. Orders that are
currently invisible can initially be made visible by using a filter. An order that becomes
temporarily visible using the filter could then be made permanently visible (restore original
visibility). A suggestion is to use a "restore" button in place of the normal close button
for these orders.
|
|
Web Designer
Developer
|
Completed |
|
| FM-12 |
Order Management Front-end |
Access to "request for delivery" information must be provided for each order that is visible
in the monitoring view. The presence of the delivery request must be indicated with a small icon
that will not interfere with the rest of the information from the order
(perhaps a delivery vehicle icon).
The icon should behave as a button that would trigger the following:
-
Open a window that shows a list of "delivery boys" or services. Each person
or entity in the list must be associated to an email address.
-
Upon clicking on any of the items, an email should be delivered to the
associated address containing:
- The three digit order number(sequence) and the Order ID.
- The physical address provided by the user.
-
The geographical coordinates as generated by the mobile application
when the customer indicates his/her delivery location within the map
configured by the restaurant.
|
|
Web Designer
Developer
|
Completed |
Around 90% complete.
The only thing pending is:
To include the customer's physical address in the message sent
to the delivery boy or service.
|
| FM-13 |
Order Management Front-end |
Failed login attempts should show a message.
Also, it has been observed that the name of the logged user sometimes does not
become appropriately updated at the page header. When this happens, it is uncertain whether
the user is logged or not.
|
|
Web Designer
Developer
|
Completed |
|
| BE-1 |
Back-end |
For the current product scope, propose hosting models and design replication strategy to handle fault
tolerance
where needed if needed (i.e., Internet Only, Wi-Fi Only, Both internet and Wi-Fi).
|
Not Assigned |
System Analyst
Data Architect
|
In Progress |
A draft of this document was started. |
| BE-2 |
Back-end |
Research on availability and requirements of credit card processing development sandboxes.
|
|
System Analyst |
Completed |
|
| BE-3 |
Back-end |
Start design of remote license control mechanism.
|
|
System Analyst
Developer
|
Completed |
The license control mechanism is completed.
Some improvement tasks are likely to be added.
|
| BE-4 |
Back-end |
Implement transaction event log
|
|
System Analyst
Data Architect
Developer
|
Completed |
One of the areas pending is the fact that when an authorization token fails,
the console reports an unhandled error. The following is an example:
node : UnauthorizedError: jwt malformed
At C:\Users\fgarc\Documents\Development
\SVN\ShellScripts\ffserver.ps1:2 char:1
|
| BE-5 |
Back-end |
Implement receipt item abbreviation
|
|
Data Architect
Developer
|
Completed |
|
| BE-6 |
Back-end |
The list of projects/databases along with their corresponding
subdomain names should be obtained from the global configuration. This
information should not be hardcoded as is currently the case in
the "getFqdnAndDbname" function at common.js.
|
|
Developer |
Completed |
|
| BE-7 |
Back-end |
The email notification of order completion must take into account that the
message will vary depending on whether the customer will pickup the order himself
or delivery was requested.
|
|
Developer |
Completed |
|
| FB-1 |
Front-end and Back-end |
Continue building the Data Model and how the application handles it.
|
|
Data Architect |
Pending |
|
| FB-2 |
Front-end and Back-end |
- Implement web token authentication client features
- Design/develop web token server-side authentication.
|
|
System Analyst |
Complete |
JSON Web Token authentication was implemented.
|
| FB-3 |
Front-end and Back-end |
Design/develop role-based access and privilege mechanism.
|
|
System Analyst |
Completed |
Around 70% complete. Pending an assessment of what is still missing.
Still pending control of access to process transactions at the backend and the
corresponding backend response handling at the client side.
Example:
An employee with the "Server" role is not allowed to set the status of an order
to "PAID".
For orders that will not be paid online using a credit card, a cashier
can set the status to "PAID" from the Orders Management Module.
Possible Scenarios are:
- The customer will pay with cash.
- A company is paying food to its employees.
|
| FB-4 |
Front-end and Back-end |
Implement adding a customer note to orders
|
|
Web Designer
Developer
|
Completed |
|
| FB-5 |
Front-end and Back-end |
Create storage for VISA API and encryption keys which are currently hardcoded.
|
|
Data Architect |
Not Started |
The VISA Checkout interface was cancelled.
|
| FB-6 |
Front-end and Back-end |
Implement order completion notifications (e.g., email message).
|
|
System Analyst
Developer
|
Completed |
|
| FB-7 |
Front-end and Back-end |
Implement mechanism to inactivate payment methods.
|
|
Developer
|
Completed |
|
| FB-8 |
Front-end and Back-end |
Make the Order Management Module obtain the privilege definitions
from the backend.
|
|
Developer
|
Completed |
|
| FB-9 |
Front-end and Back-end |
Implement order calorie count.
|
|
System Analyst
Developer
|
Completed |
This feature was implemented as an optional energy value
indicator (e.g., calories) that is shown by default on each menu item. If the
restaurant owner provides nutrition information beyond energy (also optional),
then the indicator still displays the energy value but becomes a button that shows
a complete nutrition information label upon clicking. The feature works for the
main menu item and each of its optional ingredients.
|
| FB-10 |
Front-end and Back-end |
Implement order pickup time.
|
|
System Analyst
Developer
|
Completed |
This feature is pending to be made to work in harmony with the "eat in/take out/for delivery"
ordering options (refer to FB-11).
|
| FB-11 |
Front-end and Back-end |
Implement "eat in/take out" ordering options.
|
|
System Analyst
Developer
|
Completed |
Pending minor layout control fine-tuning.
Also, this feature must be synced with the delivery option.
|
| FB-12 |
Front-end and Back-end |
Implement "for delivery" ordering option.
|
|
System Analyst
Developer
|
Completed |
Still pending:
- This feature must be synced with the "eat in/take out" ordering option.
An order for which delivery is requested is a type of "take out" order.
If a customer submits an "eat in" order and later successfully updates the order
to have it delivered before the order is served, then the backend must
record it as a "take out" order.
Conversely, if delivery option is removed, then
pickup by customer must be assumed. The customer will have the opportunity
of making that type of change only if the browser tab where the order originated
is not closed and it has not been served.
-
When the delivery option is cancelled and the order has already been processed,
a database update must be performed only if status permits.
-
Implementation of this feature was reopened for logic fine-tuning after the option to charge
the customer for delivery service was added.
What needs to be fine-tuned is that if the order
has been paid, then the customer cannot add delivery service.
|
| FB-13 |
Front-end and Back-end |
Remove hardcoding of tax rate and include it in project-level configuration.
|
|
Developer
|
Pending |
Since some jurisdictions apply more than one tax type to a single class of
item, the tax rates must be implemented as a collection of rates where each tax has
a corresponding abbreviated description.
For restaurants that provide delivery, it should also be considered that delivery
might be taxed:
- At the same rate that food is taxed.
- At special rate.
- Not taxed at all.
|
| FB-14 |
Front-end and Back-end |
Order modification features:
|
|
Developer
|
In Process |
As of this writing current design philosophy considers that there are order details
that should made available for modification by the customer even after the order has been submitted.
The action would be allowed if order processing has not reached a status that would make honoring
such a record modification impractical. The following is a list of these features along with their
current implementation status:
-
For restaurants that provide a delivery option, the customer may set the delivery address
before or after the order is submitted. For orders that have already been submitted,
the application will allow delivery address change if the order has not been "served". A refinement
may be considered in the future if the application adds an "out for delivery" status
which is currently not the case.
This feature is complete
except that the delivery option feature as a whole must be synced
with the "pickup time" and "eat-in/takeout" options.
-
A note can be added or modified in the order if it has not been served.
✓ This feature is complete.
-
An email can be provided by the customer to be used as a notification
mechanism when the order is completed. There is currently no need to allow the customer
to enter this email before the order is submitted because the current implementation
prompts the customer. The customer may close the window to opt out of the notification feature.
✓ This feature is complete.
-
The customer may set a pickup time for an order if the order has not been served.
✓ This feature is complete
except that still pending is to block the using from setting a time earlier than
the current time.
-
Eat-In/Takeout:
The customer is allowed to set the the order's eat-in/takeout options before the order
is submitted only.
|
| FB-15 |
Front-end and Back-end |
Explore the possibility of adding an alternative to project
segregation besides subdomain.
|
|
System Analyst
Developer
|
Completed |
This was given careful consideration but in the end it was cancelled
at least in the short term. At this point it is undesirable to experiment
with routing scheme alternatives that could impact horizontal
scalability.
This objective was finally achieved with major changes to the whole application
that now support project segregation at the URL path level. The project is
identified as the first segment of the URL path.
|
| FB-16 |
Front-end and Back-end |
Item prices should not be available from the unpaid (current) order that is persisted at sessionStorage.
Only menu selections should be persisted. Order totals must be calculated from item prices
that are loaded from the back-end at checkout time.
|
|
System Analyst
Developer
|
Completed |
|
| FB-17 |
Front-end and Back-end |
VISA Checkout Interface
-
Secure API key, encryption key and shared secret in the project's database.
-
Enable the mobile checkout process to complete order confirmation subject to
risk rules.
-
Allow an order management module to inspect and manage transaction data.
|
|
System Analyst
Developer
|
In Process |
This interface was cancelled.
|
| FB-18 |
Front-end and Back-end |
Create and implement a model for the protection of customer
Personally Identifiable Information (PII). The model must take into
consideration legal aspects as well as the the impact to the image of the application.
At this point the following PII elements have been identified:
- Name
- Email
- Physical Address
- Phone Number
Consider encrypting all personal information at the database level.
|
|
System Analyst Developer |
Completed |
|
| FB-19 |
Front-end and Back-end |
Perform a reassessment of what minimum customer information will be required
on every order regardless of whether or not delivery is requested. The results
must be aligned with the final policy on the management of Personally Identifiable
Information.
Once completed, proceed to implementation.
|
|
System Analyst Developer |
Completed |
|
| CC-1 |
Code Cleanup |
-
Backend: Remove "await" from functions calling "getConnection" which is a function exported
by common.js.
-
Backend: Provide consistency in naming the database connection variable from "sdbc" to "dbc".
-
Backend: Delegate obtaining all data models to the "getDataModel" function at common.js
Example:
var lib = require('../fflibrary/common.js');
.
.
.
let User = lib.getDataModel(req, 'User');
.
.
.
|
|
Developer
|
Completed |
|
| CC-2 |
Code Cleanup |
-
Backend: Remove user profile route by consolidating to more general route.
|
|
Developer
|
Cancelled
|
It was determined at this point that the /profile route segment should be left
as a route separate from the more general /register route.
|
| CC-3 |
Code Cleanup |
-
Front Ends: Complete TSLint fixes.
|
|
Developer
|
Completed
|
This project migrated to ESLint as a result of the deprecation of TSLint.
When migration completed, many linting issues disappeared. This task was regarded
as complete when major linting issues as reported by ESLint were resolved.
|
| PF-1 |
Performance |
There seems to be a small memory leak in the Order Management front-end.
|
|
Developer
|
Completed
|
Most of the source code that makes use of subscriptions to Observables was
enhanced to ensure that they get unsubscribed when the containing Angular
component is destroyed. At this point an actual memory leak cannot be observed.
A more detailed performance evaluation will likely be performed in the future.
|
| IB-1 |
Identified Bugs |
Ordering client
The customer sets the street delivery location geographically on the
delivery map and closes the Delivery Information window. Then if the window
is opened again, the push pin location indicator looks shifted away from the originally selected
location.
|
|
Developer
|
Completed
|
|