GithubHelp home page GithubHelp logo

romesh-jaya / mcarthurs-vue Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 1.0 4.48 MB

This application, written in Vue.js is meant to be used in a self-service kiosk at a fast food restaurant. Users can choose which items they like and submit to the kitchen for preperation. Requires a touch-capable device with minimum display resolution of 1024\*768 in lanscape orientation.

Home Page: https://mcarthurs-kiosk.web.app/

JavaScript 4.06% HTML 1.32% Vue 62.15% Shell 0.56% TypeScript 31.77% SCSS 0.15%
typescript vuex vite pwa lazy-loading composition-api vee-validate apollo-client graphql strapi

mcarthurs-vue's Introduction

McArthur's Self-service Kiosk App

This PWA application, written in Vue.js is meant to be used in a self-service kiosk at a fast food restaurant. Users can choose which items they like and submit to the kitchen for preperation. Requires a touch-capable device with minimum display resolution of 1024*768 in lanscape orientation. Keyboard is required for store clerk to login to the device (only at the start of the day maybe).

Site is hosted here: https://mcarthurs-kiosk.web.app/

Login credentials:

Screenshots

Home Page

Home page

Category Selection

Category Selection

Item Quantity Selection

Item Quantity Selection

Order Details

Order Details

Order Confirmation

Order Confirmation

Architecture

Tech stack used:

  • Vuex
  • Vite
  • PWA
  • Typescript
  • SCSS
  • Fontawesome icons
  • Lazy loading routes
  • Husky
  • Composition API
  • vee-validate for form validation
  • Authentication
  • Apollo client
  • Axios interceptors

Backend integration with:

  • STRAPI
  • SANITY
  • GRAPHCMS

The same dataset is present in all 3 backends. 3 different backends have been used for demo purposes only. The type of BE used can be changed via the env variable VITE_BE_SERVER.

The Sanity and GraphCMS servers are interfaced via a NodeJS middleware, which is used to hide the sensitive API keys for Sanity and GraphCMS.

Strapi and Sanity use axios while GraphCMS uses Apollo client to communicate with backend.

Here is the architectural overview:

Architecture

Notes

  1. Logout functionality hasn't been provided in the app, as we don't expect the Kiosk users to be able to logout by themselves. Instead, there is a 30 min timeout and store clerk can manually clear the browser cache if needed to logout.

  2. Strapi doesn't have refresh token functionality as of the date of writing the app. Also, it is hosted on Heroku free tier, which auto-cycles the dyno after 30 mins' non-usage. Therefore, 30min has been chosen as the JWT expiration window.

Project setup

npm install

Compiles and hot-reloads for development

npm run serve

Compiles and minifies for production

npm run build

Lints and fixes files

npm run lint

Customize configuration

See Configuration Reference.

mcarthurs-vue's People

Contributors

romesh-jaya avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

icaruschan

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.