ADES CA2 Presentation
Group Members:
Titus, Hagen, Lincoln, Yee Chen, Bryan Yang
Table of Contents
01
02
03
Introduction
Objective
04
Method and execution
Demo
05
Analysis of result
Introduction
Come up with a POS system which not only having good user interface but also has the relevant functionalities to operate the whole system, bringing satisfaction for both customers and staffs.
Objective of Project
Database Design
Objective
Implemented Changes
Browsing Feature for POP System | Discount Feature for POS System |
Cart Feature for POP System | Redemption feature for Membership System |
Fuzzy Search Feature for POP System (FuseJS) | Advertisement Feature for Membership System |
Order List Feature for POS System | Profile Feature for Membership System |
QR Code Payment for POS System | Tiers Feature for Membership System |
Stripe Payment Method for POS System | Games Feature for POP System |
Choosing & Priority of features
Advanced Features
Stripe is one of the leading payment gateways, and it allows businesses and individuals to accept payment through the use of their robust APIs and tools.
What is Stripejs?
A . env file or dotenv file is a simple text configuration file for controlling your Applications environment constants.
This allows different users to use different Stripe accounts without changing the code.
Configuring Stripejs
Configuring Stripejs
API Keys
Configuring Stripejs
Integrating Stripejs
1. Import StripeCheckout package
2. Creating a function to interact with stripe API
3. Clear localstorage after response is received
Configuring Stripejs
Payment Flow
What is Fuse.JS
Implementing Fuse.JS
Implementing Fuse.JS
Implementing Fuse.JS
Jump Game
How User Navigate?
Code Structure
Allow user to click on the page
Code Structure
“Game Over” Position
Game Continues
Progress Bar
Validation
Refresh Token
Using in-memory to secure access token
httpOnly is set to true to secure refresh token
Advertisement Algorithm
Product_Order Table
Category Table
Retrieving quantity of products bought by the member based on Category
Retrieving the Category with the most products bought
Self-directed learning
Market Research
Strengths Orderlist Qr Code Ordering Table Management System Food Delivery Integration Reservation Customer Management Discount System Dashboard | Weaknesses The service is expensive as compared to other POS systems |
Opportunities Discount System | Threats High cost of the acquiring system may hurt potential sales |
Strengths Inventory Management Table Management System Food Delivery Integration Business Dashboard Various Payment Integration Loyalty System Ordering System Online Ordering System | Weaknesses Does not have a system to manage the employees |
Opportunities Ordering System Loyalty System Various Payment Integration | Threats Lose out to competitors that offer loyalty programmes that help with customer retention |
SweetAlert
npm install sweetalert 2 and set the relevant configurations
import Toast and call Toast.fire
Rendering props in React
Method & Execution
Integration of Code
Eslint
Ensure Code Quality
Ensure Correctness
Demo
Analysis of results
GitHub - Create multiple branches before merging after completion -> 1 branch for 1 feature
Improvement from CA1
Using SweetAlert message instead of just regular alert
POS ordering page displaying of items in rows of 4 instead of a single column
The main challenge I encountered during CA2 was that when writing functions in React and JavaScript I realized that they were not very reusable and efficient hence I had to keep rewriting code and it made my codebase very long and redundant in CA1, with the help of my teammates and some self-directed learning on YouTube I manage to make my code more reusable and efficient and discover the power of React in CA2, hence with that new knowledge I am able to apply this by passing data into child components and using that data to dynamically query the database through props. I also learnt different payment systems such as stripejs and how the web server interacts with the backend using stripe’s API.
Lessons learnt during CA2 (Individual)
Lessons learnt during CA2 (Team)
Things to do differently for FYP