Awesome
Web Accounting - Pippo Demo
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.
Libraries used
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
About business
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.
Screenshots
Upload Screen
Download Screen
Edit Screen
All the screenshots are available in the screenshots folder.
How to run
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: test@test.ro/1) or for admin section http://localhost:8338/admin
(username/password: test/1).
How to build
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.
Versioning
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.