Some Fine Application (SFA) is an Open Source reference project that aims to provide a fully working single page web application, built with React, Spring Boot, Spring Security and MongoDB.
The project also shows how to use Docker and Docker compose to build and deploy "containerised" versions of the application and the database.
Single page web applications give the best User Experience - no full page refreshes when moving from one page to another, much reduced lag when navigating around the application, the benefits of SPA's are well known.
But SPA's have a lot of challenges - both client-side and server-side routing (e.g. bookmarked deeplinks or browser refreshes) must be implemented correctly. Modern authentication schemes require an implementation of JSON Web Tokens.
On the middle-tier, API's are often documented using Swagger, implemented using a micro-service architecture, and MongoDB is a very popular choice for document persistence.
Further, using Docker and Docker Compose is a really nice way to build and deploy applications.
It can be difficult to bring together all the parts necessary to assemble this with everthing fully working.
So this project is intended as a reference for all of the above.
The application itself comprises a REST API to micro-services implemented using Spring Boot.
Spring Security is used to protect access to the middle-tier services, and implements a JSON Web Token (JWT) security scheme, with protected routes in the front-end application.
MongoDB is used for persistence.
React is used, obviously(!), user interface components are built with MaterialUI for React.
Cypress is used to execute automated integration testing by controlling a web browser and simulating user actions. Cypress is just incredible.
Everything works properly!