The Goal is to implement an application to help the team to plan thier stories.
My used algorithm to plan the stories:
- I calculate available point per week by this equation -> number of developrs * 10
- Then I loop in all stories and choose the stories which have estimated points 10 or if I found 2 stories the sum of thier estimated points is 10.
- Then I continue with the remaining stories till I finish all of them.
-
- I'm not assigning any stories to any developer in the planning to be assigned to them by updateStory endpoint. (It is easy to assign but it is just plan)
- I didn't make a unit tests for IssueService class because it will be the same as DevelopService. (to be created)
- I make an assume that each story estimatation points shouldn't increase than 10 points. ( I make a validation for it when creating or updating a story)
-
- Spring (boot, JPA).
- **Swagger UI
- H2 in-memory database.
- JDK 1.8 or later
- Docker (Optional)
-
If you have Docker and Linux, you can run the app by running commands on CMD:
- dos2unix runApp.sh
- chmod 777 runApp.sh
- ./runApp.sh
-
you can run the application by using
./mvnw spring-boot:run
-
Alternatively, you can build the JAR file then run it as follows:
./mvnw clean package
java -jar target/sprint-planning-0.0.1-SNAPSHOT.jar
After the application running, follow the below steps:
- Open http://localhost:8080, then you will be redirecred to Swagger ui Page
- You will find 3 Main Endpoints (Issue , Developer , Sprint Planning)
- In Issue Group you will find all endpoints related to Stories and bug (CRUD operations)
- In Developer Grouo you will find all endpoints related to Developers (CRUD operations)
- In Sprint Planning Group you will find one endpoint to get your plan (/plan)
- Enhancing the current algorithim for getting the plan.
- Increasing the code coverage by adding more unit and integration tests.
- Applying security for the application.