The main purpose of the application is to manage income, expenses and savings. Demo
- Java 17, Spring Boot 2.6.2
- OAuth2 authentication with Google or VKontakte by JWT
- Application has made as a stateless RESTful API
- Built frontend is in jar resources, single html page will be opened by Spring MVC (spring-boot-starter-web)
- There are 2 mode:
- server app - deployable from GitHub application, user data stores in dedicated postgresql database
- desktop app - installable Windows application, user data stores in the H2 database that in the installed directory
- TypeScript, React 17.0.2, Material-UI 4.11.1, Redux
- No class components, only functional ones with React Hooks
- Using Material-UI components for styling
- Using Redux to store global state in memory and some custom UI configurations in local storage
- Change GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET in .env (or as environment variables) to actual
- For local build you need Java 16, Maven 3+. NodeJS v14.16.0 and NPM 6.14.11 are only needed for frontend developing
- Call
mvn clean install
at root of the project to build the application.-Drevision=1.0.0
can be added to change the version of the project - Built result (jar file) will be in 'target' directory at root of the project
- Call
java -Duser.timezone=UTC -jar money-manager-<version>.jar
to start the application - Optionally. It is possibly to build exe installer for Windows (desktop mode), just run pack_exe_installer.bat after maven build. Before generating the jar file, all required environment variables must be in the .env file
- Optionally. Call
npm start
at frontend directory to start frontend dev server