JimdaksOs is a modern Point of Sale (POS) and inventory management system designed for efficiency and reliability. It features a unified product model for handling both physical inventory and services.
- Framework: SvelteKit
- Database: PostgreSQL
- ORM: Prisma (v7)
- Styling: Tailwind CSS + Shadcn-Svelte
- Language: TypeScript
- Unified Product Model: A single
Producttable handles both physical goods (e.g., "Coca Cola") and services (e.g., "Printing"). - Stock Logging: Every stock change is tracked in a
StockLogto ensure auditability of sales, restocks, and shrinkage. - Currency: Monetary values (
sellingPrice,costPrice) are stored asFloatfor simplicity and direct mathematical operations (e.g.,100.50). - Prisma Client: The Prisma client is generated into
src/lib/server/prismato ensure it is server-side only and easily globally accessible.
- Node.js (v20+ recommended)
- Docker & Docker Compose
-
Clone the repository:
git clone <repository-url> cd jimdaksos
-
Install dependencies:
npm install
-
Duplicate
.env.exampleto.env(create if missing) and set your database URL:DATABASE_URL="postgresql://user:password@localhost:5432/jimdaks_os?schema=public"
-
Start the database:
docker-compose up -d
-
Apply migrations:
npx prisma migrate dev
Note: This will also generate the Prisma Client.
-
Seed the database:
npx prisma db seed
Start the development server:
npm run devsrc/lib/server/generated/client: Location of the generated Prisma Client.src/lib/server/database.ts: Singleton instance of Prisma Client.prisma/schema.prisma: Database schema definition.