Go to file
Robert Vokac 2a0e26e93d
Version of org.json was increased
2023-11-15 17:28:27 +01:00
docker NANOBOOT-1 : Import of files to Git 2022-12-22 16:25:51 +01:00
maven NANOBOOT-1 : Import of files to Git 2022-12-22 16:25:51 +01:00
oct.confpath.template Some dependencies were updated to a newer versions 2023-07-28 19:59:59 +02:00
octagon-backup Released for the first time 1.1.0-SNAPSHOT 2023-07-29 12:40:59 +02:00
octagon-batch Released for the first time 1.1.0-SNAPSHOT 2023-07-29 12:40:59 +02:00
octagon-clazz-loader Released 1.0.0 2023-07-29 12:35:28 +02:00
octagon-client Released for the first time 1.1.0-SNAPSHOT 2023-07-29 12:40:59 +02:00
octagon-conf NANOBOOT-1 : Import of files to Git 2022-12-22 16:25:51 +01:00
octagon-core Released for the first time 1.1.0-SNAPSHOT 2023-07-29 12:40:59 +02:00
octagon-entity Released for the first time 1.1.0-SNAPSHOT 2023-07-29 12:40:59 +02:00
octagon-html Released for the first time 1.1.0-SNAPSHOT 2023-07-29 12:40:59 +02:00
octagon-jsonlite Released for the first time 1.1.0-SNAPSHOT 2023-07-29 12:40:59 +02:00
octagon-mail-impl Released for the first time 1.1.0-SNAPSHOT 2023-07-29 12:40:59 +02:00
octagon-plugin-api Released for the first time 1.1.0-SNAPSHOT 2023-07-29 12:40:59 +02:00
octagon-plugin-main Released for the first time 1.1.0-SNAPSHOT 2023-07-29 12:40:59 +02:00
octagon-plugin-parent Released for the first time 1.1.0-SNAPSHOT 2023-07-29 12:40:59 +02:00
octagon-plugin-system Released for the first time 1.1.0-SNAPSHOT 2023-07-29 12:40:59 +02:00
octagon-reminder Released for the first time 1.1.0-SNAPSHOT 2023-07-29 12:40:59 +02:00
octagon-struts Released for the first time 1.1.0-SNAPSHOT 2023-07-29 12:40:59 +02:00
octagon-web Version of jackson libraries was increased 2023-09-14 18:50:54 +02:00
octagon-whining-impl Released for the first time 1.1.0-SNAPSHOT 2023-07-29 12:40:59 +02:00
octagonorig-web/src/main NANOBOOT-1 : Import of files to Git 2022-12-22 16:25:51 +01:00
tomcat NANOBOOT-1 : Small improvements 2023-02-25 13:47:17 +01:00
.dockerignore NANOBOOT-1 : Import of files to Git 2022-12-22 16:25:51 +01:00
.env.example NANOBOOT-1 : Import of files to Git 2022-12-22 16:25:51 +01:00
.gitignore NANOBOOT-1 : Small improvements 2023-02-25 13:47:17 +01:00
CREDITS NANOBOOT-1 : Import of files to Git 2022-12-22 16:25:51 +01:00
Dockerfile NANOBOOT-1 : Import of files to Git 2022-12-22 16:25:51 +01:00
LICENSE NANOBOOT-1 : Import of files to Git 2022-12-22 16:25:51 +01:00
README-triangle-orig.md NANOBOOT-1 : Import of files to Git 2022-12-22 16:25:51 +01:00
README.md NANOBOOT-1 : Import of files to Git 2022-12-22 16:25:51 +01:00
build-docker.sh NANOBOOT-1 : Import of files to Git 2022-12-22 16:25:51 +01:00
build.sh NANOBOOT-1 : Import of files to Git 2022-12-22 16:25:51 +01:00
changelog.md NANOBOOT-1 : Import of files to Git 2022-12-22 16:25:51 +01:00
docker-compose.yaml NANOBOOT-1 : Small improvements 2023-02-25 13:47:17 +01:00
entrypoint.sh NANOBOOT-1 : Import of files to Git 2022-12-22 16:25:51 +01:00
m2-cache-repository.zip.example NANOBOOT-1 : Import of files to Git 2022-12-22 16:25:51 +01:00
pom.xml Version of org.json was increased 2023-11-15 17:28:27 +01:00
sqlUpdatePartGenerator.fods NANOBOOT-1 : Import of files to Git 2022-12-22 16:25:51 +01:00
todo.fods NANOBOOT-1 : Import of files to Git 2022-12-22 16:25:51 +01:00

README.md

Octagon

Local setup

  1. Go to directory octagon-clazz-loader
  2. Execute mvn clean install
  3. Go to directory octagon-clazz-loader/target
  4. Copy file octagon-clazz-loader-*.jar to lib directory of Tomcat installation directory
  5. Copy directory oct.confpath.template to oct.confpath
  6. Copy file tomcat/setenv.sh to bin directory of Tomcat installation directory
  7. Update file setenv.sh in bin directory to match the correct path of new directory oct.confpath

Misc

todo - document confpath directory- create also a template

Octagon is a web application (final artifact is war- web archive).

Used tools, technologies and libraries are: Java 16, Maven, Git, Java module system, Tomcat, Docker, SQlite, Power Framework (mail, json, time, reflection, sql, web, xml), MyBatis, Spring, Struts 2.

Octagon is a smart frontend for database (here the database is SQLite, but there is possible to create implementation for other database types due the use of interfaces).

A custom plugin system is used. Octagon loads all the plugins at the start. Plugins are responsible for adding database tables, specifying the restriction on using them, adding apps (in Octagon terminology), batches and services to be run on Octagon and adding some modification to the web frontend.

For example, there are some Octagon plugins, which periodically run and execute some reminders based on the current data and send it a mail message report or notification to mail box.

Octagon is still under heavy weekend development. Future features are authentication, authorization, rest interface multiuser system and others.

Octagon uses Power Framework web module, which generates dynamically html code in Java using the current Java entity class representing the table schema and others.

There are some type of pages used to list, create, update, delete, or view an entity.

I know, that generating frontend html code in Java may not be very efficient and if used by thousands of users, it could be not good, but I needed to try to use Power Framework web module.

Spring factories are used to create some Spring beans dynamically based on the current list of loaded plugins.

There is possible to create new Octagon plugins like the ones intended to add new entity types (for example: student, class, subject, teacher, exam) or new batch periodically checking the database content, making some database updates and sending mail reports.

Octagon also partially implements filtering of the list of an entity and saving this filter for later use.