﻿miniPOS - Version 1.0.1

Installation Instructions and Manual 

			   
Gregory Wilson
gwilson.sq1@gmail.com
Copyright 2011


Contents

I. License
II. About miniPOS
III. Windows Installation
IV. Linux and OSx Installation
1. Linux - Running miniPOS from the command line
2. Linux - Installing miniPOS using setuptools
3. Linux – Installing miniPOS using Easy Install 
4. Linux (Ubuntu) – Creating a launcher for miniPOS
5. OSx – Running miniPOS from the command line
6. OSx – Installing miniPOS using setuptools
7. OSx – Installing miniPOS using Easy Install 
V. miniPOS Manual
1. Getting Set Up
2. Point of Sale 
3. Sales Records
4. Inventory
5. Program Settings
6. Language Settings
7. Resetting the Program's Database
VI. Questions and Suggestions
I. License

miniPOS is free software: you can redistribute it and/or modify it under 
the terms of the GNU General Public License as published by the Free 
Software Foundation, either version 3 of the License, or (at your option) 
any later version.

miniPOS is distributed in the hope that it will be useful, but WITHOUT ANY 
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more 
details.

You should have received a copy of the GNU General Public License along 
with miniPOS.  If not, see <http://www.gnu.org/licenses/>.


II. About miniPOS

miniPOS is a simple Point-Of-Sale (POS) program, used to record and manage 
sales data. It is useful for small to medium retail stores with a low to 
medium volume of sales. The program allows you to...

- quickly and easily tally up customer purchases and provide receipt 
    numbers
- edit receipts with the click of a button
- manage inventory information, such as identification number, name and 
    price
- see gross sales information for any period
- see sales info for any product for any period
- customize the language
- add additional languages, using any existing language as a starting 
    point for translation

The program is designed to give the user a very high degree of control 
while staying relatively simple. This means that anyone can make changes 
to prices and past receipts whenever they want. In some businesses, this 
increases the exposure for potential fraud. This program was designed for 
small, sole-proprietor owned businesses, where the owner or family members 
would be the only ones using the program. 


III. Windows Installation Instructions

For Windows, I highly recommend you use the miniPOS Setup.exe file. This is a 
standard installer that will guide you through the setup process. 

[WARNING!] - You will get an error if you install miniPOS in a directory where 
you do not have full read write privileges. You can either change the folder's 
permissions (WinXP, Win7), or reinstall in a different folder, such as 'My Documents'.


IV. Linux and OSx Installation Instructions

[WARNING!] - You will get a SQLite Operational error using miniPOS if you install 
the program in a directory where you do not have full privileges. To remedy this, 
you can install the program from a different location, or preface the command line 
argument with 'sudo' to run the program as the root user. 

Linux and OSx can run miniPOS directly from the source files or install 
using easy_install (from setuptools). Both options require that you have 
both Python 2.7.2 and wxPython2.8 (unicode) installed on your computer. 

For Python 2.7 go to 
    http://www.python.org/download/ 
and download the correct installation files for your operating system.

For wxPython2.8 (unicode) go to 
    http://www.wxpython.org/download.php#stable 
and download the correct installation files for your operating system.

If you're planning on installing the program from the source code, you 
will also need the setuptools module, which can be downloaded from:

http://pypi.python.org/pypi/setuptools#installation-instructions


Linux - 

IV.i - Linux: Running miniPOS from the command line -

1. Make sure you've installed Python 2.7 and wxPython2.8 (unicode).
2. Open up a terminal (Applications => Accessories => Terminal OR CTRL + ALT + T).
3. Use the 'cd' command to navigate to the 'source' folder.
4. Type:
		~/path/to/source/python mini_pos.py

As long as the 'source' directory is in a location with full read / write 
privileges, the program should work fine.


IV.ii - Linux: Installing miniPOS from the source code -

1. Make sure you've installed Python 2.7, wxPython2.8 (unicode) 
    and setuptools.
2. Open up a terminal (Applications => Accessories => Terminal OR CTRL + ALT + T).
3. Use the 'cd' command to navigate to the 'source' folder.
4. Type and enter:
		~/path/to/source/sudo python setup.py build
5. Type and enter:
		~/path/to/source/sudo python setup.py install 
