8000 GitHub - ThoaiT/unicenta-pos: UnicentaPOS source code · GitHub
[go: up one dir, main page]

Skip to content

About

UnicentaPOS source code

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

krPOS - Kriol Point Of Sales

Build Status Code Coverage License: GPL v3 Crowdin/Translation Status

1. About

krPOS is Point Of Sales for "Kriol" Markert

ℹ️
WILL NOT follow future version of Unicenta oPOS

1.1. History of krPOS

  • krPOS is a fork of UnicentaOPOS 4.5 (2019-06-30)

  • UnicentaOPOS is a fork of OpenBravo POS

  • Openbravo has acquired Librepos (previously named Tina POS)

    • Adrian Romero was founder and main developer for Tina POS

  • License: GPL version 3

2. Project’s Vision

  • COMPAIBLE: Unicenta DB SCHEMA 4.5

  • Changes SHOULD be smoth as possible

  • FOCUS/PRIMAR: Point Of Sales (Small/Med Retail Business, On Shop,).

    • other SHOULD be provide as integration with ERP such as: Idempiere; Apache OFBiz,

2.1. UI & Business Logic

2.2. Context

AppContext

  • Provide info abou current App Instance: provide b underline infra: OSGI; Netbeans Platform

    • DI Container, etc…​

    • User (Provide info about authenticated User and permission’s

    • Host (Provide info about host running the POS)

2.3. Configuration

File (Encr Password, KeyStorage, )

  • Abstract Config Acess (SHOULD be based on MicroProfile Config SPEC)

  • Only database properties SHOULD be available on file (Properies File)

  • database.1.url, database.1.username, database.1.password

Contextual Config on Database (KVP)

  • AppConfig:

  • HosConfig:

2.4. Resource

APP Resource (Customization)

  • Should not be stored on database anymore, but provided on specific jar and available on classpath

    • on OSGI those resource can be easily updated as fragment of bundle kiolos-pos-resource

2.5. Database Access & Migration

Table 1. Database Access (On Evaluation/Experimental)
Name Evaluate? Reference

JPA (JQL/HQL)

-

JPA wih JPAStreamer:

-

https://github.com/speedment/speedment

Reladomo ORM

-

https://goldmansachs.github.io/reladomo/

Table 2. Migration tools/Libs
Name Evaluate? Reference

Liquidbase

X (CHOSED)

-

Obevo

-

https://github.com/goldmansachs/obevo

2.6. EventSystem & ScriptEngine

EventSystem Concepts: Event, EventPublisher, EventHandler

  • EventPublisher

  • EventHandler

    • EX: ScriptRunnerEventHandler

ScriptEngine

  • ScriptEngine:

    • Kotlin(kts)

    • groovy (but may not included, just for testing/evaluation)

2.7. Modularity

Frameworks

  • OSGI 7 (core, compendium, …​): NON-UI Componen/Modules

  • Netbeans Platform v12+(): UI Modules, Update, Distribuition

Modularity of code base: API, Reference Implementation(impl)

  • krospos-core-api

  • krospos-core-impl

  • krospos-gui-api

  • krospos-gui-core

  • krospos-data-api

  • krospos-data-impl

2.7.1. Service Provider Interface (SPI)

About Java SPI available since Java 1.5 (eg: Used in JDBC driver loading)

Table 3. Example of possible SPI

ResourceLoader, ResourceProvider resource:file:// resource:db:// resource:classpath://

PaymentGatewayProvider

2.7.2. OSGI

  • Fragment for static resource customization

  • capabilities and requirement

  • Declarative Service (Dependency Injection)

  • ConfigAdmin

  • Custom Annotation

  • Apache Karaf (Apache Felix)

  • TornadoFX (OSGI and JavaFX)

  • …​

3. Docker

Run MySQL database for Developer Env
docker run --name unicenta -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=unicenta -e MYSQL_USER=unicenta -e MYSQL_PASSWORD=unicenta mysql:5.6

4. GUI Libraries

Currently GUI is Swing based on Netbeans GUI Designer which use XML to create UI and generate Swing Java code.

GUI Framework/Toolkit

  • Java Swing (Migra

  • Jetbrains Compose for Desktop

  • Netbeans Platform

    • (Property Change Event and Listener)

    • Windows System API (Behaviors: Docking; floating, moving/positioning; Persist state between restart)

    • Node Explore View

    • JFXPanel (allow to use JavaFX content)

  • JavaFX (Web View,

  • TornadoFX (Build on top of JavaFX, But comple

  • Eclipse SWT

Swing Libraries

  • SwingX

  • …​ (TO BE REMOVED)

5. Tools for improvemen of Code Quali

GUI Test

  • FEST (Deprecate) use AssertJ (Swing Module)

Test Coverage with

  • JaCoCo coverage tool, used to measure how many lines of our code are tested.

  • OpenClover (code coverage tool for Java, Groovy and AspectJ)

Static Source Code Analysis with

  • PMD

  • SpotBugs (Alternative to FindBug) and Find Security Bugs

Project has strict code style guidelines with

  • Checkstyle maven-checkstyle-plugin

Scan your Dependencies for Vulnerabilities with

Performance and

  • SoapUI (API Testing Tooling)

  • Gatlin

  • JMeter

  • Locust (Python Based)

Example use dependecies check
mvn org.owasp:dependency-check-maven:check -Dformat=CSV
mvn org.owasp:dependency-check-maven:aggregate -Dformat=CSV
Example use JaCoCo
mvn clean install jacoco:prepare-agent jacoco:report
mvn clean jacoco:prepare-agent install jacoco:report

6. Developers Mention

  • @author Mikel Irurita

  • @author jaroslawwozniak

  • @author adrianromero (adrian)

  • @author JG uniCenta (jack gerrard, jack)

  • @author HS uniCenta

  • @author Ryan Airey

  • @author Ali Safdar and Aneeqa Baber

  • @author jaroslawwozniak

  • @author Luis Ig. Bacas Riveiro lbacas@opensistemas.com

  • @author Pablo J. Urbano Santos purbano@opensistemas.com

  • @author Xibergy Systems

  • @author JA

  • @author poolborges

  • @author Teodor Danciu (teodord@users.sourceforge.net)

7. Reference

8. Screenshots

krpos screenshot

About

UnicentaPOS source code

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

0