Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

7 feature 4 forming user groups task creation #32

Merged
merged 28 commits into from
Nov 22, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
3df2fd6
Added CollaborativeTask and Invitation Classes.
sshmuylovich Nov 1, 2022
57c5f56
Added CollaborativeTask and Invitation Classes.
sshmuylovich Nov 1, 2022
2400f35
Renamed directory folder entities to Entities so imports were working…
Nov 19, 2022
7beb17c
Added get, add, and remove methods for teammates, pendingteammates, a…
Nov 19, 2022
1c9b194
Added method bodies for setTitle and setPriority.
Nov 19, 2022
e11d67d
Added all methods with java doc comments. Changed instance variable r…
Nov 19, 2022
3b37e76
entities changed to Entities.
Nov 19, 2022
61ef0ad
Merge remote-tracking branch 'origin/7-feature-4-forming-user-groups-…
Nov 19, 2022
e78a8de
Changes disappeared when merging. Bringing them back.
Nov 19, 2022
495ed89
CreateNewCollaborativeTaskUseCase added
Nov 19, 2022
175f406
Changed TimeBlock attributes according to code reviews by Alyson. Add…
Nov 20, 2022
ef36c85
Changed protected methods to public.
Nov 20, 2022
83978d3
Added deadline attribute, more constructors, getter and setter methods.
Nov 20, 2022
f582acb
Deleted Use Case package for now.
Nov 20, 2022
fa75ba4
Changed timeblocks from ArrayList<LocalDateTime> to ArrayList<ArrayLi…
Nov 20, 2022
cf021de
Fixing merge conflict w/ InstructorUser
Nov 21, 2022
fc32b09
Added method body for setTimeBlocks. Added curly braces to all if sta…
Nov 21, 2022
d14945f
Get rid of constructors without parameter deadline.
Nov 21, 2022
c4c5093
Got rid of constructors without priority.
Nov 21, 2022
10c4fba
Reformatted code according to IntelliJ convention.
Nov 21, 2022
0a5288f
Added instance attributes startTime and endTime as well as thier resp…
sshmuylovich Nov 21, 2022
73f5830
Merge conflict resolved.
sshmuylovich Nov 21, 2022
f562430
Merge conflict w/ Feature 2 resolved.
sshmuylovich Nov 21, 2022
a106087
Fixed error with implementing Timeblockable interface.
sshmuylovich Nov 21, 2022
f88b795
Priority param in java doc for CollaborativeTask constructor.
sshmuylovich Nov 22, 2022
124d80d
Delete internalUserList.java and UserWhisperer.java
sshmuylovich Nov 22, 2022
18c5927
Changed teammates, pendingTeammates, and declinedTeammates add and re…
sshmuylovich Nov 22, 2022
8383ab2
Created collaborative_task_creation_use_case and collaborative_task_e…
sshmuylovich Nov 22, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ This should run the program and print on your console.
You will find HelloWorldTest in `src/test/java/tutorial` directory. Right click on the HelloWorldTest file and click on `Run HelloWorldTest`.
All tests should pass. Your team can remove this sample of how testing works once you start adding your project code to the repo.

Moving forward, we expect you to maintain this project structure. You *should* use Gradle as the build environment, but it is fine if your team prefers to use something else -- just remove the gradle files and push your preferred project setup. Assuming you stick with Gradle, your source code should go into `src/main/java` (you can keep creating more subdirectories as per your project requirement). Every source class can auto-generate a test file for you. For example, open HelloWorld.java file and click on the `HelloWorld` variable as shown in the image below. You should see an option `Generate` and on clicking this your should see an option `Entities.Test`. Clicking on this will generate a JUnit test file for `HelloWorld` class. This was used to generate the `HelloWorldTest`.
Moving forward, we expect you to maintain this project structure. You *should* use Gradle as the build environment, but it is fine if your team prefers to use something else -- just remove the gradle files and push your preferred project setup. Assuming you stick with Gradle, your source code should go into `src/main/java` (you can keep creating more subdirectories as per your project requirement). Every source class can auto-generate a test file for you. For example, open HelloWorld.java file and click on the `HelloWorld` variable as shown in the image below. You should see an option `Generate` and on clicking this your should see an option `entities.Test`. Clicking on this will generate a JUnit test file for `HelloWorld` class. This was used to generate the `HelloWorldTest`.