6. If the program is installed successfully, you should be able to type 
    in mini_pos.py in the terminal (while in any directory) and miniPOS 
    will start.




IV.iii - Linux: Installing from an EGG file using easy_install -

1. Make sure you've installed Python 2.7, wxPython2.8 (unicode) and 
    setuptools.
2. Make sure you are connected to the internet.
3. Open up a terminal (Applications => Accessories => Terminal OR CTRL + ALT + T).
4. Type and enter:
		~/any/path/sudo easy_install miniPOS
5. If the download and installation are successful, you should be able 
    to type in mini_pos.py in the terminal (while in any directory) and 
    miniPOS will start.


IV.iv - Linux: Creating a Launcher (Ubuntu) -

If you chose to install the program, you can create a launcher that opens 
the program when you click on it. This method has been tested with 
Ubuntu 11.04.

1. Right click on the Desktop and select 'Create Launcher...'
2. Set 'Type' to 'Application'
3. Enter 'miniPOS' in the 'Name' field
4. Enter 'mini_pos.py' in the 'command' field
5. Click on the icon and select the miniPOS.svg file is located in 
    the ~/source/mpos/resources directory
6. Click OK

OSx -

[DISCLAIMER]: I don't have a lot of experience with OSx, but the code 
should run fine if you have all of the required software already installed. 
Please email me (gwilson.sq1@gmail.com) if this is not the case, or if there is 
a correction or clarification I can make. 


IV.v - OSx: Running miniPOS from the command line -

1. Make sure you've installed Python 2.7 and wxPython2.8 (unicode).
2. Open up a terminal (Applications => Utilities => Terminal).
3. Use the 'cd' command to navigate to the 'source' folder.
4. Type:
		~/path/to/source/python mini_pos.py

As long as the 'source' directory is in a location with full read / write 
privileges, the program should work fine.


IV.vi - OSx: Installing miniPOS from the source code -

1. Make sure you've installed Python 2.7, wxPython2.8 (unicode) and setuptools.
2. Open up a terminal (Applications => Utilities => Terminal).
3. Use the 'cd' command to navigate to the 'source' folder.
4. Type and enter:
		~/path/to/source/python setup.py build
5. Type and enter:
		~/path/to/source/python setup.py install 
6. If the program is installed successfully, you should be able to type 
    in mini_pos.py in the terminal (while in any directory) and miniPOS 
    will start.

If you get an error regarding write privileges, you may need to add a 
root password preface to the command. 


IV.vii - OSx: Installing from an EGG file using easy_install -

1. Make sure you've installed Python 2.7, wxPython2.8 (unicode) and setuptools.
2. Make sure you are connected to the internet.
3. Open up a terminal (Applications => Utilities => Terminal).
4. Type and enter:
		~/any/path/easy_install miniPOS
5. If the download and installation are successful, you should be able to 
    type in mini_pos.py in the terminal (while in any directory) and 
    miniPOS will start.

If you get an error regarding write privileges, you may need to add a root 
password preface to the command. 


V. Manual

V.i – Getting Set Up -

After you have successfully installed miniPOS, the first thing you should 
do is enter your inventory. It's good to have consistent, logical names 
that uniquely identify each product. Consider using the following product 
name format:

    Product Name, Manufacturer (unique trait) (Kg) [SKU]

Product Name examples:

    Yellow Corn, Green Hill's Farm (Kg) 
    14” Latitude D630 Laptop, Dell [1982773646]
    Chair, Lefty Bros' Furniture (Mahogany, Padding) [8376219992]

Having good names will help you find products easier with the search 
engine, and will ensure that you are recording your sale correctly. 
Remember: Garbage in, garbage out. 

If the product is sold in bulk, be sure to click the 'Bulk Item' box, 
and enter the per unit of measurement price for the product. 


V.ii – Point of Sale -

The Point of Sale panel is where you create receipts for customers. 
Use the search bar on the top-left side to quickly search for any product. 
When you find what you are looking for, single click on the item in the 
Products list. This will bring up an 'Add Item to Receipt' box, where you 
enter the quantity (in fractions, if the product is sold in bulk), and 
change the unit price if necessary. When you've entered a price and 
quantity, click 'OK', and the product is added to the receipt list. 

