Code Monkey home page Code Monkey logo

vaadin-showcase's People

Contributors

alabotski avatar alexoreshkevich avatar ashalak avatar kate-novik avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

askmi kate-novik

vaadin-showcase's Issues

Authentication

We need to add authentication feature to our application. Implementation should be based on Java EE 7 features (no Spring, Play or other frameworks).

From UI perspective, responsive Login UI form is needed:

  • choose login or signup (allow to create a user)
  • login through login/pass or Google or Facebook account (OAuth 2)

From backend perspective we would need JWT token and OAuth 2 support.

PostgreSQL should be used for storing users, system or roles and permissions should be developed as well.

Basic content for the showcase

Let's provide some basic app layout and content assuming that authentication and other production-like features would be developed under separate tasks.

Prerequisites:

  • Java 8
  • Vaadin 14.X
  • Gradle 5.X

Requirements:

  1. Multi-module gradle project layout.
  2. Application server independent (should not rely on particular server like Tomcat of Netty).
  3. Separation of concerns: client side should communicate with server-side using REST API (implemented via JAX-RS). Client and server code should be placed in separate gradle modules providing clean decoupling.
  4. Adopt JSR 330 (Dependency Injection) using for example guice.
  5. Adopt JPA-based solution for consuming data from some relational database.
  6. Provide clean example of testing approach using testcontainers for integration tests and some mocking library for functional one.
  7. Provide clean code style contribution guide and settings violation which should fail the build.

Gradle should be configured for local deployment and testing application in Vaadin production mode.

Demo content should be pretty simple like single page without any routing with Grid that consumes some paginated data from server, like list of employees or application users.

Configure functional testing

Revise and - if necessary - remove all current testing approaches from the project.

Add JUnit 5 testing platform and functional tests example using mockito or any other popular alternative.

Provide example of functional testing for client and server side code.

Setup Cloud Deployment

Currently Heroku is configured for application cloud deployments using Travis CI:

.travis.yml

deploy:
  provider: heroku
  api_key:
    secure: {VALUE}
  app: vaadin-showcase
  on:
    repo: rednavis/vaadin-showcase

The issue is that it's based on java-webapp-runner which provides Tomcat instance to run.

Our application uses rich Java EE features like CDI so trivial Tomcat is not enough, TomEE is needed at least (which is configured in pom.xml for local launches).

Please consider the following alternatives to enable proper cloud deployments for our application:

Any solution that would provide automatic free cloud deployment on Heroku would be accepted.

JMS

Follow JMS Tutorial on Java EE 7 track and provide a comprehensive example of message producer and message consumer, triggered by some action on UI side.

Sophisticated example could transform parallel thread of multiple file uploading into the sequence of events on server side.

Provide example of using advanced JMS features, like message acknowledgement, options for sending messages, specifying message persistence, expiration etc.

Improve Login Form design

We need to have responsible design for Login form that would have beautiful look on different devices including desktop and mobile phones, ie. would be responsible.

Use RWA feature of Vaadin 14 and Polymer 3 to make that happen.

Pick up one of the appropriate templates from the web and provide non-escapable dialog box that would appear each time user need to log in.

From functional requirements perspective we should have the following:

  • Login / Sign Up separate screens
  • username / password basic textboxes
  • OAuth sources login (Facebook, Google etc)
  • Remember me
  • Forgot password

Sign up should redirect on separate RegistrationView form.

Consider the following as a very good example:
image

General UI/UX requirements:

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.