Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nutrixpos/pos
The point of sale api for nutrix
https://github.com/nutrixpos/pos
api go golang openapi point-of-sale pos restaurant restaurant-management
Last synced: 9 days ago
JSON representation
The point of sale api for nutrix
- Host: GitHub
- URL: https://github.com/nutrixpos/pos
- Owner: nutrixpos
- License: gpl-2.0
- Created: 2025-01-26T14:40:53.000Z (16 days ago)
- Default Branch: main
- Last Pushed: 2025-02-01T21:16:44.000Z (10 days ago)
- Last Synced: 2025-02-01T22:20:18.935Z (10 days ago)
- Topics: api, go, golang, openapi, point-of-sale, pos, restaurant, restaurant-management
- Language: Go
- Homepage:
- Size: 487 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Go Reference](https://pkg.go.dev/badge/github.com/elmawardy/nutrix.svg)](https://pkg.go.dev/github.com/elmawardy/nutrix)
Nutrix is a point of sale management system RESTful api. It allows you to manage inventory, sales and products for your restaurant or shop.
You need to integrate with a separage GUI service to provide an interface for end users, you can find suggested GUIs in the [GUI](#gui) section.
> Currently nutrix supports only restaurant style cycle, where the order is sent first to the kitchen awaiting to be started then begin processing the inventory.
**OpenAPI 3.x Docs :**
[`modules/core/specs.api.yaml`](modules/core/specs.api.yaml)You can use the openapi docs to run [`Swagger`](https://swagger.io/) docs and test the api and you can also use the docs with a mock server like [`Prism`](https://github.com/stoplightio/prism) to develop the frontend without the need of installing nutrix.
# Getting started
### Prerequisites
- #### Mongo
- Before running the web server or seeding, make sure to set the [MongoDB](https://www.mongodb.com/) credentials properly in **config.yaml**
- #### Zitadel
- Also make sure that a Zitadel instance is up and running, [Zitadel](https://zitadel.com/) is used for auth in the project.
- Make sure to create a Zitadel api app inside your project and download the zitadel-key.json to a safe location
- Make sure the domain, port and key path are set properly in **config.yaml**> **__Note__** that Zitadel needs to be reachable using the same domain from the backend and the frontend, docker produced notable connection issues regarding the hostname, which requires additional settings like adding a reverse proxy to be able to reach it using the same hostname as from the browser.
- #### google-chrome command (or equivalent on linux)
- test by running `google-chrome --version` (tested on linux)### Running the web server
- Run `go run .` in the backend root directory to run the server### DB Seeding
- Run `go run . seed` in the backend directory which will prompt for entities to seed.
> **Warning** quiting the prompt with `ctrl+q` or `esc` will run the seeding process, if you want to quit, just deselect all the entities### GUI
Since nutrix is an api based project, you will need a GUI to let end users interact with the api, you are free to create your own GUI and integrate it with the api. if you have an api you can open a discussion with a reference url.Following are suggested GUI(s) :
- [https://github.com/elmawardy/nutrix-frontend](https://github.com/elmawardy/nutrix-frontend)