This project is a real life application built with Pippo framework. The goal of this project is to show how a real web application built with Pippo looks like.
Before studying this project please read about Pippo on www.pippo.ro and see the multiple Pippo-Demo projects (fine granularity) on https://github.com/pippo-java/pippo-demo.
This project is built using several libraries:
- Pippo, a micro Java web framework
- Dada, a tiny generic dao in Java used to access data stored in a H2 database
- Pebble, a Java templating engine
- Undertow, high performance non-blocking webserver
- Bootstrap
- Bootstrap FileInput
- Bootstrap Datepicker
- Bootstrap Validator
- Bootstrap3 Dialog
- IntercoolerJs
- ListJs
This application is a web accounting application where the customers upload invoices and the accountant processes these invoices and uploads the balance sheet. The customer has a company and he can not upload documents (PDF files) after day 20 of each month without the accept of the accountant. Also he can not upload documents in system if he forgot to pay the previous month.
The application comes with two sections: Customer and Admin (Accountant). Each section has a separate authentication mechanism. The authentication mechanism for Customer is reinforced with Google reCAPCTCHA
and the authentication mechanism for Admin is reinforced with an IP White List
.
The application comes with support for English
and Romanian
languages.
All the screenshots are available in the screenshots folder.
mvn package
mkdir dist
cd dist
unzip ../target/matilda-0.1.0-SNAPSHOT.zip
java -jar matilda-0.1.0-SNAPSHOT.jar
With the last command the server (Undertow) started on port 8338
so open your favorite browser and type http://localhost:8338
(email/password: [email protected]/1) or for admin section http://localhost:8338/admin
(username/password: test/1).
Requirements:
- Git
- JDK 8 (test with
java -version
) - Apache Maven 3 (test with
mvn -version
)
Steps:
- create a local clone of this repository (with
git clone https://github.com/pippo-java/matilda.git
) - go to project's folder (with
cd matilda
) - build the artifacts (with
mvn clean package
)
After above steps a folder matilda/target is created and all goodies are in that folder.
Matilda will be maintained under the Semantic Versioning guidelines as much as possible.
Releases will be numbered with the follow format:
<major>.<minor>.<patch>
And constructed with the following guidelines:
- Breaking backward compatibility bumps the major
- New additions without breaking backward compatibility bumps the minor
- Bug fixes and misc changes bump the patch
For more information on SemVer, please visit http://semver.org.