A modern, elegant Point of Sale system with inventory management capabilities built with FastAPI (Backend) and Nuxt 3 (Frontend). Designed with Apple-like UI aesthetics for an intuitive and seamless user experience.
- Intuitive UI/UX: Apple-inspired design system with clean interfaces
- Inventory Management: Track stock levels and product details
- Transaction History: Comprehensive sales history and reporting
- Real-time Updates: Live connection status and inventory updates
- Responsive Design: Works seamlessly on desktop and mobile devices
- Dark Mode Support: Supports both light and dark themes
-
Frontend:
- Nuxt 3 (Vue 3)
- Tailwind CSS
- Nuxt UI Components
- TypeScript
- Axios for API requests
-
Backend:
- FastAPI
- SQLModel
- SQLite Database
- Python 3.12+
- Docker and Docker Compose
- Node.js 18+ and npm/bun (for local development)
- Python 3.12+ (for local backend development)
The easiest way to run the complete system is using Docker Compose:
docker compose up -d --buildAfter the containers are running, access the application at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
-
Navigate to the backend directory:
cd POS_BACKEND -
Create a virtual environment and install dependencies:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txt
-
Run the backend server:
uvicorn main:app --reload
-
Navigate to the frontend directory:
cd POS_FRONTEND -
Install dependencies using bun:
bun install
-
Run the development server:
bun run dev
-
For production build:
bun run build bun run preview # To test the production build
POS_PROJECT/
├── POS_BACKEND/ # Backend application
│ ├── main.py # Entry point for FastAPI application
│ ├── database.py # Database models and connection
│ ├── requirements.txt # Python dependencies
│ └── routers/ # API endpoints
│ ├── items.py # Item management endpoints
│ └── transactions.py # Transaction endpoints
│
└── POS_FRONTEND/ # Frontend application
├── app/ # Nuxt application
│ ├── app.config.ts # UI configuration
│ ├── assets/ # Static assets and CSS
│ └── pages/ # Vue page components
├── components/ # Reusable Vue components
├── types/ # TypeScript type definitions
└── utils/ # API utility functions
- Add new items with details like name, price, quantity, and expiry date
- Edit existing items to update prices or stock levels
- View detailed information about each item
- Select items from the inventory grid
- Specify quantities for each item
- Complete the transaction to update inventory and record the sale
- View transaction history with detailed information
- Track sales performance by item
- Monitor inventory levels and value
To contribute to development:
- Clone the repository
- Set up the development environment as described in the installation section
- Make your changes
- Test thoroughly before submitting pull requests
Copyright © 2025 Parinya Abaoon
This software is proprietary and commercial. All rights reserved. No use or modification is permitted without explicit authorization.
For inquiries about this project, please contact:
- Developer: Parinya Aobaun
- LinkedIn : Parinya Aobaun