This system is not recommended for full commercial use. Further customization and development are encouraged to enhance the overall user experience.
Svelte POS (vECO) is a modern, responsive Point of Sale solution built with Svelte, Tailwind CSS, and shadcn-svelte components. Designed for modern browsers, it is fully functional offline and can be installed as a Progressive Web App (PWA), final goal. The system utilizes IndexedDB and LocalStorage for local data management, without relying on external databases.
Explores real-world applications of SvelteKit, providing a flexible design framework that is easy to extend and adapt for additional development.
Unsupported browsers: Although most modern browsers support IndexedDB, older browsers (such as IE 10 and below) or certain mobile browsers may not support it.
Limited storage capacity: IndexedDB storage space is not unlimited and varies depending on the browser and device. Users might encounter issues where data cannot be written due to space limitations.
Automatic cache clearing: Browsers might automatically clear IndexedDB data if the storage reaches a certain size, especially if the data has not been used in a while, potentially causing data loss.
User clearing browser data: Users can manually clear their browser data or select "Clear Site Data," which would remove all IndexedDB data.
Performance degradation with large data sets: Query performance in IndexedDB may degrade when handling large amounts of data, especially if indexes are not properly designed.
Slower read/write operations: The asynchronous read/write operations of IndexedDB can be slower compared to in-memory operations. Frequent reads and writes of large data may negatively affect user experience.
Clone the repository:
git clone https://github.com/vampcheah/sveltekit-pos.git
cd svelte-pos
Install dependencies:
npm install
Start the development server:
npm run dev
Open browser and navigate to http://localhost:5173
Click on product items in the product grid to add them to the shopping cart. For weight-based products, a dialog will appear to input the weight.
Products can be added through the admin interface or by modifying the product data source.
The application uses Tailwind CSS for styling. Customize the look and feel by modifying the tailwind.config.js
file.
IndexedDB will be introduced for efficient local storage of data, enabling offline capabilities and improved performance for returning users.
Add support for cryptocurrency payments, giving users more flexibility by allowing them to make transactions using various digital currencies.
A simple yet functional user dashboard will be added, providing users with essential account management features, including order history, profile settings, and more.
This project is licensed under the MIT License - see the LICENSE file for details.