This is a simple application built using Electron and its electron-quick-start project.
It's an app of a POS (Point of Sale) of a Ski Resort. So it' intended to be used in a single machine (not a web application) and with a touch screen interface (no keyboard support).
The user can select add products into the cart, remove them, change the quantity and also pay.
The application needs these files:
package.json
- Points to the app's main file and lists its details and dependencies.main.js
- Starts the app and creates a browser window to render HTML. This is the app's main process.index.html
- A web page to render. This is the app's renderer process.data
- A folder containing csv files (categories.csv and products.csv)static
- A folder containing css and js filestests
- A folder containing unit tests
To clone and run this repository you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:
# Clone this repository
git clone https://github.com/franklinlindemberg/ski-resort-pos
# Go into the repository
cd ski-resort-pos
# Install dependencies
npm install
# Run the app
npm start
# Go into the repository
cd ski-resort-pos
# Install mocha
npm install mocha -g
# Install dependencies
npm install
# Run the tests
mocha tests --recursive --watch
The package will be generate in the root folder of the application
# Go into the repository
cd ski-resort-pos
# Install electron-packager
npm install electron-packager -g
# Install dependencies
npm install
# Run package generator
npm run package
##User Guide
The initial screen will show the available categories of products. When a category is clicked, the interface will update to show the entire category'S products.
Products are divided by categories.
When a product is clicked, it will be included into the invoice list with a default quantity of 1.
Removes a product from the invoice list. A product row must be selected in the invoice list before clicking the remove button (if not it will display an alert message)
The numbers are used to change the quantity of a product in the invoice list. Before using them, the user must select a product in the invoice list (if not it will display an alert message)
It is possible to select a new quantity greater then 9. For example, if the quantity wanted is 15, the user must press first the number 1 and then the number 5.
After each click in a number, the product quantity is immediately updated in the invoice list, but with a yellow color, which means it is temporary and not reflected in the subtotal yet.
To submit a change of a product quantity the user needs to click the Enter button.
The Enter button is used to submit a change in a product quantity of the invoice list. Before use it, the user must select a product in the invoice list and also select a new quantity pressing the numbers buttons (if not it will display an alert message)
The products in the invoice list can be clicked. It will be highlighted with a blue background.
Only a product can be selected at a time.
The New Invoice button will create a new invoice, allowing the user to receive another customer.
The Pay button changes the interface to the payment screen
The Cancel button changes the interface from the payment screen to the categories/products list screen
Radio buttons of available payment methods
The Finish button finishes the invoice and starts a new one
All other buttons are not implemented