A sample eForms application that can visualise an eForms notice

Overview

eForms Notice Viewer

Introduction

This is a sample command line application which demonstrates how you can use the eForms SDK in a metadata driven application that visualises eForms notices.

As input it takes a notice XML file, a language code, and optionally an EFX template.. The output is an HTML page showing the content of the notice, with labels in the desired language, values and so on.

The notice viewer is not a production ready application. It is intended to demonstrate the use of concepts and resources available in the eForms SDK. You can use it as an inspiration or a starting point for your own apps.

The documentation is available at: https://docs.ted.europa.eu/eforms/latest/notice-viewer

Building

Requirements:

  • Java 11 or higher
  • Maven 3.8, other versions probably also work

This project depends on both the eForms SDK and the EFX toolkit for Java, and uses their respective Maven packages.

Execute the following on the root folder of this project:

mvn clean install

For forcing update of snapshots:

mvn clean install -U

Usage

Requirements

  • Java 11 or higher

Command line

  1. Unzip the binary distribution (a .zip file), e.g. to /path/to/eforms-notice-viewer.

    The unpacked folder will contain the following:

    • A JAR file named eforms-notice-viewer-.jar
    • A eforms-sdk containing all of the supported eForms SDKs
  2. Go to /path/to/eforms-notice-viewer and execute the following:

    java -jar eforms-notice-viewer-.jar   [] []
    
    • : two letter code for the desired language of the output (en, fr, etc.)
    • : path to the XML notice to view
    • : identifier of the view template to use. If omitted, the default template for the notice subtype indicated in the XML notice is used.
    • : path to the folder containing the SDK resources, organized by version. If omitted, the folder eforms-sdk is used.

Example

To generate an HTML to view the file X02_registration.xml in en (English):

java -jar eforms-notice-viewer-.jar en eforms-sdk/0.6/examples/notices/X02_registration.xml

To generate an HTML for the summary view of the file cn_24_minimal.xml in en (English):

java -jar eforms-notice-viewer-.jar en eforms-sdk/0.6/examples/notices/cn_24_minimal.xml summary

While running, log output is generated in the console, giving information on the location of the generated XSL, HTML, and any problem encountered.

