You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
IssueFlow is a backend service designed to handle a lightweight project and issue tracking platform.
The system manages users, projects, tickets (issues), comments on tickets, audit logs, ticket dependencies, attachments, and bulk ticket import/export.
Functionality
The system provides the following APIs:
Users API: Manages user identities behind ticket assignments and comments.
Projects API: Manages top-level containers that group related tickets.
Tickets API: Manages the core work items (issues) tracked in the system.
Comments API: Manages user comments on tickets.
Audit Log API: Read-only log of all state-changing actions in the system.
Attachments API: Manages file attachments on tickets.
Export/Import API: Supports bulk ticket export and import via CSV.
Soft Delete API: Tickets and projects are soft-deleted and can be restored by ADMIN users.
Mentions API: @username mentions in comments are validated, persisted, and retrievable per user.
Auto-Escalation: A background scheduler automatically escalates ticket priority when a dueDate is exceeded.
Auto-Assignment: Tickets without an explicit assignee are automatically assigned to the least-loaded DEVELOPER in the project.
Technical Aspects
The system is built using Java 21 or Java 25 with Spring Boot 3 or Spring Boot 4, leveraging its robust framework for creating RESTful APIs. Data persistence is managed using PostgreSQL via Spring Data JPA (Hibernate).
Homework Task
Candidates are expected to design and implement the above APIs, adhering to RESTful principles, including input validation, proper error handling, and relevant tests.
Tickets and projects support soft delete only — deleted records are hidden from standard responses but can be restored by ADMIN users. Permanent (hard) deletion is not exposed through the API.
For your convenience, compose.yml includes a PostgreSQL DB and the app is already configured to connect to it.
Document your exact setup, build, and run steps in run.md (install dependencies, start the database, build the project, run the application, and run the tests).
Description
Spring Boot Java starter project. Supports Java 21 or Java 25 with Spring Boot 3 or Spring Boot 4.
Build
# using Maven wrapper
$ ./mvnw clean package
Running the app
# run with Maven
$ ./mvnw spring-boot:run
# run the packaged jar
$ java -jar target/issueflow-*.jar
Test
# run all tests (Maven)
$ ./mvnw test
AI & Agents
We encourage you to use AI during the process. Document how you used the agent and add all relevant files (skills, instructions, plan, etc.).
Add the main and relevant prompts that show your interaction with the agents in a prompts.md file.