Releases: RyanBaig/ICEPOS
v1.5
ICE POS
ICE POS (Point of Sale) is a Python application created for my father's business. It offers a user-friendly
interface for data submission, retrieval, and printing, along with a custom identifier key for shipment identification.
Disclaimer
- This code only works on Windows.
- It is designed to only work on a monitor with a specific Screen Resolution. Please remember to change it to your needs.
Installation Instructions
For Non-Production Use:
- Clone this repo using the following:
git clone https://github.com/RyanGamingYT/ICEPOS
- Navigate to the project directory using:
cd ICEPOS
- Type
run.bat
or./run.bat
if you use Windows Powershell. - It will automatically install all dependencies (if needed) for the app to work.
- If you want to use it frequently then create a shortcut (ICEPOS.ink) for the
run.bat
file.
For Production Use:
This Method doesnt't work now, as the software is unable to be converted into a distributable executable.
If you need to use this software, download the source code and first run:".venv/Scripts/activate"
(or.venv/Scripts/activate
on Command Prompt ) then runpython icepos.py
.
- Download the ZIP file of the software (ICEPOS.zip)
- Extract the files.
- Find the EXE file (icepos.exe)
- Run.
Features
- Data Submission (Submission Tab)
- Data Retrieval (Answers Tab)
- Printing of Data
- Custom Identifier Key (Consign Key)
- Tracking of Shipments
Modules Used
- Tkinter: Used for creating the graphical user interface, including filedialog.
- SQlite3: Used for working with the SQLite database.
- Pillow (PIL): Used for image creation, including Image, ImageDraw, and ImageFont.
- Pickle: Used for serializing and deserializing data, but in this application, it is used to store consignment keys.
- Math: used for Math-related operations including Pi values, Sin, and Con operations.
- Time: used to add delays.
- DateTime: used for retrieving date.
- Requests: used for checking for any updates for ICEPOS.
- Subprocess: used in the Updating process by cloning the repository using Git.
- Shutil: Used to delete pre-existing installations of ICEPOS to make room for the New Update.
- Stat: used for manipulating folder permissions.
- Screeninfo: Used for obtaining screen information.
- OS: Used for various operating system-related functionalities including printing.
- ttkbootstrap: Used for adding the DateEntry.
- CustomTkinter: Used for styling the application.
- CTkMessagebox: Extension Pack for custom Messageboxes for CustomTkinter.
Screenshots
Submission Tab (Sidebar Closed)
Submission Tab (Sidebar Open)
Answers Tab (No Answer Selected)
Answers Tab (Sample Answer Selected)
Tracking Tab (No Tracking Number Added)
Tracking Tab (Sample UPS Tracking Number Added)
Full Changelog: v1.4...v1.5
v1.4
ICE POS
ICE POS (Point of Sale) is a Python application created for my father's business. It offers a user-friendly
interface for data submission, retrieval, and printing, along with a custom identifier key for shipment identification.
Disclaimer
- This code only works on Windows.
- It is designed to only work on a monitor with a specific Screen Resolution. Please remember to change it to your needs.
Installation Instructions
For Non-Production Use:
- Clone this repo using the following:
git clone https://github.com/RyanGamingYT/ICEPOS
- Navigate to the project directory using:
cd ICEPOS
- Type
run.bat
or./run.bat
if you use Windows Powershell. - It will automatically install all dependencies (if needed) for the app to work.
- If you want to use it frequently then create a shortcut (ICEPOS.ink) for the
run.bat
file.
For Production Use:
- Download the ZIP file of the software (ICEPOS.zip)
- Extract the files.
- Find the EXE file (icepos.exe)
- Run.
Features
- Data Submission (Submission Tab)
- Data Retrieval (Answers Tab)
- Printing of Data
- Custom Identifier Key (Consign Key)
- Tracking of Shipments
Modules Used
- Tkinter: Used for creating the graphical user interface, including filedialog.
- SQlite3: Used for working with the SQLite database.
- Pillow (PIL): Used for image creation, including Image, ImageDraw, and ImageFont.
- Pickle: Used for serializing and deserializing data, but in this application, it is used to store consignment keys.
- Math: used for Math-related operations including Pi values, Sin, and Con operations.
- Time: used to add delays.
- DateTime: used for retrieving date.
- Requests: used for checking for any updates for ICEPOS.
- Subprocess: used in the Updating process by cloning the repository using Git.
- Shutil: Used to delete pre-existing installations of ICEPOS to make room for the New Update.
- Stat: used for manipulating folder permissions.
- Screeninfo: Used for obtaining screen information.
- OS: Used for various operating system-related functionalities including printing.
- ttkbootstrap: Used for adding the DateEntry.
- CustomTkinter: Used for styling the application.
- CTkMessagebox: Extension Pack for custom Messageboxes for CustomTkinter.
Screenshots
Submission Tab (Sidebar Closed)
Submission Tab (Sidebar Open)
Answers Tab (No Answer Selected)
Answers Tab (Sample Answer Selected)
Tracking Tab (No Tracking Number Added)
Tracking Tab (Sample UPS Tracking Number Added)
Full Changelog: v1.3...v1.4
v1.3
ICE POS
ICE POS (Point of Sale) is a Python application created by Me for my father's business. It offers a user-friendly
interface for data submission, retrieval, and printing, along with a custom identifier key for shipment identification.
Disclaimer
- This code only works on Windows.
- It is designed to only work on a monitor with specific Screen Resolution. Remember to modify it to your needs.
Installation Instructions
- Clone this repo using the following:
git clone https://github.com/RyanGamingYT/ICEPOS
- Navigate to the project directory using:
cd ICEPOS
- Type
run.bat
or./run.bat
if you are using Windows Powershell. - It will automatically install all dependencies (if needed) for the app to work.
- If you want to use it frequently then create a shortcut (ICEPOS.ink) for the
run.bat
file.
Features
- Data Submission (Submission Tab)
- Data Retrieval (Answers Tab)
- Printing of Data
- Custom Identifier Key (Consign Key)
Modules Used
- Tkinter: Used for creating the graphical user interface, including messagebox, ttk, and filedialog.
- Sqlite3: Used for working with the SQLite database.
- Pillow (PIL): Used for image creation, including Image, ImageDraw, and ImageFont.
- Pickle: Used for serializing and deserializing data, but in this application to store consignment keys.
- Math: used for Math-related operations including Pi values, Sin, Con operations.
- Time: used to add delays.
- Datetime: used for retreiving date.
- Requests: used for checking for any updates for ICEPOS.
- Subprocess: used in Updating process by cloning the repository using Git.
- Shutil: Used to delete pre-existing installations of ICEPOS to make room for the New Update.
- Stat: used for manipulating folder permissions.
- Screeninfo: Used for obtaining screen information.
- OS: Used for various operating system-related functionalities including printing, finding absolute path of files, etc.
- ttkbootstrap: Used for Styling the App and adding the DateEntry.
Screenshots
Submission Tab (Sidebar Closed)
Submission Tab (Sidebar Open)
Answers Tab (No Answer Selected)
Answers Tab (Sample Answer Selected)
Tracking Tab (No Tracking Number Added)
Tracking Tab (Sample UPS Tracking Number Added)
Full Changelog: v1.2...v1.3
V1.2
ICE POS
ICE POS (Point of Sale) is a Python application created by Me for my father's business. It offers a user-friendly
interface for data submission, retrieval, and printing, along with a custom identifier key for shipment identification.
Disclaimer:
- This code only works on Windows.
- It is designed to only work on a monitor with specific Screen Resolution. Remember to modify it to your needs.
Installation Instructions:
- Clone this repo using the following:
git clone https://github.com/RyanGamingYT/ICEPOS
- Navigate to the project directory using:
cd ICEPOS
- Type
run.bat
or./run.bat
if you are using Windows Powershell. - It will automatically install all dependencies (if needed) for the app to work.
- If you want to use it frequently then create a shortcut (ICEPOS.ink) for the
run.bat
file.
Features
- Data Submission (Submission Tab)
- Data Retrieval (Answers Tab)
- Printing of Data
- Custom Identifier Key (Consign Key)
Modules Used
- Tkinter: Used for creating the graphical user interface, including messagebox, ttk, and filedialog.
- Sqlite3: Used for working with the SQLite database.
- Pillow (PIL): Used for image creation, including Image, ImageDraw, and ImageFont.
- Pickle: Used for serializing and deserializing data, but in this application to store consignment keys.
- Math: used for Math-related operations including Pi values, Sin, Con operations.
- Time: used to add delays.
- Datetime: used for retreiving date.
- Requests: used for checking for any updates for ICEPOS.
- Subprocess: used in Updating process by cloning the repository using Git.
- Shutil: Used to delete pre-existing installations of ICEPOS to make room for the New Update.
- Stat: used for manipulating folder permissions.
- Screeninfo: Used for obtaining screen information.
- OS: Used for various operating system-related functionalities including printing, finding absolute path of files, etc.
Functions
icepos.py
create_formatted_image
: Creates a formatted image for printing receipts.display_selected_answer
: Displays selected answers in the Answers Tab.exit_win
: Allows the user to exit the program using the ESC key.print_formatted_image
: Generates and prints a formatted image of the receipt.print_image
: Prints a previously created image.refresh_dropdown
: Refreshes the dropdown in the Answers Tab to check for new submissions.refresh_dropdown_and_text
: Displays answers in the text widget in the Answers Tab.submit
: Submits answers to the database.toggle_fullscreen
: Toggles fullscreen mode using F11 key or the button in the top-right corner.update_dropdown_with_data
: Adds support for the dropdown being used more than once.close_menu
: Closes the sidebar/menu and works with toggle_menu.toggle_menu
: Toggles the sidebar/menu and uses close_menu.on_rm_error
: Used for manipulating .git folder's properties while updating._git_clone_with_progress
: Clones the repository for updating and shows live progress using messagebox. Useson_rm_error
function.check_update
: Checks if any updation is needed.execute_check_update
: Starts the updating process. Usesgit_clone_with_progress
function.
py_functions.py
reset
: Clears all submissions by deleting and creating a new SQLite database.save_last_consign_key
: Saves the consign key in keys.pkl.generate_consign_key
: Generates a special key for differentiating shipments.load_last_consign_key
: Loads the last-used consign key.display_consign_key
: Displays the last-used consign key using an information messagebox.close_connection
: Closes the database connection when the main window is closed.create_db
: Creates a new database for the reset function.db_To_dict
: Converts database submissions into a dictionary for easy display.delete_db
: Deletes the database for the reset function.
run.py
check_packages
: Checks if any packages need to be installed (from requirements.txt) when the
program is run. "
Screenshots
Submission Tab (Sidebar Closed)
Submission Tab (Sidebar Open)
Answers Tab (No Answer Selected)
Answers Tab (Sample Answer Selected)
Full Changelog: v1.1...v1.2
V1.1
ICE POS
ICE POS (Point of Sale) is a Python application created by Me for my father's business. It offers a user-friendly
interface for data submission, retrieval, and printing, along with a custom identifier key for shipment identification.
Installation Instructions:
- Clone this repo using the following:
git clone https://github.com/RyanGamingYT/ICEPOS
- Navigate to the project directory using:
cd ICEPOS
- Type
run.bat
or./run.bat
if you are using Windows Powershell. - It will automatically install all dependencies (if needed) for the app to work.
- If you want to use it frequently then create a shortcut for the
run.bat
file.
Features
- Data Submission (Submission Tab)
- Data Retrieval (Answers Tab)
- Printing of Data
- Custom Identifier Key (Consign Key)
Modules Used
- Tkinter: Used for creating the graphical user interface, including messagebox, ttk, and filedialog.
- Sqlite3: Used for working with the SQLite database.
- pywin32: Utilized for printing functionality using win32print and win32ui.
- Pillow (PIL): Used for image creation, including Image, ImageDraw, and ImageFont.
- Screeninfo: Used for obtaining screen information.
- OS: Used for various operating system-related functionalities.
Functions
icepos.py
close_connection
: Closes the database connection when the main window is closed.create_formatted_image
: Creates a formatted image for printing receipts.display_selected_answer
: Displays selected answers in the Answers Tab.exit_win
: Allows the user to exit the program using the ESC key.print_formatted_image
: Generates and prints a formatted image of the receipt.print_image
: Prints a previously created image.refresh_dropdown
: Refreshes the dropdown in the Answers Tab to check for new submissions.refresh_dropdown_and_text
: Displays answers in the text widget in the Answers Tab.reset
: Clears all submissions by deleting and creating a new SQLite database.submit
: Submits answers to the database.toggle_fullscreen
: Toggles fullscreen mode using F11 key or the button in the top-right corner.update_dropdown_with_data
: Adds support for the dropdown being used more than once.close_menu
: Closes the sidebar/menu and works with toggle_menu.generate_consign_key
: Generates a special key for differentiating shipments.load_last_consign_key
: Loads the last-used consign key.display_consign_key
: Displays the last-used consign key using an information messagebox.toggle_menu
: Toggles the sidebar/menu and uses close_menu.
database_functions.py
create_db
: Creates a new database for the reset function.db_To_dict
: Converts database submissions into a dictionary for easy display.delete_db
: Deletes the database for the reset function.
Screenshots
Submission Tab (Sidebar Closed)
Submission Tab (Sidebar Open)
Answers Tab (No Answer Selected)
Answers Tab (Sample Answer Selected)
License
- This Project is Licensed under the GPL-3.0 License
Full Changelog: v1.0...v1.1
V1.0
ICE POS V1.0
ICE POS (Point of Sale) Type thing I made for my Father's Business
Features:
- Submission for Data (Submission Tab)
- Retrieval of Data through another Tab in the Tkinter Window (Answers Tab)
- Printing of the Data
- Custom Identifier Key (Consign Key) for shipment identification
Modules Used:
- Tkinter (messagebox, ttk, filedialog, StringVar)
- Sqlite3
- pywin32 (win32print, win32ui)
- PIL aka Pillow (Image, ImageDraw, ImageFont)
- Screeninfo (couldn't find the documentation sorry)
- OS
Functions: (This will be a very long list)
icepos.py:
- close_connection (To close the connection for the database when the main window is closed Too.)
- create_formatted_image (To create the formatted image for printing.)
- display_selected_answer (To display the answers in the text widget in Answers Tab)
- exit_win (To exit the program using ESC key.)
- print_formatted_image (To create and print the formatted image using both the print_image and
create_formatted_image functions) - print_image (To print the previously create image)
- refresh_dropdown (To refresh the dropdown in Answers Tab To check for new submissions)
- refresh_dropdown_and_text (To display the answers in the text widget in Answers Tab)
- reset (To reset/clear all submissions by deleting and creating a new sqlite database)
- submit (To submit the answers)
- toggle_fullscreen (to Toggle fullscreen through keybind (F11) or the butTon in Top-right corner)
- update_dropdown_with_data (adds support for the dropdown being used more than once)
- close_menu (close the sidebar/menu and works with toggle_menu)
- generate_consign_key (to generate a special key to differentiate between different shipments)
- load_last_consign_key (self-explanatory and works with generate_consign_key)
- display_consign_key (displays the last-used consign key using the information messagebox. Made for the button in sidebar.)
- toggle_menu (to toggle the sidebar/menu and uses close_menu)
database_functions.py:
- create_db (To create the new database for the reset function)
- db_To_dict (converts the submissions stored in the database inTo a dictionary To easily display the information)
- delete_db (To delete the database for the reset function)
Screenshots:
Full Changelog: https://github.com/RyanGamingYT/ICEPOS/commits/v1.0