Offline-first activity tracker with an Android client and a Spring Boot backend. The client stores entries locally and reconciles them with the server through WorkManager, so the app stays usable without a network connection. Authentication runs through Keycloak. releases are built and signed by CI on tag.
Mirror of a university team project (6 people, one semester). The original repository is private. My work was on the offline sync between local and remote database, the statistics feature, and the release pipeline.
- Install docker and log in
- Copy
.env.examplefile and name it.env - Go to
.envand insert our data in the empty space - Install
EnvFilePlugIn (Power supply Icon) - Edit your Build configurations (3 dots on the upper right)
- Enable EnvFile and Substitute Environment Variables
- Click + and add our
.envfile which is in our backend directory - open docker-compose.yml and run it (first line on the left of services)
- Insert into your terminal: "docker-compose up -d"
- Run
BackendApplication.java - Press Database button on the right edge of IntelliJ
- Add new Database:
- Type in name in front of @localhost our database name
- Type in the
Databasefield our database name - Type in username and password and press apply
Now you should see our two tables if you open up the public folder.
If so everything worked properly!
- In Android Studio, click the three dots on the left sidebar
- You should find "Build Variants" with a hammer icon
- Under "Active Build Variant" switch between
localDebugandserverDebug - For local testing, make sure the backend is running locally