![image](https://user-images.githubusercontent.com/5333020/196066655-d3c97bf4-fdbd-46b0-b6ae-aeb8dbcf351d.png)

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package collaborative_task_creation_use_case;

import entities.CollaborativeTask;

public interface CollaborativeTaskCreationInputBoundary {
CollaborativeTaskCreationResponseModel create(CollaborativeTaskCreationRequestModel requestModel);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package collaborative_task_creation_use_case;

import entities.CollaborativeTask;
import entities.StudentUser;
import entities.TaskMap;
import read_write.*;

import java.time.LocalDateTime;

public class CollaborativeTaskCreationInteractor implements CollaborativeTaskCreationInputBoundary {
private final CollaborativeTaskCreationPresenter presenter;
private final StudentUser student;

public CollaborativeTaskCreationInteractor(CollaborativeTaskCreationPresenter collaborativeTaskPresenter, StudentUser student) {
this.presenter = collaborativeTaskPresenter;
this.student = student;
}

@Override
public CollaborativeTaskCreationResponseModel create(CollaborativeTaskCreationRequestModel requestModel) {
if (requestModel.getTitle().equals("") || requestModel.getStartTime() == null || requestModel.getEndTime() == null || requestModel.getDeadline() == null || (requestModel.getRecurring() && requestModel.getFrequency().equals(""))) {
return presenter.prepareFailView("Please fill in all required information.");
}

String id = LocalDateTime.now() + "_" + student.getName() + "_none";

CollaborativeTask collaborativeTask = new CollaborativeTask(requestModel.getTitle(), id, requestModel.getPriority(), requestModel.getRecurring(), requestModel.getFrequency(), requestModel.getStartTime(), requestModel.getEndTime(), requestModel.getDeadline(), student);

TaskReadWrite trw = new TaskReadWrite("src/data/TaskMap");
TaskMap.saveToFile(trw);

CollaborativeTaskCreationResponseModel collaborativeTaskResponseModel = new CollaborativeTaskCreationResponseModel(requestModel.getTitle(), requestModel.getStartTime(), requestModel.getEndTime(), requestModel.getDeadline(), requestModel.getLeader());
return presenter.prepareSuccessView(collaborativeTaskResponseModel);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package collaborative_task_creation_use_case;

import entities.CollaborativeTask;

public interface CollaborativeTaskCreationPresenter {
CollaborativeTaskCreationResponseModel prepareSuccessView(CollaborativeTaskCreationResponseModel collaborativeTaskCreationResponseModel);

CollaborativeTaskCreationResponseModel prepareFailView(String error);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package collaborative_task_creation_use_case;

import entities.CollaborativeTask;
import entities.StudentUser;

import java.time.LocalDateTime;
import java.util.ArrayList;

public class CollaborativeTaskCreationRequestModel {
private final String title;
private final int priority;
private final boolean recurring;
private final String frequency;
private final LocalDateTime startTime;
private final LocalDateTime endTime;
private final LocalDateTime deadline;
private final StudentUser leader;

public CollaborativeTaskCreationRequestModel(String title, int priority, boolean recurring, String frequency, LocalDateTime startTime, LocalDateTime endTime, LocalDateTime deadline, StudentUser leader) {
this.title = title;
this.priority = priority;
this.recurring = recurring;
this.frequency = frequency;
this.startTime = startTime;
this.endTime = endTime;
this.deadline = deadline;
this.leader = leader;
}

public String getTitle() {
return this.title;
}

public int getPriority() {
return this.priority;
}

public boolean getRecurring() {
return this.recurring;
}

public String getFrequency() {
return this.frequency;
}

public LocalDateTime getStartTime() {
return this.startTime;
}

public LocalDateTime getEndTime() {
return this.endTime;
}

public LocalDateTime getDeadline() {
return this.deadline;
}

public StudentUser getLeader() {
return this.leader;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package collaborative_task_creation_use_case;

import entities.CollaborativeTask;
import entities.StudentUser;

import java.time.LocalDateTime;

public class CollaborativeTaskCreationResponseModel {
final String title;
final LocalDateTime startTime;
final LocalDateTime endTime;
final LocalDateTime deadline;
final StudentUser leader;

public CollaborativeTaskCreationResponseModel(String title, LocalDateTime startTime, LocalDateTime endTime, LocalDateTime deadline, StudentUser leader) {
this.title = title;
this.startTime = startTime;
this.endTime = endTime;
this.deadline = deadline;
this.leader = leader;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package collaborative_task_edit_use_case;

import entities.CollaborativeTask;

public interface CollaborativeTaskEditInputBoundary {
CollaborativeTaskEditResponseModel edit(CollaborativeTaskEditRequestModel requestModel);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package collaborative_task_edit_use_case;

import collaborative_task_creation_use_case.CollaborativeTaskCreationResponseModel;
import entities.CollaborativeTask;
import entities.StudentUser;

import java.util.ArrayList;

public class CollaborativeTaskEditInteractor implements CollaborativeTaskEditInputBoundary {
private final CollaborativeTaskEditPresenter presenter;
private final StudentUser student;

public CollaborativeTaskEditInteractor(CollaborativeTaskEditPresenter collaborativeTaskPresenter, StudentUser student) {
this.presenter = collaborativeTaskPresenter;
this.student = student;
}

@Override
public CollaborativeTaskEditResponseModel edit(CollaborativeTaskEditRequestModel requestModel) {
if (requestModel.getTitle().equals("") || requestModel.getStartTime() == null || requestModel.getEndTime() == null || requestModel.getDeadline() == null || requestModel.getLeader() != student) {
return presenter.prepareFailView("Please fill in all required information.");
}
requestModel.getCollaborativeTask().setTitle(requestModel.getTitle());
requestModel.getCollaborativeTask().setPriority(requestModel.getPriority());
requestModel.getCollaborativeTask().setTimeBlock(requestModel.getStartTime(), requestModel.getEndTime());
requestModel.getCollaborativeTask().setDeadline(requestModel.getDeadline());
requestModel.getCollaborativeTask().setRecurringAndFrequency(requestModel.getRecurring(), requestModel.getFrequency());
requestModel.getCollaborativeTask().setTeammates(requestModel.getTeammates());
requestModel.getCollaborativeTask().setLeader(requestModel.getLeader());


CollaborativeTaskEditResponseModel collaborativeTaskEditResponseModel = new CollaborativeTaskEditResponseModel(requestModel.getTitle(), requestModel.getStartTime(), requestModel.getEndTime(), requestModel.getDeadline(), requestModel.getTeammates(), requestModel.getLeader());
return presenter.prepareSuccessView(collaborativeTaskEditResponseModel);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package collaborative_task_edit_use_case;

import entities.CollaborativeTask;

public interface CollaborativeTaskEditPresenter {
CollaborativeTaskEditResponseModel prepareSuccessView(CollaborativeTaskEditResponseModel collaborativeTaskEditResponseModel);

CollaborativeTaskEditResponseModel prepareFailView(String error);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package collaborative_task_edit_use_case;

import entities.CollaborativeTask;
import entities.StudentUser;

import java.time.LocalDateTime;
import java.util.ArrayList;

public class CollaborativeTaskEditRequestModel {
private final CollaborativeTask collaborativeTask;
private final String title;
private final int priority;
private final boolean recurring;
private final String frequency;
private final LocalDateTime startTime;
private final LocalDateTime endTime;
private final LocalDateTime deadline;
private final ArrayList<StudentUser> teammates;
private final StudentUser leader;


public CollaborativeTaskEditRequestModel(CollaborativeTask collaborativeTask, String title, int priority, boolean recurring, String frequency, LocalDateTime startTime, LocalDateTime endTime, LocalDateTime deadline, ArrayList<StudentUser> teammates, StudentUser leader) {
this.collaborativeTask = collaborativeTask;
this.title = title;
this.priority = priority;
this.recurring = recurring;
this.frequency = frequency;
this.startTime = startTime;
this.endTime = endTime;
this.deadline = deadline;
this.teammates = teammates;
this.leader = leader;
}
public CollaborativeTask getCollaborativeTask() {
return this.collaborativeTask;
}

public String getTitle() {
return this.title;
}

public int getPriority() {
return this.priority;
}

public boolean getRecurring() {
return this.recurring;
}

public String getFrequency() {
return this.frequency;
}

public LocalDateTime getStartTime() {
return this.startTime;
}

public LocalDateTime getEndTime() {
return this.endTime;
}

public LocalDateTime getDeadline() {
return this.deadline;
}

public ArrayList<StudentUser> getTeammates() {
return this.teammates;
}

public StudentUser getLeader() {
return this.leader;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package collaborative_task_edit_use_case;

import entities.StudentUser;

import java.time.LocalDateTime;
import java.util.ArrayList;

public class CollaborativeTaskEditResponseModel {
final String title;
final LocalDateTime startTime;
final LocalDateTime endTime;
final LocalDateTime deadline;
final ArrayList<StudentUser> teammates;
final StudentUser leader;

public CollaborativeTaskEditResponseModel(String title, LocalDateTime startTime, LocalDateTime endTime, LocalDateTime deadline, ArrayList<StudentUser> teammates, StudentUser leader) {
this.title = title;
this.startTime = startTime;
this.endTime = endTime;
this.deadline = deadline;
this.teammates = teammates;
this.leader = leader;
}
}
Loading