Comments
  • ParseCancellationException

    ParseCancellationException

    hello

    when i run

    mvn compile exec:java -Dexec.mainClass="eu.europa.ted.eforms.viewer.Application" -Dexec.args="en ./eforms-sdk/0.6/examples/notices/cn_24_open.xml"

    i get this errror:

    [INFO] Scanning for projects... [INFO] [INFO] -------------< eu.europa.ted.eforms:eforms-notice-viewer >-------------- [INFO] Building eForms Notice Viewer 0.1.0 [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-dependency-plugin:3.3.0:unpack (unpack-sdk) @ eforms-notice-viewer --- [INFO] Configured Artifact: eu.europa.ted.eforms:eforms-sdk:0.6.2:jar [INFO] eforms-sdk-0.6.2.jar already unpacked. [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ eforms-notice-viewer --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 2 resources [INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ eforms-notice-viewer --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- exec-maven-plugin:3.0.0:java (default-cli) @ eforms-notice-viewer --- 11:50:46,619 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml] 11:50:46,619 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/home/stock/eforms-notice-viewer/target/classes/logback.xml] 11:50:46,715 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Will scan for changes in [file:/home/stock/eforms-notice-viewer/target/classes/logback.xml] 11:50:46,715 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Setting ReconfigureOnChangeTask scanning period to 30 seconds 11:50:46,718 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender] 11:50:46,720 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT] 11:50:46,723 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property 11:50:46,740 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [net.sf.saxon.lib] to DEBUG 11:50:46,740 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO 11:50:46,740 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [STDOUT] to Logger[ROOT] 11:50:46,740 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration. 11:50:46,741 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@27860e7e - Registering current configuration as safe fallback point 11:50:46.742 [eu.europa.ted.eforms.viewer.Application.main()] INFO e.e.ted.eforms.viewer.Application - eForms Notice Viewer 11:50:46.743 [eu.europa.ted.eforms.viewer.Application.main()] INFO e.e.ted.eforms.viewer.Application - Usage: [] [SDK resources root folder] 11:50:46.743 [eu.europa.ted.eforms.viewer.Application.main()] INFO e.e.ted.eforms.viewer.Application - Example: en X02_registration.xml 11:50:46.743 [eu.europa.ted.eforms.viewer.Application.main()] INFO e.e.ted.eforms.viewer.Application - args=[en, ./eforms-sdk/0.6/examples/notices/cn_24_open.xml] 11:50:46.746 [eu.europa.ted.eforms.viewer.Application.main()] INFO e.e.ted.eforms.viewer.NoticeViewer - noticeXmlPath=./eforms-sdk/0.6/examples/notices/cn_24_open.xml 11:50:46.776 [eu.europa.ted.eforms.viewer.Application.main()] INFO e.e.ted.eforms.viewer.NoticeViewer - noticeSubType=16, viewId=16, eformsSdkVersion=eforms-sdk-0.6 11:50:46.842 [eu.europa.ted.eforms.viewer.Application.main()] INFO e.e.t.e.viewer.helpers.MapFromJson - Populating maps for context, sdkVersion=eforms-sdk-0.6, jsonPathname=/home/stock/eforms-notice-viewer/eforms-sdk/0.6/fields/fields.json 11:50:47.040 [eu.europa.ted.eforms.viewer.Application.main()] INFO e.e.t.e.viewer.helpers.MapFromJson - Populating maps for context, sdkVersion=eforms-sdk-0.6, jsonPathname=/home/stock/eforms-notice-viewer/eforms-sdk/0.6/fields/fields.json [WARNING] org.antlr.v4.runtime.misc.ParseCancellationException: line 24:27 mismatched input 'value' expecting {ShorthandContextFieldValueReference, StartExpression, CodelistAssetId, OtherAssetId, BtId, FieldId} at eu.europa.ted.efx.exceptions.ThrowingErrorListener.syntaxError (ThrowingErrorListener.java:17) at org.antlr.v4.runtime.ProxyErrorListener.syntaxError (ProxyErrorListener.java:41) at org.antlr.v4.runtime.Parser.notifyErrorListeners (Parser.java:544) at org.antlr.v4.runtime.DefaultErrorStrategy.reportInputMismatch (DefaultErrorStrategy.java:327) at org.antlr.v4.runtime.DefaultErrorStrategy.reportError (DefaultErrorStrategy.java:139) at eu.europa.ted.efx.sdk0.v6.EfxParser.assetId (EfxParser.java:1100) at eu.europa.ted.efx.sdk0.v6.EfxParser.labelBlock (EfxParser.java:835) at eu.europa.ted.efx.sdk0.v6.EfxParser.templateFragment (EfxParser.java:494) at eu.europa.ted.efx.sdk0.v6.EfxParser.template (EfxParser.java:384) at eu.europa.ted.efx.sdk0.v6.EfxParser.templateLine (EfxParser.java:343) at eu.europa.ted.efx.sdk0.v6.EfxParser.templateFile (EfxParser.java:267) at eu.europa.ted.efx.sdk0.v6.EfxTemplateTranslator.renderTemplate (EfxTemplateTranslator.java:144) at eu.europa.ted.efx.sdk0.v6.EfxTemplateTranslator.renderTemplate (EfxTemplateTranslator.java:111) at eu.europa.ted.efx.EfxTranslator.translateTemplate (EfxTranslator.java:33) at eu.europa.ted.eforms.viewer.NoticeViewer.buildXsl (NoticeViewer.java:172) at eu.europa.ted.eforms.viewer.NoticeViewer.generateHtml (NoticeViewer.java:91) at eu.europa.ted.eforms.viewer.Application.main (Application.java:58) at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:254) at java.lang.Thread.run (Thread.java:829)

    opened by dansto 6
  • why is it slow to generate xsl file ? -  can i bypass if it is already created

    why is it slow to generate xsl file ? - can i bypass if it is already created

    Hello,

    To generate xml to html, it's very long. about 1 min. I saw in log file that the creation of .xsl file take the most of the time.

    My question : How can i do to make it quicker ? If 1.xsl or 19.xsl or ...xsl is already created, can i use the old instead of creating another each time i want to view an xml in html ?

    Thank you for your answer,

    Didier

    opened by wanao-dc 3
  • Validation of SDK example notices fails with this notice viewer

    Validation of SDK example notices fails with this notice viewer

    Hi there,

    I understand that this is not supposed to be a production-ready application. Nevertheless I was hoping that I could use it purely for the validation of eForms documents that I want to put into or get out of an application that I am currently preparing to test. Unfortunately, even when trying the notice viewer with examples taken from the current 0.7.0 eForms SDK I get errors for most of the example eForms notices (the ones which are NOT marked as INVALID):

    09:01:59.562 [main] INFO e.e.ted.eforms.viewer.NoticeViewer - noticeXmlPath=examples\notices\cn_25.xml 09:01:59.572 [main] INFO e.e.ted.eforms.viewer.NoticeViewer - noticeSubType=17, viewId=17, eformsSdkVersion=0.7 09:01:59.806 [main] INFO e.e.t.eforms.sdk.helpers.MapFromJson - Populating maps for context, jsonPath=C:\working\eforms-notice-viewer\eforms-sdk\0.7\fields\fields.json 09:01:59.964 [main] INFO e.e.t.eforms.sdk.helpers.MapFromJson - Populating maps for context, jsonPath=C:\working\eforms-notice-viewer\eforms-sdk\0.7\fields\fields.json org.antlr.v4.runtime.misc.ParseCancellationException: line 151:32 mismatched input 'OR' expecting {'[', EndExpression} at eu.europa.ted.efx.exceptions.ThrowingErrorListener.syntaxError(ThrowingErrorListener.java:17) at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:41) at org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:544) at org.antlr.v4.runtime.DefaultErrorStrategy.reportInputMismatch(DefaultErrorStrategy.java:327) at org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:139) at eu.europa.ted.efx.sdk0.v7.EfxParser.contextDeclarationBlock(EfxParser.java:1311) at eu.europa.ted.efx.sdk0.v7.EfxParser.templateLine(EfxParser.java:361) at eu.europa.ted.efx.sdk0.v7.EfxParser.templateFile(EfxParser.java:287) at eu.europa.ted.efx.sdk0.v7.EfxTemplateTranslator07.renderTemplate(EfxTemplateTranslator07.java:152) at eu.europa.ted.efx.sdk0.v7.EfxTemplateTranslator07.renderTemplate(EfxTemplateTranslator07.java:136) at eu.europa.ted.efx.EfxTranslator.translateTemplate(EfxTranslator.java:50) at eu.europa.ted.eforms.viewer.NoticeViewer.buildXsl(NoticeViewer.java:253) at eu.europa.ted.eforms.viewer.NoticeViewer.generateHtml(NoticeViewer.java:88) at eu.europa.ted.eforms.viewer.CliCommand.call(CliCommand.java:63) at eu.europa.ted.eforms.viewer.CliCommand.call(CliCommand.java:1) at picocli.CommandLine.executeUserObject(CommandLine.java:1953) at picocli.CommandLine.access$1300(CommandLine.java:145) at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358) at picocli.CommandLine$RunLast.handle(CommandLine.java:2352) at picocli.CommandLine$RunLast.handle(CommandLine.java:2314) at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179) at picocli.CommandLine$RunLast.execute(CommandLine.java:2316) at picocli.CommandLine.execute(CommandLine.java:2078) at eu.europa.ted.eforms.viewer.Application.main(Application.java:10)

    Is this to be expected right now or am I totally missing the point of what this notice viewer should be able to do?

    opened by phgo 2
  • install error

    install error

    i have these jars ./.m2/repository/eu/europa/ted/eforms/eforms-sdk/0.6.0/eforms-sdk-0.6.0.jar ./.m2/repository/eu/europa/ted/eforms/efx-toolkit-java/0.1.0/efx-toolkit-java-0.1.0.jar

    and get this error when running mvn install clean

    [INFO] Scanning for projects... [INFO] [INFO] -------------< eu.europa.ted.eforms:eforms-notice-viewer >-------------- [INFO] Building eForms Notice Viewer 0.1.0-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [WARNING] The POM for eu.europa.ted.eforms:efx-toolkit-java:jar:0.1.0-SNAPSHOT is missing, no dependency information available [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 0.546 s [INFO] Finished at: 2022-05-18T11:57:10+02:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal on project eforms-notice-viewer: Could not resolve dependencies for project eu.europa.ted.eforms:eforms-notice-viewer:jar:0.1.0-SNAPSHOT: eu.europa.ted.eforms:efx-toolkit-java:jar:0.1.0-SNAPSHOT was not found in https://public:[email protected]/OP-TED/* during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of github-public has elapsed or updates are forced -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

    opened by dansto 2
  • TEDEFO-1539 adapting the SdkSymbolResolver to load the parentId from …

    TEDEFO-1539 adapting the SdkSymbolResolver to load the parentId from …

    …the genericode (gc). Fix in the loading of codelists in SdkCodelistRepository. This was tested using SdkSymbolResolverTest but I disabled the test after that as it downloads an SDK.

    opened by rouschr 1
  • Fixes and optimisations.

    Fixes and optimisations.

    • Replaced maven-assembly-plugin with maven-shade-plugin

    • Merge annotations files into one, to fix an issue where only one is loaded randomly.

    • Attach the full JAR with dependencies with classifier "app"

    • Renamed logger variables

    • Added a bit more logging to help with debugging

    • Added timing tracing for XSL transformations

    • Fixed contents of "app" JAR and cleaned up dependencies/plugins

    opened by meletev 0
Releases(0.6.0)
  • 0.6.0(Oct 31, 2022)

    Release Notes

    The eForms Notice Viewer is a sample command line application that demonstrates how you can use the eForms SDK in a metadata driven application that visualises eForms notices.


    In this release:

    • We moved some reusable classes from Notice Viewer to the EFX Toolkit and eForms Core libraries.

    Documentation for this sample application is available at: https://docs.ted.europa.eu/eforms/latest/notice-viewer

    This version depends on:

    Source code(tar.gz)
    Source code(zip)
  • 0.5.1(Oct 20, 2022)

    Release Notes

    The eForms Notice Viewer is a sample command line application that demonstrates how you can use the eForms SDK in a metadata driven application that visualises eForms notices.


    In this release:

    We updated the Notice Viewer to use the latest versions of the EFX Toolkit and eForms Core libraries.


    Documentation for this sample application is available at: https://docs.ted.europa.eu/eforms/latest/notice-viewer

    This version depends on:

    Source code(tar.gz)
    Source code(zip)
  • 0.5.0(Oct 12, 2022)

    Release Notes

    The eForms Notice Viewer is a sample command line application that demonstrates how you can use the eForms SDK in a metadata driven application that visualises eForms notices.


    In this release:

    In this release we moved some utility classes to a new java library: eforms-core-java. These utility classes allowed the automatic discovery and download of new versions of the eFroms SDK. We decided to extract this functionality to a new shared library so that it can also be used by other applications.


    Documentation for this sample application is available at: https://docs.ted.europa.eu/eforms/latest/notice-viewer

    This version depends on:

    Source code(tar.gz)
    Source code(zip)
  • 0.4.0(Oct 11, 2022)

    Release Notes

    The eForms Notice Viewer is a sample command line application that demonstrates how you can use the eForms SDK in a metadata driven application that visualises eForms notices.


    In this release:

    This release builds on the changes introduced with EFX Toolkit version 1.0.3, which allow the Notice Viewer to render a comma separated list of labels from a sequence of field values.


    Documentation for this sample application is available at: https://docs.ted.europa.eu/eforms/latest/notice-viewer

    This version depends on the EFX toolkit for Java version 1.0.3.

    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(Sep 20, 2022)

    Release Notes

    The eForms Notice Viewer is a sample command line application which demonstrates how you can use the eForms SDK in a metadata driven application that visualises eForms notices.


    In this release:

    In this release we optimised how the new versions of the SDK are automatically downloaded


    The documentation is available at: https://docs.ted.europa.eu/eforms/latest/notice-viewer

    This version depends on the EFX toolkit for Java version 0.2.0.

    Source code(tar.gz)
    Source code(zip)
  • 0.2.0(Jul 12, 2022)

    Release Notes

    The eForms Notice Viewer is a sample command line application which demonstrates how you can use the eForms SDK in a metadata driven application that visualises eForms notices.

    In this release we added the ability to visualise notices created with eForms SDK 0.7.x.

    We also added to the notice viewer the ability to automatically download and use new versions of the SDK as they become available. You can use our approach as an example on how to create an application that maintains and uses several versions of the eForms SDK.

    The documentation is available at: https://docs.ted.europa.eu/eforms/latest/notice-viewer

    This version depends on the EFX toolkit for Java version 0.2.0.

    Source code(tar.gz)
    Source code(zip)
  • 0.1.0(May 24, 2022)

    Release Notes

    The eForms Notice Viewer is a sample command line application which demonstrates how you can use the eForms SDK in a metadata driven application that visualises eForms notices.


    In this release:

    This is the first release of the eForms Notice Viewer application.


    The documentation is available at: https://docs.ted.europa.eu/eforms/latest/notice-viewer

    This version depends on the eForms SDK version 0.6.2, and the EFX toolkit for Java version 0.1.1.

    You can download a compiled version of the application in the file "eforms-notice-viewer-0.1.0.zip", available from the assets below.

    Source code(tar.gz)
    Source code(zip)
    eforms-notice-viewer-0.1.0.zip(22.28 MB)
Owner
TED & EU Public Procurement
TED & EU Public Procurement Unit - Publications Office of the EU
TED & EU Public Procurement
Sample serverless application written in Java compiled with GraalVM native-image

Serverless GraalVM Demo This is a simple serverless application built in Java and uses the GraalVM native-image tool. It consists of an Amazon API Gat

AWS Samples 143 Dec 22, 2022
Sample Spring Boot CLI application

sb-cli Sample Spring Boot CLI application. Shows how a Spring Boot application may be configured and packaged to create native executables with GraalV

Andres Almiray 28 Nov 2, 2022
Discourse-java is a platform where users can freely discuss on topics they want to, and like-minded people can join in and contribute

Discourse is the 100% open source discussion platform built for the next decade of the Internet. Use it as a: mailing list discussion forum long-form

Infosys Ltd 16 Oct 19, 2022
By this package we can get sim info, call logs and sms logs.Also we can find for specific sim info and call logs as well.

sim_sms_call_info A new flutter plugin project. Getting Started This project is a starting point for a Flutter plug-in package, a specialized package

 Hasib Akon 3 Sep 17, 2022
Bank Statement Analyzer Application that currently runs in terminal with the commands: javac Application.java java Application [file-name].csv GUI coming soon...

Bank Statement Analyzer Application that currently runs in terminal with the commands: javac Application.java java Application [file-name].csv GUI coming soon...

Hayden Hanson 0 May 21, 2022
A smart personal voice assistant powered by Alan AI. Enjoy hands free application that can manage daily tasks

Todogenix A smart personal voice assistant using Alan AI. Intro Todogenix is a personal assistant app powered by Alan AI that helps store and manage o

Venu Sai Madisetti 8 Mar 15, 2022
BlackBox is a virtual engine, it can clone and run virtual application on Android

BlackBox is a virtual engine, it can clone and run virtual application on Android, users don't have to install APK file to run the application on devices. BlackBox control all virtual applications, so you can do anything you want by using BlackBox.

null 1.6k Jan 3, 2023
Sample Spring-Cloud-Api-Gateway Project of Spring Boot

Sample-Spring-Cloud-Api-Gateway Sample Spring-Cloud-Api-Gateway Project of Spring Boot Proejct Stack Spring Webflux Spring Cloud Gateway Spring Data R

Seokhyun 2 Jan 17, 2022
DsMask - Scalable data masking sample code

This repository contains the sample code, which shows a way to implement complex policy-based data masking on IBM DataStage platform, using masking algorithms coming with IBM InfoSphere Optim.

International Business Machines 2 Feb 4, 2022
This sample shows how to implement two-way text chat over Bluetooth between two Android devices, using all the fundamental Bluetooth API capabilities.

Zenitsu-Bluetooth Chat Application This sample shows how to implement two-way text chat over Bluetooth between two Android devices, using all the fund

Gururaj Koni 1 Jan 16, 2022
Movie,actor & director RESTful API. Sample app with jpa, flyway and testcontainers

spring-restful-jpa-flyway Movie,actor & director RESTful API. Sample app with jpa, flyway and testcontainers.

null 16 Dec 10, 2022
The Spring Boot Sample App on K8S has been implemented using GKE K8S Cluster, Spring Boot, Maven, and Docker.

gke-springboot-sampleapp ?? The Spring Boot Sample App on K8S has been implemented using GKE K8S Cluster, Spring Boot, Maven, and Docker. Usage To be

KYEONGMIN CHO 1 Feb 1, 2022
A sample microservice built with Spring Boot and Gradle.

Project Overview A sample microservice built with Spring Boot and Gradle. There are APIs built using REST and the resource is bicycle. All CRUD operat

Gordon Mendonsa 1 Feb 2, 2022
An implementation of a sample E-Commerce app in k8s. This online retail marketplace app uses Spring Boot, React, and YugabyteDB.

An implementation of a sample E-Commerce app in k8s. This online retail marketplace app uses Spring Boot, React, and YugabyteDB.

yugabyte 1 Oct 27, 2022
The VAST ad sample code provided by HUAWEI Ads Kit describes how to display linear ads by integrating the HUAWEI VAST SDK into your app.

HMS Ads Demo for VAST English | 中文 Table of Contents Introduction Installation Configuration Supported Environments Sample Code Result License Introdu

HMS 11 Jul 16, 2022
EuphonyForever sample project

Looking-for-job This is a sample project made by euphonyforever using the euphony library. The purpose of this app is provide an easy way to send and

Euphony 3 Sep 7, 2021
This project contains many sample codes for demonstrating the usage of some common design patterns.

STUDY COMMON DESIGN PATTERNS 1. About this project This project contains many sample codes for demonstrating the usage of the following design pattern

Võ Trần Minh Quân 21 Jan 2, 2023
This repository is for Todo application. This contains the Backend part of the application.

Todo Application 개요(Abstract) 개인용 할일 목록 리스트 앱플리케이션 구축 (Personal Todo List Application) 목적 1. React.js기초, AWS서버 활용, 스프링 부트 공부 목적으로 프로젝트 시작했습니다.

Thom 3 Jan 8, 2022
Android application made during an introduction class to mobile application development.

Reflex Revolution Android application made during an introduction class to mobile application development. Contributors Hailey Savoie Carter Moore Fre

Frederic Verret 3 Aug 27, 2022