Skip to content

Latest commit

 

History

History
38 lines (23 loc) · 2.49 KB

README.md

File metadata and controls

38 lines (23 loc) · 2.49 KB

Spam Protection Team

This project is a response to the Full-Stack Challenge. The solution applies the RESTful architectural style. The back-end is written in Java and it relies on the JAX-RS API implemented by Eclipse Jersey. The front-end is written in JavaScript and offers two alternative versions:

The React-based variant offers a significantly better UX (as it eliminates the symptoms of page reloading whenever an update is needed) but it creates a problem of Cross-Origin Resource Sharing, as the React client needs to be hosted on its own NodeJS server. The CORS issue is solved on the back-end by utilizing a customized Container Response Filter.

Building from source

All dependencies are listed in the POM file.

Target server

The solution has been tested on Apache TomEE application server (the Plus edition). It's a good fit due to its built-in support for JAX-RS.

Deployment

The easiest option is deployment from the pre-compiled WAR binaries:

Running with the React client

First, make sure the TomEE server is running and the WAR file is successfully deployed (as described above). Then follow these steps:

  • git clone git@github.com:jakub-zarembinski/spam-protection-team.git
  • cd spam-protection-team/ReactClient
  • npm install
  • npm start
  • Navigate to http://localhost:3000/

Unit testing

A basic unit test for the back-end is available in the Tester.java file. This test assumes that another instance of the application is already deployed and running on the server.