Office Issue Tracker is a backend service for reporting, tracking, and managing office-related issues. Users can also comment and vote on them to surface what matters most. It exposes a REST API and persists data in PostgreSQL and Cloudinary.
You can find the frontend for this project here: https://github.com/daniel-sosna/office-issue-tracker-fe
- Java 21
- Gradle wrapper (
./gradlew) - Docker & Docker Compose
- A Google OAuth client ID for authentication
- A Cloudinary account for media storage
To run the backend locally with mock data, follow these steps:
-
Prepare the environment:
- Clone the repository and navigate to the project root
- Copy
.env.exampleto.envand adjust any necessary environment variables - Ensure Docker is running on your machine
-
Start Postgres:
docker compose up -d
* To stop it:
docker compose down
-
Build & run
./gradlew bootRun
-
Use it:
- Access API docs at: http://localhost:8080/swagger-ui/index.html
- Set up the frontend and access the app
For details on local mock data setup, see mock-data-setup.md.
- Users are created on first login via Google OAuth; they start with the
USERrole. ADMINaccess is granted only via direct DB update.- Issues move through a simple lifecycle: create, update, change status, delete.
- The issue list supports filtering, sorting, and pagination.
- Attachments let you add media files to an issue.
- Profiles let users view and update their own details as needed.
- Offices group issues by location so teams can focus on their space.
- Comment on issues to discuss fixes and progress.
- Vote on issues to surface what matters most.
Built by the we-need-teamname team at Sourcery Academy (Vilnius, 2025)