Coder Social home page Coder Social logo

veronezi / todo Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 836 KB

Samle project for JakartaEE, Microprofile, Docker, JWT, NodeJS, ReactJS etc

License: Apache License 2.0

Dockerfile 4.36% Shell 3.87% Java 47.85% Gherkin 4.64% JavaScript 37.53% HTML 1.75%
jakartaee javaee microprofile docker docker-compose docker-maven-plugin lombok jwt jwt-authentication nodejs

todo's Introduction

TODO

Build Status Codacy code quality

Try it now!

Click this button to try it live now. No installation required.

button

Whats in the box?

This project covers several different technologies used in the industry: docker, docker-compose, dockerize, travis, httpd, docker-maven-plugin, JWT, Java, Microprofile, Jakarta EE, testcontainers, cucumber, nodejs, ReactJS, JSS, Javascript etc. From backend to frontend; From test to production; If you understand all of it, you are a polyglot programmer.

/api and /api-docker

The /api submodule holds the restful application that contains all the business logic for this system. It’s a standard Jakarta EE application.

Here you will find examples of:

  • Microprofile login configuration with JWT via @LoginConfig;

  • Microprofile system configuration via @ConfigProperty;

  • Microprofile JWT usage via org.eclipse.microprofile.jwt.JsonWebToken;

  • javax.ws;

  • javax.persistence;

  • Lombok: @Data, @EqualsAndHashCode, @Slf4j etc;

  • Liquibase via CDI (http://www.liquibase.org/documentation/cdi.html);

  • Unit tests with PowerMockRunner.

The /api-docker submodule is used to build a docker image with Apache TomEE for Microprofile and the restful application created by /api.

Here you will see the first example of usage of the docker-maven-plugin from fabric8.

/thirdparty-docker

This submodule contains all the thirdparty docker images that are shareable across our submodules. It currently contains a custom docker image for dockerize (https://github.com/jwilder/dockerize - an amazing tool for running docker processes).

/ui and /ui-docker

/ui is the ReactJS application that builds the user interface. It’s wrapped inside a maven module but it can still be used as a plain nodejs application. See documentation bellow to see how this works.

/ui-docker is the module that builds the production-ready code out of the /ui source code and wraps it behind a simple httpd server.

/ft and /ft-docker

/ft holds the functional tests for both backend and frontend. It’s a selenium`cucumber`testcontainers testing framework packed in a jar file. The tests are triggered by maven, but we can also run them via the todo.ft.Main class.

Here you will find examples of cucumber, selenium and test containers.

/ft-docker packages the functional tests in a docker image so we can run the tests from inside a docker network (docker-compose or kubernetes, for example). You can see this working if you run docker-compose up from the root directory of this project.

/facade-docker

This module builds a docker image with a httpd server that works as proxy for /api-docker and /ui-docker.

Here you will find examples of httpd’s RewriteRule.

How to build it?

mvn clean install

How to develop the UI?

First start the dependencies with…​

docker-compose down
docker-compose up

The production application will be available at http://localhost

Now, from another terminal, start the react application (dev mode) with…​

cd ui/src/main/node
npm install
npm start

The command above will open your browser automatically on http://localhost:3000

From now on, every time you change the source code under ui/src/main/node/src, the page at http://localhost:3000 will be automatically updated.

In order to build the production code, run mvn clean install again.

todo's People

Stargazers

 avatar  avatar

Watchers

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