FoxPos is a Rails Point of Sale application built on ViewComponent, Turbo and Stimulus.
There's definitely a need for better, robust and lean POS systems today in the opensource pool.
FoxPOS does exactly that. This was originally designed for an icecream shop so some features might not be dynamic yet.
This is business driven development, I build more modules as the current clients require.
It should also be easy to run on any OS, offline and on the web.
This has been tweaked to run locally on production mode.
- Add and manage categories
- Add and manage products
- Take orders, send to kitchen
- Serve orders, take payments
- Print receipts
Ensure you have Docker and Docker Compose installed.
- Clone the git repo
git clone git@github.com:Fh-Ndiritu/foxPOS.git - Navigate to the project folder
- Run the app in development mode
docker-compose up --build - Run the app in production mode locally
sudo docker-compose -f docker-compose.prod.yml --env-file .env up --build
To run the app as a native application, this relies on the start_foxpos.sh script and a desktop file to launch the PWA.
-
Copy the .desktop file to Applications Folder
cp FoxPos.desktop ~/.local/share/applications/ -
Make the .desktop File Executable
chmod +x ~/.local/share/applications/FoxPos.desktop -
Copy the .desktop File to the Desktop (Optional)
cp ~/.local/share/applications/FoxPos.desktop ~/Desktop/
chmod +x ~/Desktop/FoxPos.desktop
-
Ensure start_foxpos.sh is Executable
chmod +x start_foxpos.sh -
Trust & Run the Desktop Shortcut
gio set ~/.local/share/applications/FoxPos.desktop metadata::trusted true -
You can now launch the app by searching
FoxPosin your apps
Script coming soon
Script coming soon
On production solid queue might not be migrated correctly. This is handled by running rails db:prepare in docker-compose.prod.yml.
If that fails, run in rails console.
ActiveRecord::Base.establish_connection(:queue)
load 'db/queue_schema.rb'
ActiveRecord::Base.establish_connection(:cable)
load 'db/cable_schema.rb'
ActiveRecord::Base.establish_connection(:cache)
load 'db/cache_schema.rb'
- Perform a fresh Docker build
docker-compose -f docker-compose.prod.yml build --no-cache
The app designs are inspied by Abubakar Sherazi