GithubHelp home page GithubHelp logo

ivancolcan / unicenta-pos Goto Github PK

View Code? Open in Web Editor NEW

This project forked from poolborges/unicenta-pos

0.0 0.0 0.0 21.23 MB

UnicentaPOS source code

License: GNU General Public License v2.0

Batchfile 0.07% Shell 0.06% CSS 1.09% JavaScript 0.47% HTML 0.71% Java 96.78% Kotlin 0.08% SCSS 0.73%

unicenta-pos's Introduction

krPOS - Kriol Point Of Sales

Build Status Code Coverage License 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. Screenshots

krpos screenshot

3. Future of this project

3.1. Configuration

  • Only database properties will be available from file, other properties should be saved on database

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

3.2. Resource

  • 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

3.3. Database Migration

Migration tools

3.4. Service Provider Interface (SPI)

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

Table 1. Example of possible SPI

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

PaymentGatewayProvider

3.5. EventSystem & ScriptEngine

Separate event publisher, event handling and script execution to distint component

  • EventPublisher

  • EventHandler

  • ScriptRunnerEventHandler

  • AppContext

    • Has some Objects Generic/Global always available such: DeviceInfo (Where POS is running)

    • Has specific Context (

3.6. Modularity

  • Modularity

    • OSGI 7 (I have experience) core, compendium, …​

    • Netbeans Platform (I have No Experience, great UI component, but must be maven/gradle)

    • Eclipse Platform (I little experience, great UI component, but must be maven/gradle)

  • ScriptEngine:

    • Kotlin(kts)

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

Modularity of code base (impl should provide default implementation)

  • krospos-core-api

  • krospos-core-impl

  • krospos-gui-api

  • krospos-gui-core

  • krospos-data-api

  • krospos-data-impl

3.6.1. OSGI

  • Fragment for static resource customization

  • capabilities and requirement

  • Declarative Service (Dependency Injection)

  • ConfigAdmin

  • Custom Annotation

  • Apache Karaf (Apache Felix)

  • TornadoFX (OSGI and JavaFX)

  • …​

4. 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

5. GUI

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

GUI Framework

  • Swing

  • Eclipse SWT

  • JavaFX

  • TornadoFX - Build on top of JavaFX

  • Jetbrains Compose for Desktop

6. Tools

  • Do 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)

  • Do Static Source Code Analysis with

    • PMD

  • Do Bytecode Analysis with

    • SpotBugs (Alternative to FindBug) and Find Security Bugs

  • Do project has strict code style guidelines with

    • Checkstyle maven-checkstyle-plugin

  • Do Scan your Dependencies for Vulnerabilities with

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

7. GUI Test

  • FEST (Deprecate) use AssertJ (Swing Module)

8. Tooling

  • SoapUI (API Testing Tooling)

  • Gatlin

  • JMeter

  • Locust (Python Based)

unicenta-pos's People

Contributors

poolborges avatar snyk-bot avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.