If you would like to edit an item already on the receipt list, just 
double-left-click on the item in the receipt list to bring up the 'Add 
Item to Receipt' box again. To remove a product from the receipt, just 
right-click on the item in the receipt list.

Once the receipt is finished, simply click the 'Complete Transaction' 
button to record the sale. To clear the receipt and nullify the sale at 
any time, click the 'Cancel' button. 

While miniPOS does not print receipts, it does provide receipt numbers 
on the upper-right corner of the panel. It is good practice to use a 
simple receipt printer to record the date, time and total amount, then 
write the receipt number on that paper receipt for the customer. This will 
help verify any future revisions of the sale. 


V.iii – Sale Records -

The Sale Records panel is where you look up information on past sales. 
You can filter sales by date, using the tools in the upper-right corner. 
Using the drop-down menu, you can choose to look at sales for the day, the 
past week, the past month, or the past year. If you want a more specific 
time period, you can click on the 'Start Date' or 'End Date' buttons. 

The 'Period Sales Records' list on the upper-left side of the panel will 
show all of the sales made between the start and end dates currently 
selected. Click on any sale-entry in the 'Period Sales Records' list to 
bring up the receipt, which is displayed directly below in the 
'Sale Record Receipt' list. If you wish to edit the receipt currently 
selected, click on the 'Edit Receipt' button, located on the very 
bottom-left of the panel. 

The sub-total, sales tax and total sales for the selected period are shown 
directly below the start and end date functions, in the 'Sales Summary' 
box. Below that, the unit sales and total sales for each product are shown 
for the selected period. Use the search bar to look up specific products. 



V.iv – Inventory -

The Inventory panel is a simple tool for browsing your inventory, adding 
products, and editing product information. Use the search bar to look up 
individual products in the Products list. Click on a product, and its 
information will be displayed on the upper-right corner of the panel. 

To add a product, simply click the 'Add Product' button and enter the 
price, quantity, and specify whether or not the item is sold in bulk, then 
click 'OK'. To edit a product's information, first select the product in 
the Products list, then click the 'Edit Product Information' button. 


V.v – Program Settings -

From the menu bar, click 'Edit' => 'Program Settings' to open up the 
Program Setting menu. Here you can select the language of the program, 
set the currency format, and set the sales tax rate, if any. 

Note: Changing the language will cause the program to restart.


V.vi – Language Settings -

miniPOS is designed to be especially flexible in regards to language. 
From the menu bar, click 'Edit' => 'Language Options' to open up the 
Language Options menu. Here you can add a new language, or edit an 
existing language. Since all the languages except for English were 
translated using Google Translate, the translations aren't great. If you 
successfully edit any of the language files, please email me the 
updated .csv file. 

To edit an existing language, select any language from the drop-down box 
and click 'Edit'. This will open up a new dialog with all the program's 
words and phrases listed individually on the left hand side. On the right 
hand side, you can enter anything you like. Click the 'Save' button at 
anytime to record your changes. Use the 'Next' and 'Previous' buttons at 
the top to navigate through all of the word and phrases for the program. 

To add a new language, enter the name of the new language and select 
a 'from' language, then click 'Add Language'. This will bring up the same 
dialog with the 'from' language on the left, and the new language's empty 
fields on the right. Write the translated words or phrases in the right 
hand fields. When you're finished, click save, and the new language file 
will be created. Those words or phrases which you cannot translate will 
default to their original 'from' languages. You can edit them at anytime 
using the 'Edit Language' feature. 


V.vii – Reseting the program's database -

miniPOS uses a SQLite database to record and manage product and sale 
information. This file (pos_data.db) is located in the 'resources' 
directory. If you would like to reset the database (delete all your 
product, sale, and receipt records), you can go to the menu bar and 
select 'File' => 'Reset Database'. I highly recommend you backup the 
data_pos.db file before resetting the database. Do not change the name of 
the .db file, as miniPOS will no longer recognize it. I recommend saving 
it in a clearly marked and dated directory. 


VI. Questions and Suggestions

miniPOS was written as a study program to develop a template for 
Python/wxPython based programs that could be easily distributed, 
especially on Windows computers. As such, it is limited in scope, 
and the coding is far from perfect. However, it has some potential as a 
useful tool, and I will consider any suggestions for improvement. 

If you have any further questions about the program, feel free to email me.

Thanks for using miniPOS!


	
		








