Sorted based on the number of comments given to others' PRs, but also showing comments on own PRs and other comments given.
[This page was last updated on Nov 15 2020]
@daniellimws
(240 comments)1 (commented on others PR)
Who dis
2 (commented on others PR)
I think it would be better to have
if (!csvFile.isFile()) {
// handle error
return null;
}
so that we don't have all the main logic inside an if-block.
3 (commented on others PR)
Over here output
is instantiated in every iteration of the loop. Is this intended?
4 (commented on others PR)
Is it supposed to be split(",")
instead?
5 (commented on others PR)
HAHA nice
6 (commented on others PR)
The To
at the end of the method name feels unnecessary. Shall we use changeAttributes
? Or editAttributes
or edit
which I think will match the user functionality more closely too.
7 (commented on others PR)
I think naming this method as addTask
would be better as it is consistent with the other method names such as editTask
and deleteTask
.
8 (commented on others PR)
I think getTaskDescription
would be a more descriptive name for this method?
9 (commented on others PR)
Consider renaming s
and d
to more descriptive names? Like cmd
and details
10 (commented on others PR)
More descriptive names for t
, u
, and s
?
11 (commented on others PR)
More descriptive names for t
, u
, and s
?
12 (commented on others PR)
More descriptive names for t
, u
, and s
?
13 (commented on others PR)
More descriptive names for t
, u
, and s
?
14 (commented on others PR)
More descriptive names for t
, u
, and s
?
15 (commented on others PR)
More descriptive names for t
, u
, and s
?
16 (commented on others PR)
More descriptive names for t
, u
, and s
?
17 (commented on others PR)
More descriptive names for t
, u
, and s
?
18 (commented on others PR)
Why are these fields static
? I also think they can just be private
instead of protected
.
19 (commented on others PR)
Why static
?
20 (commented on others PR)
Same as above, consider private
instead of protected static
?
21 (commented on others PR)
Same as above, consider private
instead of protected static
?
22 (commented on others PR)
Same as above, consider private
instead of protected static
?
23 (commented on others PR)
Why you got a space after the ui.
lol
24 (commented on others PR)
Same as above, consider private
instead of protected static
?
25 (commented on others PR)
We should refactor this part out since it is repeated like 10 times, but I think it is ok to do it after tomorrow's meeting.
26 (commented on others PR)
Moving lines 84,85 to right before line 116 here should fix the checkstyle error
Error: eckstyle] [ERROR] /home/runner/work/tp/tp/src/main/java/athena/Parser.java:84: Distance between variable 'name' declaration and its first usage is 6, but allowed 3. Consider making that variable final if you still need to store its value in advance (before method calls that might have side effects on the original value). [VariableDeclarationUsageDistance]
Error: eckstyle] [ERROR] /home/runner/work/tp/tp/src/main/java/athena/Parser.java:85: Distance between variable 'time' declaration and its first usage is 6, but allowed 3. Consider making that variable final if you still need to store its value in advance (before method calls that might have side effects on the original value). [VariableDeclarationUsageDistance]
27 (commented on others PR)
These 2 methods look like they are doing almost the same thing. Can we combine them together?
28 (commented on others PR)
Need an empty line before method definition.
Error: eckstyle] [ERROR] /home/runner/work/tp/tp/src/main/java/athena/ListCommand.java:17: 'METHOD_DEF' should be separated from previous statement. [EmptyLineSeparator]
29 (commented on others PR)
Need a space before taskDuration
.
30 (commented on others PR)
Need a space before taskDuration
.
31 (commented on others PR)
Need a space before taskDuration
.
32 (commented on others PR)
Need a space before taskDuration
.
33 (commented on others PR)
Prof said cannot using *
to import. Refer to https://github.com/nus-cs2113-AY2021S1/forum/issues/36
34 (commented on others PR)
Error: eckstyle] [ERROR] /home/runner/work/tp/tp/src/main/java/athena/Ui.java:37: Line is longer than 120 characters (found 132). [LineLength]
35 (commented on others PR)
Error: eckstyle] [ERROR] /home/runner/work/tp/tp/src/main/java/athena/Ui.java:39:91: WhitespaceAround: '+' is not followed by whitespace. Empty blocks may only be represented as {} when not part of a multi-block statement (4.1.3) [WhitespaceAround]
36 (commented on others PR)
Error: eckstyle] [ERROR] /home/runner/work/tp/tp/src/main/java/athena/Ui.java:63: First sentence of Javadoc is missing an ending period. [SummaryJavadoc]
37 (commented on others PR)
Error: eckstyle] [ERROR] /home/runner/work/tp/tp/src/main/java/athena/Ui.java:75: Line is longer than 120 characters (found 127). [LineLength]
38 (commented on others PR)
We should put these things in our JUnit tests. I think it's ok if you want to do it in a different pull request.
39 (commented on others PR)
Code here is the same as lines 15-17. We can do this(taskList)
to avoid repetition.
40 (commented on others PR)
Space between =
.
41 (commented on others PR)
Space between =
.
42 (commented on others PR)
Just a nitpick: counter++
can ignore if you don't care lol
43 (commented on others PR)
Repeated code. Can do addTask(name, startTime, duration, deadline, recurrence, importance, notes, index)
.
44 (commented on others PR)
Would be nice to make this a test case.
45 (commented on others PR)
Would be nice to make this a test case.
46 (commented on others PR)
Wouldn't the index that we assign be different from its index in the list? tasks.remove(task)
instead?
47 (commented on others PR)
Adding this parameter will cause the program to not compile. We can leave out this parameter for now.
48 (commented on others PR)
execute
has void return-type, doesn't return anything
Should be deleteCommand
instead of DeleteCommand
49 (commented on others PR)
ui
needs to be instantiated otherwise it will crash when execute
tries to run it.
50 (commented on others PR)
Currently we don't return the printed message as a string so I think we can leave this line out for now. We should later think about how we want to return the printed string for testing purposes.
51 (commented on others PR)
Both tasks here are assigned the same index.
52 (commented on others PR)
deleteCommand.execute
will call ui.printTaskDeleted
, but ui
is null
so it will crash.
53 (commented on others PR)
taskFilter
should now be importanceFilter
54 (commented on others PR)
Continuing the comment in TaskList
about getFilteredList(TaskFilter taskFilter)
, we can do getFilteredList(importanceFilter).getFilteredList(forecastFilter)
.
55 (commented on others PR)
We can just do return true
here. But I think this is fine too.
56 (commented on others PR)
I think we don't need to add another ForecastFilter
parameter because ForecastFilter
is a subclass of TaskFilter
. In the Timetable
class I elaborated on how this can be used.
With this, it will be possible to use any type of filters as we add more in the future (for example minus importance filter).
57 (commented on others PR)
Was this for your own testing?
58 (commented on others PR)
I think it is more sustainable to generate a date for this test case.
59 (commented on others PR)
I think it is more sustainable to generate a date for this test case.
60 (commented on others PR)
We should generate a date for this test case.
61 (commented on others PR)
lol got this here
62 (commented on others PR)
We should remove these commented code since we are not using it anymore. If we wanna refer back we can find the old version here on GitHub.
63 (commented on others PR)
We shouldn't instantiate the Scanner
in every iteration of the loop. From experience this causes problems with the IO redirection tests.
64 (commented on others PR)
taskList
would be a better name than oldTask
, I believe?
65 (commented on others PR)
reccurence spelt wrongly lol
66 (commented on others PR)
I think we can change Objects.equals(taskForecast, that.taskForecast)
to taskForecast == that.taskForecast
since we use the enum
now instead of a String
.
67 (commented on others PR)
Yea I think something like getTask
would be nicer. Also there should be a JavaDoc comment.
68 (commented on others PR)
Lowercase L in List
?
69 (commented on others PR)
will still execute in a default way.
How about will execute using the default values for each parameter
?
70 (commented on others PR)
the name of the task
instead of Name of the task
? And same for the other parameters.
71 (commented on others PR)
printed with an index
How about printed with a number
because index
sounds a bit like jargon?
72 (commented on others PR)
the name of the task
instead of Name
? And same for the other parameters.
73 (commented on others PR)
Unnecessary empty lines
74 (commented on others PR)
Unnecessary empty line
75 (commented on others PR)
Empty lines
76 (commented on others PR)
Empty lines
77 (commented on others PR)
It would be better override equals
in TaskList
instead
78 (commented on others PR)
Empty lines
79 (commented on others PR)
Remember to add these files to the .gitignore
80 (commented on others PR)
I think expected
vs actual
would be a more consistent naming since this was used for our IO tests. But this is fine too.
Other than that, since this is a BufferedReader
object, it would be nice to have the variable name sound like it, for example answerFileReader
or expectedFileReader
? Same goes for attempt
in this method.
81 (commented on others PR)
else
is not needed since this will always be reached when the if
condition is not satisfied.
82 (commented on others PR)
This shouldn't throw an AddException
. Maybe a CommandException
?
83 (commented on others PR)
getErrorMessage
gives an impression that it is returning something. Perhaps printErrorMessage
instead? Or return the error message as a string from this?
84 (commented on others PR)
Also remember to add Javadoc comments for this
85 (commented on others PR)
1 empty line should be enough?
86 (commented on others PR)
I feel that it would be better to have a more specific exception name.
87 (commented on others PR)
I feel that it would be better to have a more specific exception name.
88 (commented on others PR)
It is not clear what toggle
does.
89 (commented on others PR)
Can we use TaskList
instead? So that we can make use of methods from TaskList
if needed.
90 (commented on others PR)
Can we call this TimeAllocator
? A noun instead of a verb since it's an object.
91 (commented on others PR)
Ui
the i
is lowercase in our code.
92 (commented on others PR)
isFlexible
according to coding standards
93 (commented on others PR)
isFlexible
94 (commented on others PR)
isFlexible
95 (commented on others PR)
isFlexible
96 (commented on others PR)
isTaskFlexible
?
97 (commented on others PR)
isFlexible
?
98 (commented on others PR)
isFlexible
? The program still works when there is a method called isFlexible
99 (commented on others PR)
isFlexible
?
100 (commented on others PR)
How about something like loadTaskListData_commaInTaskAttribute_commaIsReplaced
so that it is more descriptive?
101 (commented on others PR)
and I think it is good enough to use "TODAY"
instead of Recurrence.TODAY.toString()
102 (commented on others PR)
What does 5 refer to?
103 (commented on others PR)
I think it is better to override the clone
method that is in Object
.
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
104 (commented on others PR)
getDatesAt
instead? Date
in plural.
Also, should we be using getTaskFromNumber
instead?
105 (commented on others PR)
getFirstDay
is not so clear. Perhaps getFirstDateMatchingDay
? Or something more clear?
106 (commented on others PR)
I think you can just do recurrenceDates.clear()
107 (commented on others PR)
removeDate
instead?
108 (commented on others PR)
"dd-MM".length()
instead? DATE_TIME_FORMAT
sounds quite confusing.
109 (commented on others PR)
I suppose we should use the next year if the date has already passed. For example 1 Jan should be in year 2021.
110 (commented on others PR)
Unused import?
111 (commented on others PR)
I think can use task.isFlexible()
here, which has clearer intention than task.getDates() == null
.
112 (commented on others PR)
Can this be isDateIncluded
instead?
113 (commented on others PR)
I think filterDates
is not very clear. How about something like removeExcludedDates
?
114 (commented on others PR)
The isFlexible
attribute of this class is to determine whether to get flexible tasks or not flexible tasks. So, this needs to be task.isFlexible() ^ isFlexible
. But anyways I think isFlexible
is not very clear. How about something like filterFlexibleTask
or doesIncludeFlexibleTask
115 (commented on others PR)
Change to isDateIncluded
too?
116 (commented on others PR)
Remember to remove this because it's no longer used.
117 (commented on others PR)
I think it is unclear to say today
, since today
means only TODAY
in our program? Something likethisDayOfWeek
instead?
118 (commented on others PR)
Same as above for today
.
119 (commented on others PR)
Slight nit: testRemove
instead of testremove
.
I also think day
could be more descriptive, so that from the name we can tell what the test case is testing. How about filterToday
or something that shows it is testing for filtering based on TODAY
?
Also the method doesn't return true
so this is not very precise. How about returnsOnlyTodayDate
?
Same goes for the methods below.
120 (commented on others PR)
Is this supposed to be Forecast.WEEK
instead, according to the comment?
121 (commented on others PR)
Unused method? It doesn't seem to do exactly as the method name suggests too.
122 (commented on others PR)
Also remember to add a test for the exception.
123 (commented on others PR)
I think toStringDetails
sounds weird. How about getDetails()
or getDetailsAsString()
?
124 (commented on others PR)
How about the name taskDetails
instead of task
? Because we always use task
for Task
objects.
125 (commented on others PR)
I think we should refactor this into another method.
126 (commented on others PR)
Should commandAndDetails
just be commandType
?
127 (commented on others PR)
parsedCorrectly
should start with lowercase
128 (commented on others PR)
lowercase parsedCorrectly
129 (commented on others PR)
I think if the user inputs l3 f/WEEK
, the shortcut won't be expanded, and then the command will fail. I think parseCommandType
and parseShortcutCommand
can be combined together since they look at the first word in the command.
130 (commented on others PR)
Need a space after the *
for them to show as bullet points.
131 (commented on others PR)
Oh since we're not using it anymore let's remove it.
132 (commented on others PR)
Allocator
should start with lowercase a
133 (commented on others PR)
Why does this throw an Exception
?
134 (commented on others PR)
Since this is a class/object I think it would be better to name it with a noun. Something like TaskTimeComparator
? I think that this also helps us immediately tell that it is a comparator when looking at the name.
135 (commented on others PR)
Was this for testing?
136 (commented on others PR)
Missed this out last time. Since fixedTask
and flexibleTask
are lists, their name should be in plural form as per the coding standards (fixedTasks
and flexibleTasks
).
137 (commented on others PR)
After #131 it will be in LogicManager
.
138 (commented on others PR)
Lol you forgot to finish? Or we continue this next time?
139 (commented on others PR)
Strictly speaking this shouldn't be part of this PR. But this is good.
140 (commented on others PR)
the best theoretical timetable...
I feel that theoretical
will raise some questions from the reader (aka Aileen). I think we can remove this word.
141 (commented on others PR)
Wanna give example commands?
142 (commented on others PR)
theoretical
same as other comment
143 (commented on others PR)
It splits the user input based on command type...
based on the command type
instead of based on command type
?
Just a suggestion: I think it is easier to read if we say "the user can provide the parameters in any order" in a separate sentence.
144 (commented on others PR)
I think it is not clear what It
refers to. How about mentioning Parser
, AddCommand
and TaskList
.
145 (commented on others PR)
calls the
AddCommand
class
"creates an AddCommand
object" would be more precise?
146 (commented on others PR)
Writes the current task into...
Should be "Writes the current task list into"?
147 (commented on others PR)
The input will be parsed into
LogicManager
passed instead of parsed?
which executes the
AddCommand
class
creates an AddCommand
object would be more precise
148 (commented on others PR)
returns a boolean value "false" to the active flag
I think false can be written like false
because it is code.
And we got an active flag?
149 (commented on others PR)
What are these?
150 (commented on others PR)
I think we should name it as something that sounds like a Comparator
, or at least a noun. Something like TaskImportanceComparator
?
151 (commented on others PR)
Similar to the other comparator, something like TaskTimeComparator
?
152 (commented on others PR)
How about
if (taskFilter instanceof ForecastFilter) {
...
}
else {
filteredTasks.add(task);
}
since the other filters don't need to do anything.
153 (commented on others PR)
Unused import?
154 (commented on others PR)
flexibleTaskList
and fixedTaskList
since they are tasklists?
155 (commented on others PR)
Is this used?
156 (commented on others PR)
Can use assertEquals
157 (commented on others PR)
This sounds like it's for setting today's date. But I think the intention here is to change the date that is to be filtered? I think we should make a new Forecast
value for this purpose instead of reusing TODAY
because it can be quite confusing. In that case, I find filterDate
to be clearer than todayDate
too.
158 (commented on others PR)
I realized that when the Forecast
is DAY
then it must have a date. So, it would be good to have it part of the constructor. How about having a second constructor that takes in a LocalDate
, which sets the forecast to be Forecast.DAY
.
159 (commented on others PR)
Remember to remove this.
160 (commented on others PR)
Shouldn't it be timeInfo.getStartTime().getHour()
in the set
? Otherwise the loop seems to be pointless.
161 (commented on others PR)
It would be good to refactor this code segment into methods to maintain single level of abstraction.
162 (commented on others PR)
nit: int duration
instead of Integer span
to keep things consistent, since we normally use int
for integers?
163 (commented on others PR)
temp
as an argument name/being part of a method name is probably not a very good idea
164 (commented on others PR)
Remember to remove
165 (commented on others PR)
Why can't we just remove the task right here?
166 (commented on others PR)
Would be good to refactor this segment to maintain a single level of abstraction.
167 (commented on others PR)
Suggestion: Can do undefinedTimeTasks.isEmpty()
168 (commented on others PR)
I think it would be good to make a variable for end - space - pos
otherwise it takes some brain power to know what this part does exactly.
169 (commented on others PR)
I thought that count
would need to start at the starting hour that temp
started at?
170 (commented on others PR)
Would be good to refactor this part into methods to maintain single level of abstraction.
171 (commented on others PR)
Is this supposed to throw a TaskNotFoundException
? If this throws a TaskNotFoundException
, the user will receive an error message saying the task cannot be found. I think this would be really confusing to the user.
172 (commented on others PR)
How about something like spaceSlots
instead of temp
?
173 (commented on others PR)
I think date
is only meaningful when forecast == Forecast.DAY
so it might be better that we don't accept a forecast
argument.
174 (commented on others PR)
Is it supposed to be day > 31
?
175 (commented on others PR)
Suggestion: How about nextVacantSlotStart
or something that indicates that this finds the start of the next vacant time slot?
176 (commented on others PR)
Suggestion: How about nextVacantSlotEnd
or something that indicates that this finds the end of the next vacant time slot?
177 (commented on others PR)
Remember to remove.
178 (commented on others PR)
I think it would be better to say that this method will store the tasks that did not get assigned yet into this parameter. Otherwise, it seems like the caller has to provide said tasks.
179 (commented on others PR)
Suggestion: active
doesn't clearly describe why the loop has to continue running, a name that describes so would be nice
180 (commented on others PR)
taskNumber
from line 161 is unused.
181 (commented on others PR)
I think that for this one, it would be good to catch the InvalidCommandException
, to ensure it is this specific exception that is being thrown.
182 (commented on others PR)
I believe the test should fail if the this part fails, so we shouldn't catch and handle this exception.
183 (commented on others PR)
I believe the test should fail if the this part fails, so we shouldn't catch and handle this exception.
184 (commented on others PR)
I don't think we should print the stack trace to the user at all (as done by e.printStackTrace()
) no matter what happens. We should give an error message saying the program failed to load the file. Perhaps we could make our own exception like StorageLoadFailedException
so that we can customize its behaviour too?
Actually, I realized ui.printInvalidTask
is ambiguous to the user too. The user wouldn't know which task is disposed and this is not really a good thing. I think it would be good to change this in this PR too.
Also it is not immediately obvious that ArrayIndexOutOfBoundsException
occurs when the save file is corrupted. Perhaps we should catch this exception in Storage
and throw a custom exception like StorageCorruptedException
.
185 (commented on others PR)
StorageException
instead?
186 (commented on others PR)
Why so many empty lines?
187 (commented on others PR)
This should be a heading?
188 (commented on others PR)
Got an extra space in front of TaskList
189 (commented on others PR)
Suddenly there is a getLog that came out of nowhere. Would be good to explain it.
190 (commented on others PR)
Full stop at the end
191 (commented on others PR)
Do we need to check the existing tasks?
192 (commented on others PR)
Shouldn't existing tasks not go past the 12am mark? Wouldn't we have stopped that from happening when it was added/edited?
193 (commented on others PR)
Unused constant?
194 (commented on others PR)
test
?
195 (commented on others PR)
If we do getDayOfWeek
means it will occur every week right? Should it be just LocalDate.now()
? Btw if we want to get the string representation of a LocalDate
, remember to use DateUtils.formatDate
because toString
doesn't return the same format as what we mention in our user guide. This could also be a reason why we get the error message I don't know the date...
, because I realized this kept getting printed in the tests when we use date.toString
.
196 (commented on others PR)
... in the parameters description
Either "in a parameter" or "in a parameter's description"?
197 (commented on others PR)
I think nullDefault
as a variable name isn't really clear. Maybe emptyString
? Also it might be better to have this as a constant define at the top of the class. So maybe EMPTY_STRING
?
198 (commented on others PR)
Change to "\\s\\w+\\/"
to fix #199.
Now it only detects one alphabet before the /
. \\s\\w+\\/
will make it detect any number of alphanumeric characters before the /
, in case the user provides an invalid parameter like abc/
.
199 (commented on others PR)
Yea I think we shouldn't say "it cannot be a negative integer", because it also cannot be many other things. So better to say what it "must be".
200 (commented on others PR)
input by the user
I feel that "entered by the user" sounds better
201 (commented on others PR)
unknown parameter type for
add
feature
"add
command" instead of "feature"?
202 (commented on others PR)
Will the reader read "TASKID" as one word "taskid" 🤔? Maybe "TASK_ID" or "TASK-ID" would be clearer.
203 (commented on others PR)
I think we shouldn't mention default values in basic usage? Later CELC ppl get confused.
204 (commented on others PR)
Why move this to after parameters?
205 (commented on others PR)
I think we can put a note to explain what are non-recurring tasks? In case the reader gets confused about this.
Something like
| 💡 Non-recurring tasks refer to tasks with the RECURRENCE
parameter set to one of ... |
|----------------------------------------------------------------------------------------|
206 (commented on others PR)
Why move this to after parameters?
207 (commented on others PR)
[Intermediate Usage](intermediate-usage)
I think should be [Intermediate Usage](#intermediate-usage)
but maybe not important we can fix the links later when we finish everything.
208 (commented on others PR)
Before parameters instead?
209 (commented on others PR)
use [list feature](#list-tasks-list-or-l)
Would calling it list command be better than feature?
210 (commented on others PR)
[Intermediate Usage](intermediate-usage)
[Intermediate Usage](#intermediate-usage)
instead
211 (commented on others PR)
I feel that advanced users already know to use list command so dont need this line ba
212 (commented on others PR)
I think should emphasize that the user can use e
in place of edit
.
213 (commented on others PR)
I think should emphasize that user can use a
in place of add
.
214 (commented on others PR)
ELse
215 (commented on others PR)
Parameters shouldn't be optional in basic usage right?
216 (commented on others PR)
Hmm why would this place throw this exception?
217 (commented on others PR)
Ohh ok. I feel that we should have something like an assert(false)
here because if the program does reach this line, it means we have done something wrong, since by right TaskIsDoneException
shouldnt happen when loading from storage. But not really a big deal.
218 (commented on others PR)
Need to make sure Storage doesn't load in old tasks. I suppose it shouldn't be an issue because it looks like you're working on that.
In the hypothetical situation when the user leaves ATHENA running for more than a day then this might crash lol.
219 (commented on others PR)
I think we can keep this. Then at the end we say "(Refer to the Intermediate Usage section of each guide for more information)".
220 (commented on others PR)
Maybe shldnt have this
221 (commented on others PR)
We use int
normally instead of Integer
, might be good to standardize. Same for everything else I guess. But not really important so up to you
222 (commented on others PR)
I think taskNumberList
would be a better name
223 (commented on others PR)
use list command
"use the list command" instead?
task to be edited?
to be viewed?
224 (commented on others PR)
prints a message for the user to type
how about "prints the command to restore the task"
accidently
accidentally?
225 (commented on others PR)
wants to delete
view?
226 (commented on others PR)
If recurrence is invalid then the storage is corrupted
227 (commented on others PR)
print statement
228 (commented on others PR)
extra space
229 (commented on others PR)
has to be in the valid format?
230 (commented on others PR)
this sounds a bit weird
231 (commented on others PR)
I think we don't need to load data from storage in every run of the loop
232 (commented on others PR)
Maybe we can have a private TimeAllocator timeAllocator
and put this timeAllocator = new TimeAllocator(taskList)
in the constructor, since the same TaskList
object is used everytime? I think it looks nicer than initializing a TimeAllocator
every time in the loop.
233 (commented on others PR)
Use .equals
to compare strings
234 (commented on others PR)
Why you got a full stop after comma lol
235 (commented on others PR)
Missing participant ":Parser" as Parser
236 (commented on others PR)
Missing
participant "command:ViewCommand" as ViewCommand
participant ":Task" as Task
participant "taskList:TaskList" as Task
participant ":Time" as Time
participant ":AthenaUI" as AthenaUI
237 (commented on others PR)
participant "storage:Storage" as Storage
participant ":TaskList" as TaskList
participant ":File" as File
238 (commented on others PR)
participant "storage:Storage" as Storage
participant ":Time" as Time
participant ":Task" as Task
participant ":TaskList" as TaskList
participant ":File" as File
239 (commented on others PR)
Isn't list before mark as done
240 (commented on others PR)
This shouldn't be under Appendix: Requirements
right?
241 (commented on own PR)
@alstontham I think it would be good to overload the toString
method so that we can print the object directly. You can work on printing out a Date
and TaskList
on your side first then we can move that code here later.
Or you can fetch this branch and modify it, then make a pull request to my branch.
242 (commented on own PR)
Yea I tried without and the program might crash if the user doesn't give it in upper case.
243 (commented on own PR)
I agree!
244 (commented on own PR)
Oh wait, one allows the programmer to choose the index while the other will automatically assign an index. But yea there's repeated code so I'll modify the second addTask
to call the first addTask
.
245 (commented on own PR)
Actually I wasn't sure should the number start from 0 or 1. I thought our first task would start from 1?
246 (commented on own PR)
This was taken from #55. Can you comment over there?
247 (commented on own PR)
How about moving number
to the first argument for addTask
as well?
248 (commented on own PR)
Oops thanks for noticing
249 (commented on own PR)
Oops thanks for noticing
250 (commented on own PR)
Oh right good catch
251 (commented on own PR)
I removed the runtest.sh from GitHub actions in 732c687 because I realized this is not practical.
252 (commented on own PR)
Oh I was planning to refactor -------
into a constant. Will do that tomorrow.
253 (commented on own PR)
It turns out that the one in 115 was looking for the first date that matches the day, e.g. given Wednesday return 21 Oct 2020. So it's different from this. But yea I agree it would be better for this to be somewhere else, so that it can also be commonly used by the date related tests.
254 (commented on own PR)
Nope since the checks passed
255 (commented on own PR)
At first I was thinking of putting it in Ui
, and then I feel that eventually we would need to refactor them to somewhere more focussed. Then I realized the somewhere is Timetable
, since it contains all the related attributes needed to draw the timetable. What do you think?
256 (commented on own PR)
Ok will leave this to you
257 (commented on own PR)
Oh thanks I forgot about that.
258 (commented on own PR)
@wish2023 Can check if the yyyy-MM-dd
was a mistake?
259 (commented on own PR)
Oh yea maybe accidentally deleted that line. Nice catch
260 (other comment)
Done in #4
261 (other comment)
Done in #4
262 (other comment)
Done in #4
263 (other comment)
@Kafcis I think we don't need to store the timetable generated from the task list in a file, because the same timetable can always be generated from the same task list. Looking at the scale of this, there won't be much impact in performance if we generate the timetable when the program starts. But if you wanna do it, you can use getTimetable()
to get the week's timetable.
@alstontham The timetable given to the Ui
will be a list of TimetableDay
objects, each containing a date and a list of Task
s. So you can work on printing that now.
264 (other comment)
Can you add a method to get the whole list without any filtering?
265 (other comment)
Actually there's no checkstyle issues here lol
266 (other comment)
I feel that this can be just a method inside Task
. Have we discussed this?
267 (other comment)
Done in #34
268 (other comment)
Er this PR has error with checkstyle test after you merged master into it. We shouldn't have merged.
269 (other comment)
Yea if main
throws the exception it's the same as asking the program to crash because nobody is handling it.
270 (other comment)
Done in #45
271 (other comment)
Btw merge from master so that the checkstyle problems are fixed.
272 (other comment)
Thanks. I agree it would be better to have a Recurrence
class so that we can support different types of values.
273 (other comment)
Also continuing the work in #59.
274 (other comment)
I just tested and realized sending exit doesn't actually exit the program. You forgot to check for that.
275 (other comment)
Continued in #61
276 (other comment)
I merged #55 into this so that I can also catch exceptions. We can wait until that is merged before reviewing this if there are too many things.
277 (other comment)
I think each change in the code should be accompanied with the test code so that we can merge with confidence that it works as intended.
278 (other comment)
My bad now it is fine, not sure why it crashed just now. I should have checked what went wrong exactly.
279 (other comment)
I think this would fix #73. Can confirm?
280 (other comment)
Left with AddCommand
281 (other comment)
Test is failing because of ForecastFilterTest
. Should be ok once #78 is merged.
282 (other comment)
Done in #79
283 (other comment)
Also closes #69
284 (other comment)
@wish2023 ForecastFilterTest
dieded again
285 (other comment)
We should eventually get rid of this sloppy exception handling.
286 (other comment)
Did we fix this?
287 (other comment)
There would be a problem when the task details contains a |
. I think commareplacement
is too long if we want the save file to be conveniently edited by the user.
288 (other comment)
Fix #98
289 (other comment)
@wish2023 I'm thinking of merging this first so that we can move on with the other PRs. Will open another issue to address the comments you left. Ok?
290 (other comment)
We should also test that 7 days in the week (Monday to Sunday) are included when filtering by week. And address the comments left in #99.
291 (other comment)
Can we close this? Done in #114
292 (other comment)
No longer a problem
293 (other comment)
Can close? Done in #96
294 (other comment)
Some work done in #96 and #115
295 (other comment)
Can be done together with #103
296 (other comment)
Remember to fix the failing test too.
297 (other comment)
This is done already?
298 (other comment)
Good catch. Currently if there are overlapping tasks, the second task will not show up in the timetable. I think we should leave this to the TaskList
and TimeAllocator
to ensure this doesn't happen? Because I don't think we should allow this to happen at all.
299 (other comment)
Btw for now, if the task duration exceeds the sleep time, it will be cut off at the sleep time. Perhaps we should push back the sleep time when this happens? We can open an issue for this if so.
300 (other comment)
Ya it shows for the week for now. After this is merged I will let it be based on the ForecastFilter
(#129).
301 (other comment)
We might need to postpone to v2.1 because our OOP is not really good enough to allow us to store this information anywhere, since our Timetable
is instantiated on the spot when list
is called. We would need a Model
class that interfaces to all our backend stuff like TaskList
and Timetable
before implementing this.
302 (other comment)
Now we cannot do this because we are loading the Task
attributes from the TaskList
and filling them into the EditCommand
. We can change Task.edit
to instead check if the method arguments are null
, and only modify the Task
attributes if they are not null
. By doing this, we can improve testability since EditCommand
no longer needs to load the attributes from a Task
.
303 (other comment)
Resolved in #142
304 (other comment)
In DG it says ColourManager
but in code we have Color
.
305 (other comment)
Oh ok no prob
306 (other comment)
Don't allow user to add tasks from 12am to 8am.
307 (other comment)
Where are the diagrams lol? This PR only has the code for generating them.
308 (other comment)
Combination of #169 #177
309 (other comment)
Done in #178
310 (other comment)
Done in #178
311 (other comment)
Is this fixed?
312 (other comment)
I think 0 and 1 are both fine. Your call?
313 (other comment)
What does this mean?
314 (other comment)
Oh ok thanks
315 (other comment)
Same as #229
316 (other comment)
Modify this command to omit dates without tasks
317 (other comment)
Should update this to show 1 month starting from today instead.
318 (other comment)
@wish2023 Can close this?
319 (other comment)
Maybe it wasnt clear in UG or help output
320 (other comment)
Can close?
321 (other comment)
Is this done? From the meeting earlier it looks like it still prints "finish on No deadline"
322 (other comment)
Actually I still don't know what to do here lol
323 (other comment)
My bad it is fixed
324 (other comment)
When does it crash?
325 (other comment)
Ok
326 (other comment)
@wish2023 is this fixed?
327 (other comment)
@wish2023 I think this is same as #207? Can confirm?
328 (other comment)
Settled?
329 (other comment)
@wish2023 haha confirm with you again if this is fixed
330 (other comment)
Wow nice catch
331 (other comment)
Ok will do this during our meeting tomorrow
332 (other comment)
tests are probably failing because your code doesn't have the latest change from master
333 (other comment)
I think you should move the command classes into a command package.
334 (other comment)
Oh just realized that you said need to rename a few boxes
@hughjazzman
(188 comments)1 (commented on others PR)
public Resistor(double value) {
2 (commented on others PR)
/**
* Returns String representation of Resistor.
*
* @return String with value and SI unit of Resistor.
*/
3 (commented on others PR)
public String toString() {
4 (commented on others PR)
Great photo!
5 (commented on others PR)
Nice work!
6 (commented on others PR)
If you look in the build error, it says 'METHOD_DEF' should be separated from previous statement. [EmptyLineSeparator]
. So just have to add an empty line.
/**
7 (commented on others PR)
Consider correcting the SI_UNIT
?
private static final String SI_UNIT = "Ω";
8 (commented on others PR)
Need to extend the super class.
public class PowerSource extends Component {
9 (commented on others PR)
The JavaDoc should be with its method.
/**
* Returns String constituting value and unit of voltage source of circuit.
*
* @return String representation of VoltageSource object.
*/
10 (commented on others PR)
Consider JavaDoc here?
11 (commented on others PR)
Might be good to have getters for these.
12 (commented on others PR)
Later when the RTemplate
is created this could instead inherit from that.
13 (commented on others PR)
Same, a getter for this could be used later?
14 (commented on others PR)
Consider moving the static
constant to before the instance variables?
https://se-education.org/guides/conventions/java/index.html#classes-and-interfaces
15 (commented on others PR)
Not needed since done in super()
call.
16 (commented on others PR)
Consider removing the line between the JavaDoc and method? From the coding standard: https://se-education.org/guides/conventions/java/basic.html#comments
No blank line between the documentation block and the method/class
17 (commented on others PR)
18 (commented on others PR)
19 (commented on others PR)
Could consider having setters for these? @sevenseasofbri LrTemplate
could use them as well?
20 (commented on others PR)
Can also add JavaDoc.
public double getImpedance() {
return angularFrequency * Math.abs(inductor.getValue() - (1 / capacitor.getValue()));
}
21 (commented on others PR)
You could consider to just return
here and let the rest of the function get carried out instead of having else
.
ui.printSetVoltageSource(template.getInitialPowerSupply());
return;
22 (commented on others PR)
Because of inheritance this is not needed.
23 (commented on others PR)
Maybe the assertion could be not throwing an exception? This would probably be better checked in the test for the LcTemplate
.
assertDoesNotThrow();
24 (commented on others PR)
Ah ya that's what I meant.
25 (commented on others PR)
With the return
, no need for the else
here actually. So it can just be done after the first if
statement.
26 (commented on others PR)
Consider updating the method name to be more specific? Like https://se-education.org/guides/conventions/java/basic.html#naming
featureUnderTest_testScenario_expectedBehavior()
Also can consider adding edge cases? Like 0 or negative values to make the tests more robust?
27 (commented on others PR)
Perhaps the addSeries()
and addParallel()
methods could be tested as well? They are specific to the LoadComponent
subclasses.
28 (commented on others PR)
Oh that's a good point. No need to put them here then, you can just add test cases to LoadComponentTest
?
29 (commented on others PR)
Could else
throw new DukeException
then?
30 (commented on others PR)
Yep looks good!
31 (commented on others PR)
Since execute()
actually takes in a Ui
object, you can consider using Ui.readline()
instead.
32 (commented on others PR)
command = ui.readLine();
33 (commented on others PR)
Consider leaving System.out.println()
in the Ui
class?
34 (commented on others PR)
Consider leaving this in the Ui
class?
35 (commented on others PR)
The help
and summary
command should probably have text-ui-test before merging.
36 (commented on others PR)
Oh this try-catch
block is probably not needed since all DukeException
are caught in the main Duke
class right?
37 (commented on others PR)
Alright noted then, it's like a mini instance of Duke
.
38 (commented on others PR)
}
if (numOfCommandsDone >= 6 || !command.matches(orderOfInstructions[numOfCommandsDone] + "(.*)")) {
throw new DukeException("Bad Command! Please follow the instructions carefully."
+ "If you want to exit this mode, type 'exit' and press enter.");
}
Command c = PARSER.parse(command);
c.execute(ui);
numOfCommandsDone++;
39 (commented on others PR)
What's the reasoning for making this (as well as in the other classes) protected
instead of private
?
40 (commented on others PR)
Probably don't want to XOR here right?
public static final double DELTA = 1e-15;
41 (commented on others PR)
Thinking the return toString methods could simply be tested in text-ui-test. Kind of odd that we just copy paste for JUnit.
42 (commented on others PR)
Consider changing all method names to include the test input/scenario.
https://se-education.org/guides/conventions/java/basic.html#naming
43 (commented on others PR)
Consider adding edge cases? Like 0, or negative values, to make the code more robust - similar for all the methods.
44 (commented on others PR)
i.e. test scenario here could be noValue
45 (commented on others PR)
Ah okay, but I would say there is no need to access the TEMPLATE
(see comment about the toString
), and the components could be accessed by getters instead, so actually don't need to be protected
?
46 (commented on others PR)
Trivial getters wouldn't really need testing in the end: https://stackoverflow.com/questions/6197370/should-unit-tests-be-written-for-getter-and-setters
47 (commented on others PR)
Since the way we set values is calling Component.setValue()
, these actually still work when they are final
.
48 (commented on others PR)
In a sense, we are using the same LoadComponent
object, just changing its value.
49 (commented on others PR)
Looking at https://github.com/se-edu/addressbook-level3/blob/master/src/main/java/seedu/address/logic/LogicManager.java, I think it is completely fine to have the Logger
at the main Command
class. It's just that we haven't thought of logging for the other commands, but I think this should be moved to the main class.
50 (commented on others PR)
Nice use of abstract
!
51 (commented on others PR)
Any reason why the @param input
here is of byte
type when everything else is int
? Including that of TwoInputGate.setSecondInput()
.
52 (commented on others PR)
Probably clear enough to return immediately.
return input & secondInput;
53 (commented on others PR)
Should this check for isEmpty()
first?
54 (commented on others PR)
Nice example!
55 (commented on others PR)
boolean hasNoChildren = isNullAtIndex(getLeftIndex(index)) && isNullAtIndex(getRightIndex(index));
return !isNullAtIndex(index) && hasNoChildren;
56 (commented on others PR)
4
could be a constant defined above.
57 (commented on others PR)
I don't think we need that. Reason being we are not guaranteed the inputs are set when building the circuit. Might have to calculate every time, unless BooleanTemplate
checks for if a new value is set or not.
Any Gate
would also need a default overloaded constructor in that case.
58 (commented on others PR)
Do remove the conflict markers.
59 (commented on others PR)
No need to remove.
60 (commented on others PR)
No need to remove.
61 (commented on others PR)
No need to remove.
62 (commented on others PR)
No need to remove.
63 (commented on others PR)
You feel that no need to put the User Profile and Value Proposition to the ToC?
64 (commented on others PR)
Consider using bullet points here? Possibly standardise the numbering/bulleting in this Appendix section?
65 (commented on others PR)
Nice diagram!
66 (commented on others PR)
![InitialBinaryTree](diagrams/BinaryTreeInitialObjectDiagram.png)
67 (commented on others PR)
`BooleanTemplate` uses this function to render the current configuration of the circuit in a String format. The method
is also extensively used in other internal operations in `BinaryTree<t cwf="C:\repos\nus-cs2103\dashboards-base\contents\cs2113\tp-comments-panels.mbdf">` for checking whether a position in the tree has been set or not.
68 (commented on others PR)
Just realised this shouldn't have been deleted.
69 (commented on others PR)
Should be
## Appendix: Requirements
### Product scope
#### Target user profile
70 (commented on others PR)
This has been changed to CLIrcuit Assistant right?
71 (commented on others PR)
Is this a copy of the main README?
72 (commented on others PR)
Currently broken.
## Appendix: Requirements
73 (commented on others PR)
The jar file is still duke.jar
.
2. Open a new terminal window and navigate to the same directory where your duke.jar is located
3. Enter the command `java -jar duke.jar` into the terminal window to launch the application
74 (commented on others PR)
Just the link for changes in #73.
* [Model component](#model-component)
* [Implementation of Boolean Commands](#implementation-of-boolean-commands)
* [Binary Tree](#binary-tree)
75 (commented on others PR)
[-> AddCommand: execute()
76 (commented on others PR)
RcTemplate
calls getCapacitor()
from itself.
RcTemplate -> RcTemplate : getCapacitor()
activate RcTemplate
RcTemplate <- RcTemplate : capacitor
deactivate RcTemplate
77 (commented on others PR)
AddCommand -> RcTemplate : rc.getComponent("c")
78 (commented on others PR)
I realise that we might need to change the actual Java code here so it doesn't need to call getComponent()
twice.
79 (commented on others PR)
This whole part might actually be redundant in the code, we can remove the setComponent()
call since it is already set when c.setValue()
is called.
80 (commented on others PR)
I think you can just update the UML to this version, we can merge and create a new PR for the code later. Maybe can just add an issue right after merging this one.
81 (commented on others PR)
Yeah maybe can add to .gitignore.
82 (commented on others PR)
The code has been fixed as of #71 - you can update it to follow the current implementation.
83 (commented on others PR)
You can click delete file from the Files changed section.
84 (commented on others PR)
This would probably be better moved to its own section rather than being in the Architecture section.
85 (commented on others PR)
I'll have to update my diagram.
86 (commented on others PR)
Remember to update the ToC once you do so 💯
87 (commented on others PR)
/.settings/
*.log*
88 (commented on others PR)
Interface with only a constant?
89 (commented on others PR)
Why is this needed?
90 (commented on others PR)
Duplicate
91 (commented on others PR)
Should not be invalid command, need to change input.txt
to use tutorial circuit
instead.
92 (commented on others PR)
Maybe can add JavaDoc here?
93 (commented on others PR)
I see, will have to change the class diagrams for this.
94 (commented on others PR)
Why is this necessary? Doesn't seem to be used outside of checkHasSetBothInput()
.
95 (commented on others PR)
JavaDoc here?
96 (commented on others PR)
Following CircuitCommand
, what could be done instead is to put this in an overridden toString()
method:
}
@Override
public String toString() {
return "The output of the current configuration is " + template.calculateOutput(0) + ".\n" + super.toString();
}
Better yet, have a private int output
variable in the class, and use .execute()
to set it using output = template.calculateOutput(0)
. Then you could replace it with output
in toString()
.
97 (commented on others PR)
Yep can remove.
98 (commented on others PR)
This is no longer necessary, along with the import.
99 (commented on others PR)
Consider initializing the Gate
object before these if
checks? Seems to be circuit.getT(idx)
is accessed up to 3 times.
100 (commented on others PR)
This could be overloaded so that calculateOutput()
will just give calculateOutput(0)
when called from CalculateBooleanCommand
. Then this method could also be private
.
101 (commented on others PR)
No new Gate
object is being created, you are accessing an existing one within BinaryTree
. Plus you get much more clarity.
102 (commented on others PR)
On that note, you could also have a variable for the left and right index.
103 (commented on others PR)
return super.toString() + System.lineSeparator() + "The output of the current configuration is " + output + ".";
104 (commented on others PR)
Following the implementation this should above the template.
105 (commented on others PR)
Nice addition! 💯
106 (commented on others PR)
Any reason why this doesn't use the CLIrcuit Assistant logo? And Enjoy being on the same line? Consider using EXPECTED.txt and ACTUAL.txt, which you'll have to update, to check the formatting.
107 (commented on others PR)
Adding on to this, how come there are two sets of DukeException
being thrown?
108 (commented on others PR)
Consider putting this in CircuitTemplate
instead? Then subclasses can just call super.toString()
.
109 (commented on others PR)
Will be updated by @oasisbeatle
110 (commented on others PR)
👍
111 (commented on others PR)
112 (commented on others PR)
+-----------+----------------------------+---------------------+
| Command | Circuit | Boolean |
+-----------+----------------------------+---------------------+
| Tutorial | tutorial circuit | tutorial boolean |
| Template | template TEMPLATE | template TEMPLATE |
| Summary | summary | summary |
| Set | set COMPONENT VALUE | set INPUT BOOLVALUE |
| Add | add CONFIG COMPONENT VALUE | add INPUT GATE |
| Calculate | calc EFF_VALUE | calc |
| Exit | exit | exit |
| Print | print | print |
+-----------+----------------------------+---------------------+
Here's a summary of the command parameters:
+-----------+----------------------------------+-------------------------------+
| Parameter | Circuit Params | Boolean Params |
+-----------+----------------------------------+-------------------------------+
| TEMPLATE | rc, rl, r, cl | boolean |
| COMPONENT | r, c, l, v | N.A. |
| CONFIG | parallel, series | N.A |
| EFF_VALUE | reff, ceff, leff, current, power | N.A |
| VALUE | any number of double datatype | N.A |
| INPUT | N.A | A, B, C, D, E, F, G |
| GATE | N.A | or, and, nor, nand, xor, xnor |
| BOOLVALUE | N.A | 0, 1 |
+-----------+----------------------------------+-------------------------------+
113 (commented on others PR)
You have exited Tutorial Mode!
Here's a summary of available commands:
114 (commented on others PR)
115 (commented on others PR)
Why are the stars added?
116 (commented on others PR)
Do correct the name of the image file.
117 (commented on others PR)
#### `SetBooleanCommand`
118 (commented on others PR)
There are four Boolean commands that are used in the implementation of the logic gates: `TemplateBooleanCommand, SetBooleanCommand, AddBooleanCommand`, and `CalcBooleanCommand`.
119 (commented on others PR)
#### `AddBooleanCommand`
120 (commented on others PR)
#### `CalcBooleanCommand`
121 (commented on others PR)
Where is the PUML file for this? It seems like the TwoInputGate
objects shouldn't know about it each other, rather it's BooleanTemplate
that knows about all of them.
122 (commented on others PR)
Missing PUML file.
123 (commented on others PR)
Missing PUML file.
124 (commented on others PR)
Missing PUML file.
125 (commented on others PR)
Missing PUML file.
126 (commented on others PR)
127 (commented on others PR)
Going into BooleanParser
from Parser
should be prepareBooleanTemplate()
.
[->Parser: parse("template and")
activate Parser
Parser-> BooleanParser: prepareBooleanTemplate("and")
128 (commented on others PR)
BooleanParser --> BooleanParser: AndGate()
129 (commented on others PR)
BooleanParser --> BooleanParser: BooleanTemplate(AndGate())
130 (commented on others PR)
131 (commented on others PR)
The BooleanParser
is not deactivated.
132 (commented on others PR)
The control should be returned back to Parser
, that's where it started from. We can just ignore the super()
call, it's not so important.
TemplateBooleanCommand --> BooleanParser
deactivate TemplateBooleanCommand
BooleanParser --> Parser
deactivate BooleanParser
[>-- Parser
deactivate Parser
133 (commented on others PR)
This is still not fixed. Do change the name of the image file to SetBooleanCommand.png
.
134 (commented on others PR)
Do keep in mind the names of the image files.
![InsertObjectDiagram](diagrams/AddCommandOrAndXor.png)
135 (commented on others PR)
Please fix the activations, they should all be after the arrow ->
.
136 (commented on others PR)
Index parsing is done in BooleanParser
.
137 (commented on others PR)
BooleanTemplate -> BinaryTree : insert(idx, and)
activate BinaryTree
BinaryTree --> BooleanTemplate
deactivate BinaryTree
BooleanTemplate -> BooleanTemplate : buildTopDown()
activate BooleanTemplate
BooleanTemplate --> BooleanTemplate
deactivate BooleanTemplate
BooleanTemplate --> AddBooleanCommand
deactivate BooleanTemplate
>-- AddBooleanCommand
deactivate AddBooleanCommand
138 (commented on others PR)
This will need to be revised once @sevenseasofbri implements CalculateBooleanCommand.execute()
. Consider revising the return of control of the sequence diagrams.
139 (commented on others PR)
Please fix the activation here as well.
140 (commented on others PR)
[-> SetBooleanCommand : execute()
activate SetBooleanCommand
SetBooleanCommand -> BooleanTemplate : setInput(template, 2, 0)
activate BooleanTemplate
BooleanTemplate -> BinaryTree : getT(2)
activate BinaryTree
BinaryTree --> BooleanTemplate : gate
deactivate BinaryTree
BooleanTemplate -> TwoInputGate : setSecondInput(0)
activate TwoInputGate
TwoInputGate --> BooleanTemplate
deactivate TwoInputGate
BooleanTemplate -> BooleanTemplate : buildTopDown()
activate BooleanTemplate
BooleanTemplate --> BooleanTemplate
deactivate BooleanTemplate
BooleanTemplate --> SetBooleanCommand
deactivate BooleanTemplate
[>-- SetBooleanCommand
deactivate SetBooleanCommand
141 (commented on others PR)
Needs revision - consider changing this to BooleanTemplate
being associated with Gate
objects, which all the other gates inherit from. Also, TwoInputGate
only has input
and secondInput
, they do not know about other Gate
objects. The logic is done from within BooleanTemplate
.
142 (commented on others PR)
Maybe this can be better shown with a UML Class diagram?
143 (commented on others PR)
Maybe these steps here and the next command can just be shown by UML diagrams mostly? If the sequence diagram is very clear, the steps taken might even be redundant.
144 (commented on others PR)
The name of the actual file is still docs/diagrams/setBooleanCommand.png
. It will not render properly if the case does not match.
145 (commented on others PR)
Any reason you name them States? Seems harder to deal with than just using their names.
146 (commented on others PR)
We no longer have the TwoInputGate
, all are from Gate
now.
147 (commented on others PR)
Consider revising these to show inheritance i.e. the >|--
arrow.
148 (commented on others PR)
Arrow is in the wrong direction?
State1 --> "1..7" State5
The "1..7"
shows the multiplicity.
149 (commented on others PR)
Already implemented - can be updated.
150 (commented on others PR)
No longer needed. Also States name could be changed?
151 (commented on others PR)
Yes.
152 (commented on others PR)
Nice, added a 500.0 µF
153 (commented on others PR)
![InitialBinaryTree](diagrams/BinaryTreeInitialObjectDiagram.png)
154 (commented on others PR)
155 (commented on others PR)
import java.util.Scanner;
156 (commented on others PR)
public static void main(String[] args) {
157 (commented on others PR)
actually this was the old tutorial commands, can remove these then
158 (commented on others PR)
lines 10 to 16 were the tutorial commands previously. see the exit
command?
159 (commented on others PR)
yes I know. but we have 2 sets of tutorial commands for tutorial circuit now.
160 (commented on others PR)
Nice work! I admire the beauty of this change.
161 (commented on others PR)
Also returns it! Found this looking through older PRs and realised this was merged before this review. 😮
Consider updating the Gate.getOutput()
methods with better JavaDoc? Goes with #110 I suppose.
162 (commented on others PR)
These JavaDoc could be improved, since the boolean
is returned also.
163 (commented on others PR)
Maybe say something like 'template lc
' or 'template rl
'?
164 (commented on others PR)
Yup try maybe add wrong commands not matching these in input.txt to see what happens.
165 (commented on others PR)
Maybe consider using \t
similar to what @sevenseasofbri did for CIRCUIT_INSTRUCTIONS
? To be consistent, \n
can also be replaced with System.lineSeparator()
.
166 (commented on others PR)
😮 blank line
167 (commented on others PR)
Looking at #162 maybe a newline could be added before "In the app"?
168 (commented on others PR)
This is buggy, consider adding new lines after code, as well as using ''' instead of tabs.
169 (commented on others PR)
Since this is the user guide, you can consider changing the instances of "the user" to "you" instead. The rest of the document does not use "the user".
170 (commented on others PR)
Ah another thing, this looks like it is specific to tutorial circuit
which is not mentioned anywhere.
171 (commented on others PR)
Since we have kramdown
with {\:toc}
, this isn't needed right?
172 (commented on others PR)
Adding an edge to an AM is O(1), checking if an edge exists is also O(1). Removing an edge is also O(1). The issue with the AM is the high space complexity.
173 (commented on others PR)
You can take a look at our current documentation page which already uses it: https://ay2021s1-cs2113t-w13-3.github.io/tp/DeveloperGuide.html
If you want to see it on your own fork you can setup the docs as the site page in your settings: https://nus-cs2113-ay2021s1.github.io/website/schedule/week7/project.html#a-userguide
174 (commented on others PR)
I think we are all forgetting the GUI constraint here. Any dynamic visualisation would dangerously be part of GUI, and making everything static (similarly for Boolean) cuts that issue out. Maybe consider adding this consideration as well?
175 (commented on others PR)
This shouldn't be removed right?
176 (commented on others PR)
Should follow master branch here right?
177 (commented on others PR)
??
in the correct command in the terminal line as shown below.
178 (commented on others PR)
Why is this changed?
![AddCircuit](diagrams/AddCircuitLabel.png)
179 (commented on others PR)
180 (commented on others PR)
For consistency.
The image below shows an example of using the command `set r 500` on the template shown.
181 (commented on others PR)
The image below shows an example of using the command `set B 0` on the template shown.
182 (commented on others PR)
![SetBoolean](diagrams/SetBooleanLabel.png)
183 (commented on others PR)
Broken. Also why not the same format as the other images? The colours and all.
![Simplified](diagrams/TemplateBooleanAnd.png)
184 (commented on others PR)
Yep image is ok, but formatting still broken. Commit the suggestion ⬆️
185 (commented on others PR)
For consistency.
The image below shows an example when using the `template and` command.
186 (commented on others PR)
>![Simplified](../diagrams/TemplateBooleanAnd.png)
187 (commented on others PR)
If you want the image you gotta put it after the ---.
188 (commented on others PR)
Pending right?
189 (commented on own PR)
Will be used when it's actually implemented. The Ui will need to print what happens with execution, something like my iP. i.e. the implementation here is not complete, and requires #3 to be completed.
190 (commented on own PR)
Hmm, I feel it's quite intuitive? What else would you do with the otherValue, with the method name and JavaDoc already given?
191 (commented on own PR)
Nope! In fact, it cannot compile if you add the break
statements.
192 (commented on own PR)
We can consider adding more Exception
classes and functionality later on.
193 (commented on own PR)
Good idea 👍
194 (commented on own PR)
Good point. Should there be an assertion in BooleanTemplate.setInput()
as well? Though it does seem we are using DukeException
for BinaryTree.insert()
. Maybe all as exceptions?
195 (commented on own PR)
Yep yep, I basically left this whole part untouched since @PraveenElango should be solving it in #75.
196 (commented on own PR)
Same as above.
197 (commented on own PR)
String input = gate.getSecondInput() ? "1" : "0";
198 (commented on own PR)
😮You spotted a bug!
199 (other comment)
#10 Inductor done.
200 (other comment)
No need to link the issue #10 yet, else it will automatically close it when you merge. Can link when the last component is done.
201 (other comment)
Closed as duplicate of #19.
202 (other comment)
You don't need to close the PR and make a new one once you've made the changes. But it's okay, now that you've opened #19 we'll use that.
203 (other comment)
Inductor done in #11
Capacitor done in #16
Resistor done in #19
Voltage Source done in #21
I think we can merge all and close this issue?
204 (other comment)
Todo:
Take a look at Parser.prepareCalc()
.
Take a look at Command
and other subclasses.
Create CalculateCommand
class.
Implement CalculateCommand.execute()
method.
Use Template
calculate methods to get values.
UseUi
to print result.
Add JUnit test(s) for CalculateCommand
.
205 (other comment)
Assigned JUnit Testing classes:
| Class | Person |
|-------------|--------------------------------------------------|
| Command
| @sevenseasofbri will do HelpCommand
subclass, @dorianfong98 the rest |
| Component
| @oasisbeatle |
| Parser
| @hughjazzman |
| Template
| @PraveenElango |
| Ui
| @sevenseasofbri |
206 (other comment)
Being the last task of milestone v1.0, we can follow this after closing: https://nus-cs2113-ay2021s1.github.io/website/schedule/week9/project.html#using-milestones
A working product tagged.
CI passing.
Milestone updated to match the product.
Milestone closed.
207 (other comment)
@dorianfong98 Command
classes done?
208 (other comment)
To be updated with #57 features, including the user stories addressed.
209 (other comment)
@sevenseasofbri will update Glossary once everyone has updated the Dev Guide. #73
210 (other comment)
Duplicate of #62.
211 (other comment)
@dorianfong98 to do BinaryTree
@sevenseasofbri to do BooleanTemplate
212 (other comment)
Add a PrintCommand
to print both CircuitTemplate
and BooleanTemplate
.
213 (other comment)
@sevenseasofbri Add the parsing into Parser
,BooleanParser
and CircuitParser
, to return TutorialBooleanCommand
and TutorialCircuitCommand
.
214 (other comment)
On these two points:
Why it is implemented that way.
Alternatives considered.
I believe we can add this for the CircuitTemplate
as well as the BinaryTree
.
Can @oasisbeatle or @dorianfong98 do a short write-up for CircuitTemplate
and @sevenseasofbri or @dorianfong98 do one for BinaryTree
?
215 (other comment)
We can also add future (hypothetical) features past v2.1.
216 (other comment)
Not implemented in v2.0
.
217 (other comment)
Released: https://github.com/AY2021S1-CS2113T-W13-3/tp/releases/tag/v2.0
218 (other comment)
Hi Nishanth, thanks for the review! Is it ok if you check out the current PR #119 DG to see if some of these issues are resolved?
219 (other comment)
If the LrTemplate() call is a constructor, the arrow should point to the :LrTemplate object, and the activity bar should be connected to :LrTemplate. Please review the other sequence diagrams and constructors as well.
@sevenseasofbri I looked through the plantUML docs, I think you can use the 'create' keyword for object creation
@nishanthelango Ah I should've looked too, makes a lot of sense that constructors can be called that way within plantUML. Thanks!
220 (other comment)
(Figure 16) Consider removing the parentheses in AndGate() to avoid confusion with methods
@nishanthelango Is this perhaps clearer?
221 (other comment)
Yep won't be added.
222 (other comment)
Thanks for the feedback. Will fix, but will not appreciate the rudeness of this issue. Do provide feedback without sarcasm and more tact. @brandonywl
The presence of a table to summarize keywords is great but other than code, the rest are only used 3 times or irrelevantly.
I disagree. Dr Jane (CS2101 prof) has informed us that this is a good way to make sure there is no confusion when different types of formatting or icons turn up in the guide. Maybe you can explain the rationale as to why they are irrelevant?
Irrelevant use of bolding. Provides no significant information to user.
Would still disagree with this point though, since CLIrcuit Assistant is the name of the application. Maybe you can make your point with a proper explanation?
For code, the bucket is too broad and confuses users as to what they should see and what they should type into the CLI. It is preferable to use screenshots instead for what they should see and that should reduce your issues by quite a fair bit.
Fair enough, I suppose there should be differentiation between only user input and formatting command words.
Unclear which should I actually put into my CLI or should I see. Surprise! It's none of the two. Only the last line follows the standardized guide. This is repeated consistently across the UG.
It's unclear which two you are referring to here. The title/section headers are definitely not equivalent to the format, which admittedly could be explained more or with better formatting. As for the Tutorial commands, perhaps we could add a preface that the Tutorial commands should be followed to the T, and that the User Guide is only a general overview. Also, another preface to explain that all user input are under the Format: (maybe Format could be bolded or underlined) with the Expected Output being directly after could be placed before the commands.
223 (other comment)
This change would be under the SetCircuitCommand#toString()
method actually.
224 (other comment)
It seems that following the original format given to us wasn't too useful. I suppose we could put the format in the section names themselves.
225 (other comment)
Disagree here. Link is provided from the top for the summary of commands at the bottom. However, I do believe the Command Preface could include this fact.
226 (other comment)
Similar to #129.
227 (other comment)
@PraveenElango I think straight away can print the summary table, and have the parameter command stuff only in the DG.
228 (other comment)
I realised I fixed it then tested it.
229 (other comment)
Closed as duplicate of #136.
230 (other comment)
Closed as duplicate of #148.
231 (other comment)
Closed as duplicate of #148.
232 (other comment)
Closed as duplicate of #151,
233 (other comment)
Closed as duplicate of #151.
234 (other comment)
(Figure 22) Can this be replaced with an opt block instead?
@sevenseasofbri Is this one fixed yet?
235 (other comment)
@brandonywl Thank you for the proper response, it's much appreciated. I would still go up and say nothing excuses rudeness, but we apologise for putting you through such a hassle.
with no indication of when does it refer to expected CLI output, or what is an example input.
On this note, I was wondering whether you caught that "Format:" showed the actual input that was supposed to be used? Genuinely wondering, otherwise we might just put all actual input in the titles (currently all input are under "Format:") instead of explaining that they are under "Format:". As for the tutorial's expected output, it seemed like we shouldn't need to explain the in-tutorial output since that should all be self-explanatory within the CLI, but I suppose we could add an expected first output when using the command.
236 (other comment)
Closed as duplicate of #134.
237 (other comment)
@oasisbeatle You can look at @sevenseasofbri for reference on the clarity for TutorialBooleanCommand
.
238 (other comment)
239 (other comment)
240 (other comment)
@sevenseasofbri Initially you said @oasisbeatle right? Did @PraveenElango want to do it insteaed?
241 (other comment)
@dorianfong98
Need to do JavaDoc for all classes also.
Follow https://se-education.org/guides/conventions/java/index.html#comments.
Can also follow https://www.oracle.com/technical-resources/articles/java/javadoc-tool.html#examples.
242 (other comment)
Suggestions before LGTM:
Replace all the code
with images
Just show the Tutorial logo instead of explaining both
You have entered
_______ _ _ _ __ __ _ _
|__ __| | | (_) | | | \/ | | | | |
| |_ _| |_ ___ _ __ _ __ _| | | \ / | ___ __| | ___| |
| | | | | __/ _ \| '__| |/ _` | | | |\/| |/ _ \ / _` |/ _ \ |
| | |_| | || (_) | | | | (_| | | | | | | (_) | (_| | __/_|
|_|\__,_|\__\___/|_| |_|\__,_|_| |_| |_|\___/ \__,_|\___(_)
Type 'exit' if you want to leave this mode and go back to the application.
Say that the sentence after depends on whether using circuit
or boolean
Rest is fine
243 (other comment)
@PraveenElango will do this Introduce section
Introduce: (one or 2 members can do this)
What is your product about?
Who is your target user?
What is the problem statement you are addressing?
Details: (ideally everyone takes part in the demo)
As a courtesy, introduce yourself (though if you miss, it is OK!)
Which part of the problem is your feature/command addressing?
How to use your feature via what commands?
If commands have different variations, show a few variations, no need to show everything
244 (other comment)
Images to be added assignment
| Section | Assigned |
|-|-|
|Tutorial | @oasisbeatle |
|Template | @dorianfong98 |
|Set | @PraveenElango |
|Add | @hughjazzman |
|Calc | @sevenseasofbri |
|Summary | @hughjazzman |
|Bye| @sevenseasofbri |
245 (other comment)
Images to be added assignment #96
| Section | Assigned |
|-|-|
|Tutorial | @oasisbeatle |
|Template | @dorianfong98 |
|Set | @PraveenElango |
|Add | @hughjazzman |
|Calc | @sevenseasofbri |
|Summary | @hughjazzman |
|Bye| @sevenseasofbri |
246 (other comment)
#166 and #172 to complete before closing.
247 (other comment)
Merged in #116.
248 (other comment)
https://nus-cs2113-ay2021s1.github.io/tp-dashboard/#breakdown=true&search=AY2021S1-CS2113T-W13-3%2Ftp&sort=groupTitle&sortWithin=title&since=2020-09-27&timeframe=commit&mergegroup=&groupSelect=groupByRepos&checkedFileTypes=docsfunctional-codetest-code~other
Last chance for checks!
@Chongjx
(181 comments)1 (commented on others PR)
Is it possible to catch the exception with this function and return a new IncorrectCommand("Missing info" or "No keyword") here
2 (commented on others PR)
I am thinking that the printFindNotesMessage in InterfaceManager can be a static function and it returns a string of the formatted note. This is to consolidate all the printing to be only done inside the main runLoop function
3 (commented on others PR)
Make this function return the string instead of printing them out directly
4 (commented on others PR)
Can use InterfaceManager.LS (line separator) for the \n to standardize all new line
5 (commented on others PR)
since you are using get function, maybe can change all the Strings to private type in the respective class
6 (commented on others PR)
I think you can import these from the tagManager.
7 (commented on others PR)
The person has to enter the prefix for every tag they want to add so I think can leave it as "TAG" to avoid confusion.
8 (commented on others PR)
Thats also viable, also can add in "TAG COLOR" too
9 (commented on others PR)
Don't have to make it static, each Command class have a TagManager object, can access the tagManager from there
10 (commented on others PR)
Get from the tagManager instead.
11 (commented on others PR)
the name of the variable can be COMMAND_WORD since now add event is split into another class
12 (commented on others PR)
Can replace the "Note deleted:" with your command successful message
13 (commented on others PR)
Violates coding standard
14 (commented on others PR)
Likewise violates coding standard
15 (commented on others PR)
Nice function here.
16 (commented on others PR)
Dont need to have this catch here. Make this function throw a SystemException, the parseCommand function will catch it.
17 (commented on others PR)
Should there be some error handling here? Like incase there are duplicate events.
18 (commented on others PR)
Can rename COMMAND_WORD_EVENT to COMMAND_WORD, previously used this to separate COMMAND_WORD_NOTE but since now this has it's own class can just shorten it.
You are also missing the COMMAND_USAGE_MESSAGE
19 (commented on others PR)
I used the wrong "Boolean" when creating the class, can change it to "boolean"
20 (commented on others PR)
Makes sense.
21 (commented on others PR)
prepareAddNote (and the other prepare functions) do not have the catch block for SystemException. This catch will be handled inside parseCommand. The only exception to catch in prepare functions should only be NullPointerException, ArrayIndexOutOfBoundsException and maybe date time related exception for this function.
22 (commented on others PR)
Can make this private and have a getter function for it to be used in HelpCommand
23 (commented on others PR)
Can replace the \n with InterfaceManager.LS for consistency.
24 (commented on others PR)
throw new SystemException instead of return a new IncorrectCommand. And can remove the catch for SystemException.
25 (commented on others PR)
There should be a catch for NullPointerException in the event that the user just enter the command only without any space after it. i.e. "add-e"
26 (commented on others PR)
This two should be private members.
27 (commented on others PR)
This function can be moved into Parser. The original intention of this class is to create a list of acceptable date time formats and returns date time info in a specific format.
28 (commented on others PR)
There should not be any return new IncorrectCommand here as well as the catch block for SystemException. Can change the catch block for ArrayIndexOutBoundsException and NullPointerException to throw a new SystemException.
Suggest to split the catching of the two exceptions mentioned above to throw a more specific SystemException.
29 (commented on others PR)
Prepare functions should throw SystemException if necessary.
30 (commented on others PR)
The exception should be missing index prefix instead for your case.
31 (commented on others PR)
Would it ever reach this point? If so, can change it to throw SystemException instead of return new IncorrectCommand for consistency with other prepare functions.
32 (commented on others PR)
Actually you can return a new DeleteNoteCommand within the switch case. So it should return immediately after reading a title or an index. If it reaches the code after the switch case can throw a systemException, say missing title/index or missing description
33 (commented on others PR)
Is it necessary to create a new Note object here?
34 (commented on others PR)
Maybe can make this a static final string as COMMAND_UNSUCCESSFUL_MESSAGE
35 (commented on others PR)
A space after the comma
36 (commented on others PR)
Have you tested listing notes with a non-existing tag? i.e. list notes with CS2113 tag, but there is no such tag in the map at all? getTag returns null for such case so I think you should only add those that are not null.
Tag tag = tagManager.getTag(tag);
if (tag != null) {
tagList.add(tag);
}
37 (commented on others PR)
Can do a check for the size of notes, if it has no element can return an unsuccessful message.
38 (commented on others PR)
This can be private since its only used within this class.
39 (commented on others PR)
Correct me if I am wrong but I don't think JavaDoc works inside function? Like it won't be displayed on the html.
p.s. I am referring to Narzyl comment.
40 (commented on others PR)
Is there a need to append to the noteString or can you just return the unsuccessful message?
41 (commented on others PR)
I think it would look nicer if the tags are on the same line as the title. i.e.
CS2113 Notes [CS2113] [Important] [School]
42 (commented on others PR)
Shld this comment be above? or somewhere in execute? Looks a little out of place
43 (commented on others PR)
private static final String INDEX_OUT_OF_RANGE_MESSAGE = "The index you specified is out of range. "
+ "Please specify the index that is indicated when you print the event list";
44 (commented on others PR)
For the "Year-Month(1-12)"
Is the user suppose to enter the year followed by the month, 2020-1, or its just the month itself?
45 (commented on others PR)
I believe Ramana is renaming all the exception with "WRONG" to "INVALID", can follow that.
46 (commented on others PR)
Rename as event? Preferably not to use single letter for variables unless its for iterators.
47 (commented on others PR)
The parameter has to be an Object? Is there any instance that this will be used to compare non-Reminder objects?
48 (commented on others PR)
Not to sure about this, but is there a need to create a class for this? Does implementing to a class, say Event or DateTimeManager and then overriding in that class work? Like wise for the DateTimeComparator, since a class can implements multiple interfaces.
49 (commented on others PR)
Can declare these numbers as static final variables
50 (commented on others PR)
I'm not sure if I remember correctly but previously Ramana mentioned that can return a new RemindCommand() directly right, since you are not using userMessage
51 (commented on others PR)
Don't have to create new object for all. In your case can just create Timetable, and pass in null for the other parameters
52 (commented on others PR)
return Formatter.LS + COMMAND_SUCCESSFUL_MESSAGE + noteString.toString();
53 (commented on others PR)
return Formatter.LS + COMMAND_UNSUCCESSFUL_MESSAGE_INVALID_TAG;
54 (commented on others PR)
return Formatter.LS + COMMAND_UNSUCCESSFUL_MESSAGE_EMPTY_NOTEBOOK;
55 (commented on others PR)
return Formatter.LS + COMMAND_SUCCESSFUL_MESSAGE + noteString.toString();
56 (commented on others PR)
private static final String NOTUS_LOGO = Formatter.LS
57 (commented on others PR)
'''suggestion
+ Formatter.LS
+ " .-') _ .-') _ .-') "
+ Formatter.LS
+ " ( OO ) ) ( OO) ) ( OO ). "
+ Formatter.LS
+ ",--./ ,--,' .-'),-----. / '._ ,--. ,--. (_)---\\_) "
+ Formatter.LS
+ "| \\ | |\\ ( OO' .-. '|'--...__)| | | | / _ | "
+ Formatter.LS
+ "| \\| | )/ | | | |'--. .--'| | | .-') \\ :' '. "
+ Formatter.LS
+ "| . |/ \\_) | | | | | | | | |( OO ) '..'''.) "
+ Formatter.LS
+ "| |\\ | \\ | | | | | | | | | '-' /.-._) \\ "
+ Formatter.LS
+ "| | \\ | '' '-' ' | | (' '-'(_.-' \\ / "
+ Formatter.LS
+ "'--' '--' '-----' '--' '-----' '-----' "
+ Formatter.LS;
'''
58 (commented on others PR)
+ NOTUS_LOGO + Formatter.LS
59 (commented on others PR)
private static final String ENTER_COMMAND_MSG = Formatter.LS
60 (commented on others PR)
Can move this over to formatter class, and have a static function to get this.
61 (commented on others PR)
'''suggestion
private static final String NOTUS_LOGO = LS
+ LS
+ " .-') _ .-') _ .-') "
+ LS
+ " ( OO ) ) ( OO) ) ( OO ). "
+ LS
+ ",--./ ,--,' .-'),-----. / '._ ,--. ,--. (_)---\\_) "
+ LS
+ "| \\ | |\\ ( OO' .-. '|'--...__)| | | | / _ | "
+ LS
+ "| \\| | )/ | | | |'--. .--'| | | .-') \\ :' '. "
+ LS
+ "| . |/ \\_) | | | | | | | | |( OO ) '..'''.) "
+ LS
+ "| |\\ | \\ | | | | | | | | | '-' /.-._) \\ "
+ LS
+ "| | \\ | '' '-' ' | | (' '-'(_.-' \\ / "
+ LS
+ "'--' '--' '-----' '--' '-----' '-----' "
+ LS;
'''
62 (commented on others PR)
The message is from pin command
63 (commented on others PR)
💡 If no tag color is specified, the color of the tag will be that of the default white color.
64 (commented on others PR)
Are you moving all the message to a class? If so you can call the format function inside ExitCommand execute so that there is no need for an additional call here
65 (commented on others PR)
Want to move all the asci art and messages to another class?
66 (commented on others PR)
I dont think this class need a test since its just messages.
67 (commented on others PR)
Can this be a function in notebook, say getNote(String noteTitle) and return true/false or the Note object/null. There should not be an ArrayList needed.
68 (commented on others PR)
Is there a need to get the content first?
69 (commented on others PR)
Can refactor most of this into inputContent(), including the do while.
Eventually it should just be:
content = inputContent;
if (content == null) {
return Formatter.formatMessage(unsuccessful message);
} else {
note.setContent(content);
...
...
...
return Formatter.formatMessage(successful message +...)
}
70 (commented on others PR)
No need to check if getTagsName is blank. Will do the fix on the formatter side.
71 (commented on others PR)
Is systemException thrown anywhere in Formatter?
72 (commented on others PR)
Make the function return the boolean instead of throwing exception? Also, should the equals be equalsIgnoreCase?
73 (commented on others PR)
No need for this exception since its the same as the COMMAND_UNSUCCESSFUL_MESSAGE in your deleteCommand. I have added my comment on the function to return the boolean instead of throwing exception.
74 (commented on others PR)
Unused import package
75 (commented on others PR)
Catch the StringIndexOutOfBoundsException within the function and return null instead.
76 (commented on others PR)
Unused import package?
77 (commented on others PR)
There is a notebook.getNote(index) function, can use that instead for simplifcation
78 (commented on others PR)
Possible to let notebook.deleteNote(index) return a boolean as well. So that can move the isDeleted outside of the if else (titleIsBlank) and do a consolidated return..
i.e.
if (titleIsBlank) {
title = getTitle()
isDeleted = notebook.deleteNote(index)
} else {
isDeleted = notebook.deleteNote(title)
}
if isDeleted
return success else return unsuccessful
79 (commented on others PR)
Is there a need to new the array list here?
80 (commented on others PR)
No need to have this variable here. If title is blank, you can reuse the variable "title" and assign the title here. At the end you will only need 1 return Formatter.formatString(ARCHIVE_NOTE_MESSAGE + title);
81 (commented on others PR)
Why is there a need for archivedNotesList? Since all the note can only have unique names, wont it only return 1 note object? There is a getNote(title) function in notebook, you can use that instead.
82 (commented on others PR)
getNotes.get(i) can be replaced with getNote(i)
83 (commented on others PR)
Is there a need to new the arrayList here? Ideally, ListNoteCommand should just call a function in notebook, say getNotes(bool isSorted, arrayList>Tag>) (currently is only getNotes(), you can overload it). All logic handling should be within notebook class itself to sort and return the requested arraylist of note. This is also for reusability, having the function in the notebook instead in this ListNoteCommand Class. Do refer to the word doc I shared.
84 (commented on others PR)
All formatting should be inside formatter class. Can change the formatNotebook to formatNotes(arrayList Notes)
85 (commented on others PR)
Similar to my comment for archiveNoteCommand
86 (commented on others PR)
Unused import statement
87 (commented on others PR)
new in the constructor
88 (commented on others PR)
This function shld be split into 2. 1 is getArchivedNotes() where it just return the arrayList. Another function is archiveNote(int index), overloaded with archieveNote(string title). ArchiveNoteCommand will call this function and this function will handle will removing of note from the original list and adding into the archivedNotes arrayList
89 (commented on others PR)
Likwise there should be an function for unarchiveNote(int index), unarchiveNote(string title)
90 (commented on others PR)
91 (commented on others PR)
92 (commented on others PR)
Discussed that archiveNotes(title) should return a boolean to check if the notebook manage to archive the note successfully
93 (commented on others PR)
94 (commented on others PR)
In what situation will this happen?
95 (commented on others PR)
Same comment as ArchiveNoteCommand
96 (commented on others PR)
I think @prachi2023 has this line to display the info for pin note command. Can have the function as getPinnedString()
97 (commented on others PR)
The Boolean notebookToggle can be renamed to isPinned or something similar to better identify its purpose.
98 (commented on others PR)
As discussed, change the parameter ArrayList>Note> to take in a boolean fromOriginalNoteList or something similar and do a if else statement to determine which arrayList to get the note from. Also, consider the case that the note does not exist, what will the stream return?
99 (commented on others PR)
No need for this 1 line function.
100 (commented on others PR)
Handle the case when the noteTitle does not exist.
101 (commented on others PR)
just do notes.remove(index) here
notes.remove(index);
102 (commented on others PR)
archivedNotes.remove(index);
notes.add(unarchivedNote);
103 (commented on others PR)
Similar to archiveNote, handle if title does not exist.
104 (commented on others PR)
No need to have the formattedString if its just passing an empty string into the function.
105 (commented on others PR)
can remove the last parameter for the function. Suggested way:
formattedString = getNoteString(pinnedHeader, pinned);
formattedString = formattedString.concat(getNoteString(unpinnedHeader, unpinned)
106 (commented on others PR)
Change this to a local variable rather than pass in by parameter
107 (commented on others PR)
Why do you use LS? Wont the output have 2 empty lines? and the sides will be broken? i.e.
|| Title ....... ||
>> LS here>>
|| Content...||
>> LS here>>
=========
108 (commented on others PR)
Looks clean now!
109 (commented on others PR)
Realise that this + note.getTagsName can be added when this function is called. i.e. in the command execute
return formatNote(header + note.getTitle + note.getTagsName(), note)
110 (commented on others PR)
There is a formatEvent function in Formatter, use that to format an event object instead of calling event.toStringArray(). Overload it if necessary.
Expected code:
timetable.addEvent(event);
return Formatter.formatEvent(COMMAND_SUCCESSFUL_MESSAGE, event), where formatEvent takes in a header and an event.
111 (commented on others PR)
There is no need for this function here, handle this in Formatter.
112 (commented on others PR)
Handles in formatter.
113 (commented on others PR)
This should be handled in formatter instead of splitting the content here. There is an empty function called formatEvent. Overload if necessary
Suggested: formatEvent(event)
encloseRow("Event: " + event.getTitle();
encloseRow("Date: " + event.date.toString() + "\tTime: " + event.time.toString());
encloseRow("Reminder: " + event.isToRemind);
encloseRow("Repeating: " + isRecurring);
114 (commented on others PR)
As per previous, format in formatter. Can check if the event is an instance of RecurringEvent and enclose the necessary info.
115 (commented on others PR)
As per other comments.
116 (commented on others PR)
Can call formatter to get the expected output, do not have to manually type out. In the event that the format changes, you do not have to edit the format here.
expected = Formatter.formatEvent(SUCCESSFUL_MESSAGE, event)
117 (commented on others PR)
Maybe can overload another formatEvent to take in Header as one of the parameter. That way, just have to call 1 format function.
118 (commented on others PR)
Likwise, same as above
119 (commented on others PR)
Do the enclosing here and just make it return the formatted string straightaway. Can overload it to take in a header for printing 1 event.
120 (commented on others PR)
Likewise, returns the formatted string
121 (commented on others PR)
Noted on this.
122 (commented on others PR)
Noted.
123 (commented on others PR)
3 MD
124 (commented on others PR)
125 (commented on others PR)
2 MD
126 (commented on others PR)
Tag Notes
----
5 MD
]
127 (commented on others PR)
5 MD
128 (commented on others PR)
2 MD
129 (commented on others PR)
2 MD
130 (commented on others PR)
2 MD
131 (commented on others PR)
2 MD
132 (commented on others PR)
Why did you remove this variable? I thought it is needed to differentiate the notes when saving to txt file? Or is the archived note list saved in a separate txt file?
133 (commented on others PR)
Ya, I am referring to loading from text file, what differentiates them to be loaded into respective array list?
134 (commented on others PR)
I have went through her code, the boolean is still needed. When loading from text file, it uses Parser to create a new AddNoteCommand, inside Notebook the addNote(note) function can have an if else, based on the boolean isArchive and then add into the respective arrayList.
135 (commented on others PR)
Is the boolean added back in? Looks like it's still removed.
136 (commented on others PR)
You may want to have an arraylist of note for the expected output and then use the Formatter.formatNotes. In the event that the format changes, you do not have to manually change the expected string again.
137 (commented on others PR)
All expected string can use the Formatter functions, for this case encloseString(title). Since the purpose of the command test are to compare the result and not the formatting, it is ok to just use those functions.
138 (commented on others PR)
Likewise
139 (commented on others PR)
He did that in the execute return, since this is a private static final, the time period cannot be added here.
140 (commented on others PR)
This should be formatEvents or formatTimetable. See suggestion for formatEvent(event) in the #108
141 (commented on others PR)
These functions can just sort and compare the events and eventually just return an arrayList of event.
142 (commented on others PR)
Possible to change the parameter such that it takes in an arrayList of events instead of HashMap>Month, HashMap>Integer, ArrayList>Event>>> timetable?
143 (commented on others PR)
In terms of reusability:
for (Event event: events) {
formattedString = formattedString.concat(formatEvent(event));
}
144 (commented on others PR)
There is not much difference, I use concat mainly because intellij will give warning for using += in loop, so I use concat for all cases.
145 (commented on others PR)
If thats the case, I think can leave it. The only concern is that the data struct looks complicated.
146 (commented on others PR)
Why does loadAll function takes in storageManager as one of the parameter?
147 (commented on others PR)
Why is there a getNoteContent here since it is adding a new note? I believe the line below that @Nazryl added is to pass his JUnit test.
148 (commented on others PR)
Would there be any difference if saveNote is not a static function? Since all command classes contains a storageManager object, all are able to access this function.
149 (commented on others PR)
Can use Formatter.LS if this is a line separator.
150 (commented on others PR)
I see the reason you pass in storageManager is only for setData. Can replace it with 'this' so that this function does not need the StorageManager parameter.
command.setData(notebook, timetable, tagManager, this);
151 (commented on others PR)
@R-Ramana The boolean for isArchive is still needed for loading.
152 (commented on others PR)
Currently we have 2 arraylist, 1 for all the notes and 1 for archived notes. Need another loop for the getArchivedNotes()
@R-Ramana Here is the saving part.
153 (commented on others PR)
This is a temporary suggestion I provided her. Attritbute.BRIGHT_COLOR_TEXT().toString cannot be used as case expression because they are not constant. There is another way to use switch, but since its related to color, I will edit on my side.
154 (commented on others PR)
What error? I tried and it works.
155 (commented on others PR)
Can declare this as a const?
156 (commented on others PR)
Can remove it since its not used anymore right?
157 (commented on others PR)
formattedString = formattedString.concat(encloseRow(EMPTY_SPACE + truncatedContent));
158 (commented on others PR)
int offsetSet = stringBeforeReset.indexOf(POSTFIX);
159 (commented on others PR)
This 2 can keep as well
160 (commented on others PR)
If there are no reminders, it will add a none, then would the output be: "None reminder"? Sounds a little weird.
161 (commented on others PR)
Why is there 2 notes of the same title? This shld not be accepted when adding note.
162 (commented on others PR)
Is this function called in other methods? Changing this boolean may affect the output of others. Also, from the parameter name, it sound logical that if it is not isArchive, it will search through the notes arrayList as described in the JavaDoc comment.
163 (commented on others PR)
Suggested change should be inside the archiveNotes(String noteTitle) under notebook.
Note archivedNote = getNote(noteTitle, true); ----> Note toBeArchiveNote= getNote(noteTitle, false);
164 (commented on others PR)
Suggestion for the message to just displayed "pinned" or "unpinned" without the " | ISPIN: ". Likewise for archive, can display "Archived" for archive notes
165 (commented on others PR)
I feel that can return "" for unarchived, don't really need to state that a normal note is unarchived
166 (commented on others PR)
use equalsIgnoreCase instead?
167 (commented on others PR)
Miss out the "/
FileHandler fileHandler = new FileHandler(LOGS_DIR + "/HelpCommand.log");
168 (commented on others PR)
Use list of notes instead of notebook since there is only 1 notebook but 2 arraylist of notes. Using default/archive notebook may give a wrong idea.
- getNote(`String`) checks if the note of the specified title exists in the notebook's default list of notes and returns a `boolean` value.
- getNote(`String`, `boolean`) checks if the note of the specified title exists and returns a `boolean` value. The `boolean` acts as a flag to determine which of the list of notes (default/archived) in the notebook, will be streamed and filtered.
169 (commented on others PR)
Likewise for all the description below.
170 (commented on others PR)
This 2 should not be tested here as there is a function that checks for invalid string. You can move these 2 there. For the test here all command word, "archive-n", should be correct. It should be the parameter that varies which will result in the IncorrectCommand being return. Cases to consider:
archive-n /i 0
archive-n (no parameter)
171 (commented on others PR)
Likewise as above
172 (commented on others PR)
Is this the correct function name?
173 (commented on others PR)
The inputString is not changed? Likwise there are few calls but the inputString wasnt changed.
174 (commented on others PR)
Can link it to the specific segment in the UG and DG
175 (commented on others PR)
I think can exclude the default getters and setters keep the remaining logic functions
176 (commented on others PR)
Can link it to the UG and DG portion
177 (commented on others PR)
Can consider to link to the actual section of the UG
178 (commented on others PR)
Since this test is on archive note, there is no need to create file. It just need a storageManager object.
179 (commented on others PR)
Likewise, there is no need to create files here.
180 (commented on others PR)
Ah ok
181 (commented on others PR)
Note the Figure no.
182 (commented on own PR)
yup it should! I just generate a template test class therefore it consists of the execute function inside. All the test functions should be renamed accordingly.
183 (commented on own PR)
The intellji gave warning saying that the field may be final so I changed it. Will be reverting that since the int cannot be final. Likewise for the rest of the similar cases below
184 (commented on own PR)
For this, because the user can choose not to input the sort parameter, therefore the Boolean can hold a null value, which is used to check later
185 (commented on own PR)
Don't really think there is a need for a function because this help string will be a constant. Can actually merge with the declaration of the HELP_STRING. @R-Ramana your view?
186 (commented on own PR)
My intent is sort by usage. Noted on the separation.
187 (commented on own PR)
No worries
188 (commented on own PR)
This one is the ide auto ident to next line.
189 (commented on own PR)
This is for tag-e
190 (commented on own PR)
This is deleting of the tag and not untagging. Will update the content.
191 (commented on own PR)
Noted. Will edit it
192 (commented on own PR)
Currently adding of note doesn't check if the title match any archive notes. So I added this. Refer to my changes in AddNoteCommand
193 (commented on own PR)
Just for standardization since all are using '-'
194 (commented on own PR)
I updated this. Will ask for re-review when I complete all changes.
195 (commented on own PR)
196 (commented on own PR)
Noted.
197 (commented on own PR)
Noted.
198 (commented on own PR)
Noted thanks!
199 (other comment)
Failed CheckStyleTest
200 (other comment)
Have you pulled the latest version? There seems to be conflict between the versions.
201 (other comment)
Yup I will close it.
202 (other comment)
Btw can we add the .log files into gitignore. Everyone can generate their .log file on their own local copy.
203 (other comment)
Trying another fix for this
204 (other comment)
I will leave this open until until I find a better fix.
205 (other comment)
Will not close previously linked issue.
206 (other comment)
This is not a bug. Intellji prints white font as black and vice versa. See attached image to change it such that it displays the correct color on intellji
207 (other comment)
Yup!
208 (other comment)
Yup yup
209 (other comment)
Implements #98
210 (other comment)
Closed by #136 and #117
211 (other comment)
@Nazryl
Suggested fix: remove the index-- after handling the PREFIX_INDEX because there is another check for the index value after the for loop. The check is needed in case the user did not enter "/i ...."
return new EditNoteCommand(index - 1, note, addLists, editLists, deleteLists, isInput);
212 (other comment)
@prachi2023 The step to reproduce the bug is wrong, it should be changing the title manually in notebook.txt. Thus, when loading, it attempts to read an non-existent txt file and the content is empty. Maybe can do an error handling. When loading, if it is unable to find the note txt file, skip it. Also do a save all at the exit of Notus.
213 (other comment)
@prachi2023 Can change the message to be "title" pinned/unpinned.
214 (other comment)
@R-Ramana likewise for archiveNote,
unarchiveNotes function in notebook, the getNote(noteTitle, false) should be getNote(noteTitle, true)
215 (other comment)
Unable to reproduce bug, more test required. Possible scenario is that there exist a "JavaDocs" note that is archived therefore list-n does not show that note. May have to modify the 1st error message to indicate that the note is archived or unarchived.
216 (other comment)
User entered wrong command, should be "tag-n" instead of "tag"
217 (other comment)
Requested clarification from user.
218 (other comment)
See #168
219 (other comment)
Suggest to remove the screenshot?
220 (other comment)
Update UG
221 (other comment)
Update UG
222 (other comment)
Update UG
223 (other comment)
Update UG
224 (other comment)
Could be terminal issue.
225 (other comment)
Unable to reproduce bug. Requested additional info from the user.
226 (other comment)
#168
227 (other comment)
https://github.com/0xZ3RO/ped/issues/2#issuecomment-719929063
228 (other comment)
Not sure if splitting the screenshots can help increase the font size, can try that first.
229 (other comment)
Looks ok to me
230 (other comment)
I think the message shown here is acceptable since the programme interprets the whole thing as the index.
231 (other comment)
https://github.com/BenardoTang/ped/issues/3#issuecomment-719963536
232 (other comment)
No reply.
233 (other comment)
It's terminal issue, I have specified in the UG. I will close this once my PR merge.
234 (other comment)
closes by #196
@R-Ramana
(173 comments)1 (commented on others PR)
If it is a test method should we not follow the following naming conventions?
whatIsBeingTested_descriptionOfTestInputs_expectedOutcome
OR
testMethodName
2 (commented on others PR)
Maybe can update this to COMMAND_USAGE to be clearer on what this String is for 😃
3 (commented on others PR)
private static final String DELIMITER = "|";
4 (commented on others PR)
public int getSize() {
5 (commented on others PR)
+ DELIMITER
6 (commented on others PR)
+ DELIMITER
7 (commented on others PR)
return notes.get(index);
8 (commented on others PR)
Thanks for updating on my behalf 😃
9 (commented on others PR)
As mentioned above
private final String COLOR;
10 (commented on others PR)
Private final right, so should be all CAPS? Can just commit directly from my suggestion 😄
private final int INDEX;
11 (commented on others PR)
Same as above
private final ArrayList<Tag> TAGS;
12 (commented on others PR)
Thought I made the same changes in my previous PR haha
13 (commented on others PR)
Should it be TAGMAP?
private final Map<Tag, ArrayList<Note>> TAGMAP;
14 (commented on others PR)
Just a minor indentation issue. For all my suggestions, if you are okay with it, feel free to commit directly, using the "commit suggestion"! 😃
public static final String COMMAND_WORD = "add-n";
15 (commented on others PR)
* @param note refers to the note to be added.
16 (commented on others PR)
Can we add some 1 line comments to explain what the if-else block is doing?
17 (commented on others PR)
I don't see the System Exception being thrown in the method?
18 (commented on others PR)
Remind the person who is working on AddEvent not to forget this part! 👍
19 (commented on others PR)
* @param userMessage Original string user inputs.
* @throws SystemException if an error occurs.
20 (commented on others PR)
* @throws StringIndexOutOfBoundsException if an error occurs.
* @return A string of converted content input
21 (commented on others PR)
* @throws SystemException if an error occurs.
* @return Result of the delete note command
22 (commented on others PR)
Same as before, please remind the person for AddEventCommandTest
23 (commented on others PR)
Good call!
24 (commented on others PR)
This part is not yet completed?
25 (commented on others PR)
Made the code more concise. Feel free to commit the suggestion directly
+ "the index that is indicated when you print the event list"),
26 (commented on others PR)
Don't think the delimiter is necessary
String dateString = "Date: " + date.toString() + "Time: " + time.toString();
27 (commented on others PR)
Use InterfaceManager.LS to standardize for new lines.
return titleString + InterfaceManager.LS
+ dateString + InterfaceManager.LS
+ remindString + InterfaceManager.LS
+ repeatingString;
28 (commented on others PR)
Added a new line
* @param input User input to be parsed
29 (commented on others PR)
InterfaceManager.LS to standardize new lines.
return "Added the following!" + InterfaceManager.LS
+ InterfaceManager.LS + event.toString();
30 (commented on others PR)
Same as above.
public static final String COMMAND_SUCCESSFUL_MESSAGE = "Event deleted:" + InterfaceManager.LS;
31 (commented on others PR)
Can include the system exception also
* @param index Index to be removed.
* @throws SystemException
32 (commented on others PR)
Added a line break
* Gets the timetable for a specified month and year. Includes multiple recurrent events.
33 (commented on others PR)
Same as above + phrasing error.
* Given an ArrayList of events, get all events that will occur during the specified time period.
34 (commented on others PR)
Added line break
import seedu.duke.command.ViewNoteCommand;
35 (commented on others PR)
import seedu.duke.data.timetable.DailyEvent;
import seedu.duke.data.timetable.Event;
import seedu.duke.data.timetable.MonthlyEvent;
import seedu.duke.data.timetable.RecurringEvent;
import seedu.duke.data.timetable.WeeklyEvent;
import seedu.duke.data.timetable.YearlyEvent;
import java.time.LocalDateTime;
36 (commented on others PR)
Added a line break
* string trimmed.
37 (commented on others PR)
Same as above
* for it to be recurring and to set reminders of the event.
38 (commented on others PR)
Maybe can add this in the JavaDoc
39 (commented on others PR)
Added Line break
* @param userMessage User Input without the action word
40 (commented on others PR)
Fair enough!
41 (commented on others PR)
Just minor phrasing
* Provides a description of how the command should be used.
*
* @return a string description of how the command should be used.
42 (commented on others PR)
Removed extra line
43 (commented on others PR)
If final I think it should be in caps
private final LocalDate END_RECURRENCE;
private final String RECURRENCE_TYPE;
44 (commented on others PR)
endRecurrence should be all caps right if this is for the final? Think got a few files to amend in that case
45 (commented on others PR)
Is the throws SystemException necessary here? I don't see it being thrown.
public void deleteNote(int note) {
46 (commented on others PR)
Remove extra line
47 (commented on others PR)
Should we throw the SystemException here?
private Command prepareViewNote(String userMessage) throws SystemException {
48 (commented on others PR)
Think maybe we can have this at the very beginning?
private static final String WELCOME_MSG_STRING = "Welcome to NotUS! Type \"help\" if you need to see a list of commands and their usages.";
49 (commented on others PR)
I feel this breaks the flow.
private static final String COMMAND_UNSUCCESSFUL_MESSAGE = "There are no matching notes. "
+ "Please try another search query.";
50 (commented on others PR)
@brandonywl Yup, so when I was using Boolean it was because there are 3 cases. Default (which is chronological order), ascending or descending. Hence I wanted to use Boolean which can hold true, false and null! boolean on the other hand cannot hold the null value.
51 (commented on others PR)
Should we sort this by alphabetical order? I mean not a big issue, but if needed, I can do it in my next push? Or if you prefer to sort by usage, then maybe have a line break between each use group?
52 (commented on others PR)
If we are splitting by space, should we use a whitespace regex?
String[] tagInfo = tagsInfo.split("\\s+", 2);
53 (commented on others PR)
title = checkBlank(infoDetails[1], exception);
54 (commented on others PR)
To standardize with the rest of the new lines
String stringToPrint = note.getTitle() + InterfaceManager.LS;
55 (commented on others PR)
Same as above
stringToPrint += tag.toString() + InterfaceManager.LS;
56 (commented on others PR)
To standardize with your other PR
private static final String INDEX_OUT_OF_RANGE_MESSAGE = "Index is out of range.";
57 (commented on others PR)
Same as above
58 (commented on others PR)
Think you can make this statement clearer, and missing param
59 (commented on others PR)
Add @param for the javaDoc?
60 (commented on others PR)
Add @param for the javaDoc?
61 (commented on others PR)
Add @param for the javaDoc?
62 (commented on others PR)
Add @param for the javaDoc?
63 (commented on others PR)
Would this be possible?
result += InterfaceManager.LS.repeat(2);
64 (commented on others PR)
I feel like there is arrow-head coding here. Would this work?
if (reminders.size() == 0) {
return result += "No reminders today!";
}
boolean first = true;
for (Reminder reminder : reminders) {
if (!first) {
result += InterfaceManager.LS;
}
first = false;
result += reminder.toString();
}
65 (commented on others PR)
EXCEPTION_INVALID_LIST_TIMING_FORMAT("Your input list timing query has a wrong format. "
66 (commented on others PR)
EXCEPTION_INVALID_TIMING("Your input has a wrong format for the date time input. "
67 (commented on others PR)
EXCEPTION_INVALID_REMINDER_FORMAT("Your input has a wrong format for the time before reminder. "
68 (commented on others PR)
EXCEPTION_INVALID_RECURRING_TYPE("There are only the following recurring types: "
69 (commented on others PR)
EXCEPTION_INVALID_TIME_UNIT("That time unit is not accepted!"),
70 (commented on others PR)
Do we assert here? I think assert at a Test Class right?
71 (commented on others PR)
Whitespace
*
* @param title Title of event.
72 (commented on others PR)
Added whitespace
String dateString = "Date: " + date.toString() + "\t Time: " + time.toString();
73 (commented on others PR)
Again looks like arrow-head coding. Can we try this?
}
comp = time.compareTo(o.time);
if (comp != 0) {
return comp;
} else {
return title.compareTo(o.title);
}
74 (commented on others PR)
* @param dateToRemind Date of reminder
75 (commented on others PR)
Seems like you are not using the userMessage
return prepareRemind();
76 (commented on others PR)
Actually if you have nothing to prepare why don't you return this directly at the parser switch case above?
private Command prepareRemind() {
return new RemindCommand();
77 (commented on others PR)
Added Whitespace
*
* @return Instantiated Timetable with 1 event.
78 (commented on others PR)
Added Whitespace
*
* @return Instantiated Timetable with 4 default events.
79 (commented on others PR)
Added Whitespace
* Wrapper around assertEquals for code readbility.
*
80 (commented on others PR)
For more clarity
* @param tagName Name of the tag to be set.
* @param tagColor Color of the tag to be set.
81 (commented on others PR)
Feels like a little bit of arrowhead coding. Jun Xiang has a good suggestion to reduce it.
82 (commented on others PR)
noOfChar feels a little hard on the eye. Can I suggest something else?
public static void deleteLine(StringBuilder commandInput, String characters, int charCount) {
83 (commented on others PR)
* @param charCount Number of character. 0 to remove new line, 1 to resume typing on the same line.
84 (commented on others PR)
Easier to make changes if needed - using markdown syntax
**Prerequisites:**
* JDK 11
* IntelliJ IDE
85 (commented on others PR)
Import the project as a **Gradle project**.
86 (commented on others PR)
**NotUS** manages the flow of the application. On launch, it will create the necessary components, as listed above
87 (commented on others PR)
**Parser**
88 (commented on others PR)
1. Receives the user input message as a whole.
1. Interprets the type of command and splits the message to identify all the parameters provided.
1. Creates and returns the Command class respectively.
{insert Parser.puml here}
**Command** classes
89 (commented on others PR)
All of our Javadocs was @param parameter definition. There was no additional whitespace to align the columns. If we are doing this, should we then standardize for all JavaDocs? Would it be easier to just have a single space?
90 (commented on others PR)
Same as in the previous PR, can consider concat for standardization
91 (commented on others PR)
Same as the previous PR, can consider the following
result.set(result.size()--, result.get(lastIndex) + endRecurrenceString);
92 (commented on others PR)
I think this can come under the last subsection under section 2
93 (commented on others PR)
Don't think the PinCommand is created by the parser function right? Maybe can phrase it better?
94 (commented on others PR)
1. Toggles the pinned status of the specified note.
95 (commented on others PR)
1. Returns the title as well as the pinned status of the note.
96 (commented on others PR)
Yeap I guess! But this one can leave out for now. Jun Xiang will be modifying the Parser command to make our code reflect more OOP
97 (commented on others PR)
So when we used String in the formatter class, we have been using .concat(). Might want to consider doing these += as concats (in the Formatter class)
98 (commented on others PR)
If you are not using the lastIndex anywhere else maybe can consider
result.set(result.size() - 1, result.get(lastIndex) + endRecurrenceString);
99 (commented on others PR)
Maybe can add the time period parameter?
100 (commented on others PR)
Not much as Jun Xiang mentioned, but I think it would be better if we can standardize the code 👍
101 (commented on others PR)
Would you be able to create a StorageManager storageManager variable and access storageManager.saveNote(note)?
102 (commented on others PR)
Put "unable to write file" as a COMMAND_UNSUCCESSFUL type variable. Then pass that variable instead
103 (commented on others PR)
EXCEPTION_FILE_CREATION_ERROR("Unable to create the file!"),
EXCEPTION_FILE_NOT_FOUND_ERROR("Unable to find the file!"),
EXCEPTION_FILE_DELETION_ERROR("Unable to delete the file");
104 (commented on others PR)
@prachi2023 FYI, have re-added it in the Note class. Please take a look if you need to use.
105 (commented on others PR)
Can we use a switch statement?
106 (commented on others PR)
INDEX STRING
is not very clear on what it does. Do you think we can use something like Line number or something?
107 (commented on others PR)
As mentioned previously, I don't think the other JavaDoc comments had white space. Maybe we should standardize?
108 (commented on others PR)
Not 100% sure if a user will understand what exactly Missing line content is. maybe can phrase it better?
109 (commented on others PR)
As above for the whitespace
110 (commented on others PR)
As above for the whitespace
111 (commented on others PR)
//@@author prachi2023
112 (commented on others PR)
//@@author prachi2023
113 (commented on others PR)
The ParserManager manages the creation of specific parser objects based on the type of command. The parser then makes sense of the user input and calls the respective commands into action.
114 (commented on others PR)
1. Interprets the type of command and creates the respective parser for each command.
115 (commented on others PR)
1. `ParserManager`: Creates a suitable parser, based on the command, to make sense of user message. The respective parsers then make sense of the information and calls the respective commands.
116 (commented on others PR)
💡 Note that the alternate paths in the sequence diagram above are not exhaustive. There is an alternate path for each unique command. As there are too many paths, they are omitted from the diagram. The Command objects in the diagram are used to represent a generic Command object that is created through the Parser. Refer to the next figure for more details.
117 (commented on others PR)
Notes and Events inherit from the abstract class, TaggableObject, and TagManager contains a map of individual unique tags to an ArrayList of TaggableObjects. The TagManager handles the creation, deletion as well as the tagging and untagging of tags from notes or events.
118 (commented on others PR)
### <a id="tag-n"><ins>3.13 Tag/Untag Notes:</ins> `tag-n`</a>
119 (commented on others PR)
💡 If the user tries to tag a non-existing tag to a note, the application will automatically create a new tag, and add the tag to the note.
120 (commented on others PR)
`tag-n /i 1 /tag CS2113`
`tag-n /i 1 /tag CS2113 /tag important`
121 (commented on others PR)
### <a id="tag-e"><ins>3.14 Tag/Untag Events:</ins> `tag-e`</a>
122 (commented on others PR)
💡 If the user tries to tag a non-existing tag to a note, the application will automatically create a new tag, and add the tag to the note.
123 (commented on others PR)
`tag-e /i 1 /tag CS2113`
`tag-e /i 1 /tag CS2113 /tag important`
124 (commented on others PR)
Only tags? Can we do it for events as well?
125 (commented on others PR)
My apologies, I copy-pasted from the change I made for tag-n then forgot to update it.
126 (commented on others PR)
Since this is not part of the code and people refer to the diagram, not so much of this code, so I think can remove all the whitespace (extra lines) since it is inside the enum.
127 (commented on others PR)
💡 Each note has to have a **UNIQUE** title and it is **CASE-INSENSITIVE**.
128 (commented on others PR)
Not sure if the line break is necessary, don't think some of it has? Should probably standardize
129 (commented on others PR)
What is this used for?
130 (commented on others PR)
Yea I realized but I forgot to remove this comment! But yeap thanks!
131 (commented on others PR)
Why didn't you modify the getPinnedString to return this instead of Y/N?
132 (commented on others PR)
Great! Approved for merging
133 (commented on others PR)
💡 Set `ISPIN` to "true" if you want the note to be pinned. Any other input value will leave the note unpinned.
💡 Set `ISARCHIVE` to "true" if you want the note to be archived. Any other input value will leave the note unarchived.
134 (commented on others PR)
colorize("This note can be found in the archived list! ", RED);
135 (commented on others PR)
Just to confirm, getPinnedString returns a string value and getIsArchived returns a boolean value. Just raising this to confirm your intention was to use getPinnedString and not getIsPinned? 👍
136 (commented on others PR)
💡 Note content must have at least 1 line.
137 (commented on others PR)
💡 Note content must have at least 1 line.<br>
138 (commented on others PR)
In that case, might be better to standardize to have both returning the boolean value.
139 (commented on others PR)
Command used to add notes.
140 (commented on others PR)
Command used to pin/unpin notes.
141 (commented on others PR)
💡 Each note has to have a **UNIQUE** title and it is **CASE-INSENSITIVE**. <br>
💡 As an extension to the above point, new notes cannot have the same title as those archived. <br>
142 (commented on others PR)
💡 Each note has to have a **UNIQUE** title and it is **CASE-INSENSITIVE**. <br>
💡 As an extension to the above point, new notes cannot have the same title as those archived. <br>
143 (commented on others PR)
If it is the exact same phrase, why do need two separate names for the variables?
144 (commented on others PR)
Feels like too many nested if block. Can you consider an alternative way to get the same output?
145 (commented on others PR)
There is a way to gitignore all the TagManager.log files
https://www.atlassian.com/git/tutorials/saving-changes/gitignore
146 (commented on others PR)
Markdown does auto numbering 😃
1. AddEventCommand Sequence Diagram
1. RemindCommand Sequence Diagram
1. Timetable and Event Class Diagram
147 (commented on others PR)
Look at my PPP to see how this is done. And look at the recommended roles & responsibilities all the way at the bottom of the link.
148 (commented on others PR)
Why was this change made ah? I don't think there is a difference to the output right?
149 (commented on others PR)
💡 Supported terminals are: Windows 10 Command Prompt, Windows Powershell, macOS and Linux Terminals. Other terminals, such as Cygwin may not support color display.
150 (commented on others PR)
💡 Supported terminals are: Windows 10 Command Prompt, Windows Powershell, macOS Terminal, and Linux Terminal. Other terminals, such as Cygwin may not support color display.
151 (commented on others PR)
Can verify this again? Looks off.
152 (commented on others PR)
- [TAG_COLOR] is an optional input to specify the tag color to display. The possible colors are red, green, blue, yellow, purple, cyan, white. If no color is specified, or an invalid input is entered, the color of the tag will be set to the default white color. This applies to all other inputs that have `/tag TAG [TAG_COLOR]` as an optional field as well.
153 (commented on others PR)
Not the content haha, line 91 just ends with "due to the limitation of".
154 (commented on others PR)
Btw, can you add a picture of yourself? Also update the "??"
![](https://avatars3.githubusercontent.com/u/28587601?s=400&v=4) | Brandon Yeow | [Github](https://github.com/brandonywl) | [Portfolio](team/brandonywl.md) | ?? |
155 (commented on others PR)
Maybe can state what the five arrays are? I believe you will elaborate on them later in the doc right? So just list out the five?
156 (commented on others PR)
1. Set up and designed the architecture used for Event scheduling in the timetable.
- Handled `Event`, `RecurringEvent`, `Timetable`, `Reminder` and other relevant `Command` subclasses for Event scheduling functionality.
- Event functionality was designed with scalability in mind. Immutability was largely enforced to ensure consistency of Events even across re-occurrences.
1. Implemented Single-Responsibility-Principle, Tell-Don't-Ask, and Liskov Substitution Principle in Designs.
- Designed to reduce circular dependencies to reduce coupling.
1. Assisted in the development of two common `Parser` methods.
157 (commented on others PR)
Maybe elaborate on the features. (Refer to Jun Xiang's md/PR - depending on the time you are looking at this comment)
[Reposense Link](https://nus-cs2113-ay2021s1.github.io/tp-dashboard/#breakdown=true&search=&sort=groupTitle&sortWithin=title&since=2020-09-27&timeframe=commit&mergegroup=&groupSelect=groupByRepos&checkedFileTypes=docs~functional-code~test-code~other&tabOpen=true&tabType=authorship&tabAuthor=brandonywl&tabRepo=AY2021S1-CS2113-T13-1%2Ftp%5Bmaster%5D&authorshipIsMergeGroup=false&authorshipFileTypes=docs~functional-code~test-code~other)
### Contributions to User Guide
1. Maintain portions on commands related to Events.
- `add-e`
- `edit-e`
- `list-e`
- `delete-e`
- `remind-e`
158 (commented on others PR)
If no community involvement can remove. But IIRC, the code reviews should come under this section
(https://nus-cs2113-ay2021s1.github.io/addressbook-level3/team/johndoe.html)
159 (commented on others PR)
Not using anywhere?
160 (commented on others PR)
I don't think this is what the community is for. Can refer to the link to see how it is written.
161 (commented on others PR)
Need to elaborate on your functions. Look at my PPP or Jun Xiang's to get an idea (PPP or PR depending on what time you see it).
162 (commented on others PR)
Can include your storage as well! 😃
163 (commented on others PR)
Not very clear about I/O. Maybe you can elaborate?
164 (commented on others PR)
just throw the error message?
165 (commented on others PR)
Same as above
166 (commented on others PR)
Suggestion below.
1. Implemented `TaggableObject` class which is inherited by `Note` and `Event`.
- Taggable objects can have multiple tags and different Taggable objects can share same tag(s). They can also be filtered by their tags.
1. Implemented `Tag` class which contains the name and of the tag and its color.
- Added color support for user to better differentiate the tags.
1. Implemented `TagManager` class which manages all the tags in application.
- A hashmap is used where each unique tag are the keys and the arraylist of taggable objects that share the same tag are the mapped values.
1. Implemented the functionality to create tag, delete tag, as well as tag or untag taggable objects.
1. Implemented `ParserManager` class which manages the creation of different parser functions to parse the user input to the required parameters.
1. Implemented `SystemException` class which extends from `Exception` class.
- Within it, there is an enumeration for all possible types of exception that may occur and each enum value contains a unique string as its message.
1. Implemented `Formatter` class which formats the different objects, such as Note, Event and String with a specified layout into a String to be printed.
167 (commented on others PR)
Could add v2.1 since you are most probably gonna do it anyways
168 (commented on others PR)
If you are using the GitHub stats for PRs reviewed by you. Some of these PRs are authored by you (because of your responses) so you might want to double-check and do a manual count.
169 (commented on others PR)
I haven't merged yet, you can look at my PR but I think we need to give a brief explanation of what each feature does, why, and how it helps the user.
170 (commented on others PR)
Can remove the link
171 (commented on others PR)
<p align="center">
172 (commented on others PR)
<p align="center">
173 (commented on others PR)
[Kanban boards](https://en.wikipedia.org/wiki/Kanban_board) are a feature used under the Projects section of each GitHub repository, and are extremely useful in providing an overview of the current state of the project. Additionally, it tracks the work at various stages of the project, giving the team a better sense of what was accomplished and what was left to be done.
174 (commented on own PR)
Addressed 👍
175 (commented on own PR)
Will not print, will return a String instead
176 (commented on own PR)
Because I fear if we do just "TAG" the person might assume it is only for 1 tag. What I can do is PREFIX_TAG + " TAG " + PREFIX_TAG + " TAG "...
to show that they can add multiple tags? Would that be better?
177 (commented on own PR)
addressed!
178 (commented on own PR)
Yup, good point! Converted
179 (commented on own PR)
Okay, made the changes will push
180 (commented on own PR)
Yup doesn't work. So will not be making this change
181 (commented on own PR)
You are right, my bad! Thanks
182 (commented on own PR)
Could've just returned the string actually
183 (commented on own PR)
Already in the code
184 (commented on own PR)
Will do so with my next PR!
185 (commented on own PR)
Good idea. Will do so (referring to both of your suggestions)!
186 (commented on own PR)
getNotetitle() returned a boolean, I have changed it but I have decided to overload it.
187 (commented on own PR)
This function isn't for me/nor did I create it. Used in DeleteNoteCommand
188 (commented on own PR)
In that case, this function would actually be redundant, could just call the getNoteString directly
189 (commented on own PR)
Discussion taken off GitHub
190 (commented on own PR)
3 MD
191 (commented on own PR)
3 MD
192 (commented on own PR)
No need to check for is archived in my implementation. The note will either be in the archived notebook or in the main notebook. When archiving/unarchiving, the note will be removed and added to the respective notebooks.
193 (commented on own PR)
How is the files being loaded currently? It traverses notes (from notebook) right? Can just make it traverse both notes and archivedNotes?
194 (commented on own PR)
Will add it back in that case
195 (commented on own PR)
Updated, requesting for a final review prior to merging
196 (commented on own PR)
Could have but I just keep it, in case we need it. Can remove it during the code cleanup if confirm not needed
197 (commented on own PR)
Will do in the next round of changes
198 (commented on own PR)
Discussion taken out of GitHub
199 (other comment)
A pull request was merged addressing this issue, but did not link the issue to the PR correctly. Hence a need for manual closing of the issue.
200 (other comment)
A pull request was merged addressing this issue, but did not link the issue to the PR correctly. Hence a need for manual closing of the issue.
201 (other comment)
I realized that the test methods did not follow the coding standards. Just make the changes in your next PR 😃
202 (other comment)
Created PERT and Gantt charts.
203 (other comment)
Btw can we add the .log files into gitignore. Everyone can generate their .log file on their own local copy.
Can. will make the changes in my next commit.
204 (other comment)
Closed as completed with PR #102
205 (other comment)
Its fixed on my side. I havent commited.
Noted! Feel free to close the issue when you make the PR.
206 (other comment)
Greater clarity included in the User Guide to address this issue.
207 (other comment)
Suggest to remove the screenshot?
If we remove, should we remove from all? Doesn't make sense for one command not to have an expected output! Or maybe we split into two screenshots, half and half?
208 (other comment)
Update UG
This is Prachi's code. Can either update the UG or can modify the code to return a warning, when 2 parameters have been entered.
209 (other comment)
Not sure if splitting the screenshots can help increase the font size, can try that first.
I have increased the font size on the command line settings and also split the screenshots into 2. It should be much better now. Take a look at the document, let me know if any of the other images need similar replacement by replying to this message. Thanks. If no others, can help me close this issue 😃
210 (other comment)
- #154
- #167
- #172
If your intention was to close the issue this doesn't do it. You need to use the following format:
Closes #num1
Closes #num2
For more examples and usage of other keywords refer to the following document.
211 (other comment)
Unable to reproduce bug. Requested additional info from the user.
Is there a response?
212 (other comment)
Could be terminal issue.
Is there a fix for this on our side, or can the issue be closed?
213 (other comment)
@prachi2023 Can you see if you can replicate this? If cannot, just close this issue!
214 (other comment)
Last feedback addressed with #210
Will close this issue.
@kstonekuan
(124 comments)1 (commented on others PR)
LGTM, well done!
2 (commented on others PR)
Thanks for helping me to remove this, forget to do it on my side!
3 (commented on others PR)
Hey, I think we might as well just keep the interfaces for easy reference to the behaviors
4 (commented on others PR)
Looks good! Might be good to add some JUnit tests for this class now even if they just assert true for now, just to keep in mind our desired behavior for each method
5 (commented on others PR)
Good use of packages
6 (commented on others PR)
Good catch, forgot to include this.
7 (commented on others PR)
I think this one may have to be "options" as it is a collection. When we call an instance of the OptionList we can probably call that optionList
8 (commented on others PR)
Good idea but may be redundant as we can call "length()" on the ArrayList
9 (commented on others PR)
Thanks for adding this for me
10 (commented on others PR)
Thanks for changing this LGTM
11 (commented on others PR)
Thanks for moving this for me
12 (commented on others PR)
Maybe we can move this into the "quiz" case next time so we don't check for the command twice
13 (commented on others PR)
Remember to initialize this next time as well
14 (commented on others PR)
sorry I mean to comment on ui, didn't know the top part got included
15 (commented on others PR)
Thanks for adding this but would be good to use a separate branch next time
16 (commented on others PR)
Good idea to separate these responsibilities to two different classes
17 (commented on others PR)
I see what you are trying to do here but is there a reason for this class to be different from the other displayables and do we need this extra method?
18 (commented on others PR)
I think you should try not to depend on this class in to create the QuizQuestionList object as this violates SRP
19 (commented on others PR)
Why does this not implement DisplayableList, maybe can change the way we think of and name this class?
20 (commented on others PR)
Good update! Did you managed to test the other commands with IO testing also?
21 (commented on others PR)
Looks good!
22 (commented on others PR)
Will try to abstract this into another class, thanks for implementing with this for now
23 (commented on others PR)
You can load from the test storage data/test/example.json
if you do not want to create the topic for this test
24 (commented on others PR)
Thanks for changing this, forgot to account for wrong commands
25 (commented on others PR)
Good use of assertions
26 (commented on others PR)
Good SRP
27 (commented on others PR)
Good idea maybe we can add this to the other DisplayableList classes
28 (commented on others PR)
Sorry need this to be one word something like Java_Basics for the parser
29 (commented on others PR)
Thanks for changing this
30 (commented on others PR)
Cool idea to add the number of questions
31 (commented on others PR)
Nice, good to check our exceptions
32 (commented on others PR)
Good use of assertions
33 (commented on others PR)
Useful warning log, great!
34 (commented on others PR)
Good idea to log this but maybe using constants can help since most of the words in these strings are the same. Will open an issue to use more OOP for v2
35 (commented on others PR)
good idea to protect this
36 (commented on others PR)
good slap
37 (commented on others PR)
Good placeholder
38 (commented on others PR)
Thanks for changing this
39 (commented on others PR)
Good use of the interface
40 (commented on others PR)
Nice description of the implementation for the parsing
41 (commented on others PR)
May have to standardise our headers later
42 (commented on others PR)
Good work on this class diagram
43 (commented on others PR)
good work on this sequence diagram
44 (commented on others PR)
I think the first one is repeated now because I added it previously but thanks for adding all of the rest
45 (commented on others PR)
You can take out add, delete and the empty constructor as I think @joelngyx is working on removing them from our code
46 (commented on others PR)
This header isn't showing up properly I think you need to add a space after the # , noticed this in a few other places as well
47 (commented on others PR)
I think you are missing the interface label for DisplayableList and Displayable. Some of the arrows are also out of place and arrowheads missing so you might want to check the diagram again.
48 (commented on others PR)
Might want to split this as it may be confusing. Also not sure if you should be returning control to each class instead?
49 (commented on others PR)
nice javadocs
50 (commented on others PR)
Nice solution to allowing the number of questions and topic name to be swapped.
51 (commented on others PR)
Thanks for putting this placeholder, will try to get it done soon
52 (commented on others PR)
Nice formatting
53 (commented on others PR)
Good idea to make the usage clearer
54 (commented on others PR)
I think this is ok for now, i will add in a storage system to load the bookmarks along with notes
55 (commented on others PR)
this one as well may have to create a User
class to include notes next time but for now it seems fine
56 (commented on others PR)
I think for this you can call execute on the command and then just assertTrue(true) which represents that the the execute doesn't enter a loop since a bad topic was given
57 (commented on others PR)
same as above
58 (commented on others PR)
Nice! Thanks for changing this
59 (commented on others PR)
Good idea to abstract this
60 (commented on others PR)
I know this is a draft but you should probably be taking the TopicList
in the constructor
61 (commented on others PR)
Nice, good implementation of this feature
62 (commented on others PR)
Looks good but there seems to be a random * in the top right area of the diagram
63 (commented on others PR)
Nice diagram
64 (commented on others PR)
Good explanation of the implementation
65 (commented on others PR)
Good use of visual aids
66 (commented on others PR)
Thanks for rewording this, alot clearer
67 (commented on others PR)
Well done updating the UserStorage to match your Note changes
68 (commented on others PR)
Nice use of constants
69 (commented on others PR)
Good update to the user guide, not sure if these sections should be nested under a notes feature
70 (commented on others PR)
Good idea to let users choose their timing but I think you need to update this message to match and change the input file to start up the quiz correctly
71 (commented on others PR)
good idea to make this new command for timer timeout
72 (commented on others PR)
Good idea, will have to change userstorage a bit to accomodate this as well
73 (commented on others PR)
looks good, nice formatting
74 (commented on others PR)
Nice, makes it alot clearer
75 (commented on others PR)
Nice improvement to code coverage
76 (commented on others PR)
Good addition to the junits
77 (commented on others PR)
Good use of javadocs to make the method purpose clear
78 (commented on others PR)
Nice addition to the code coverage
79 (commented on others PR)
Good change
80 (commented on others PR)
Nice javadocs
81 (commented on others PR)
Good catch about the timer
82 (commented on others PR)
I think the method calls a bit wrong as you should point to the object that is called. Liked question.getInnerList() should call on a question object and getInnerList() should call on a questionList object
83 (commented on others PR)
Good catching of this error
84 (commented on others PR)
Nice fix to make sure the timer continues after every command
85 (commented on others PR)
Good implementation to switch the method based on the operating system
86 (commented on others PR)
Great job making the message more user friendly
87 (commented on others PR)
Good catch on the missing space
88 (commented on others PR)
Good abstraction
89 (commented on others PR)
cool change, no need to update this everytime anymore
90 (commented on others PR)
would be good to add some screenshots here
91 (commented on others PR)
Thanks for catching this for me!! Will try to be more careful in future
92 (commented on others PR)
Well done I like your detailed explanations here
93 (commented on others PR)
Hi same as joseph you need to change the file name to your github username and update the aboutus
94 (commented on others PR)
Sorry just need to change this back to without the docs and need to change your own file name to be your github username
95 (commented on others PR)
Hey I think you accidentally removed some explanations here and some other places
96 (commented on others PR)
Looks good. I believe you also worked on Ui and some parts of the Model, do you want to mention those as well?
97 (commented on others PR)
Feel free to write more detail for this as well!
98 (commented on others PR)
Good effort with adding the implementation of timer feature. However, I think rather than constructing the SingleTopicQuiz
object here you should be calling the startQuiz()
method on an existing one instead. Also I noticed the Question
object is not being used so it should be taken out. Furthermore I think if QuizParser
is not an important part of the implementation of the timer it may also be excluded for brevity.
99 (commented on others PR)
Good catch in updating the UG
100 (commented on others PR)
Looks good
101 (commented on others PR)
Good idea to ignore extra whitespace
102 (commented on others PR)
Looks good
103 (commented on others PR)
Seems like good coverage here
104 (commented on others PR)
I think you are missing the return here
105 (commented on others PR)
Good additions to the DG
106 (commented on others PR)
Looks good
107 (commented on others PR)
Good formatting
108 (commented on others PR)
Would be good to add some highlights to know which areas were challenging
109 (commented on others PR)
Good change
110 (commented on others PR)
Good renaming to match the DG
111 (commented on others PR)
Just need to abstract this magic string and should be good
112 (commented on others PR)
Remember to add the junits for this as well
113 (commented on others PR)
I am not sure we use brackets when referring to constructors and methods in the text
114 (commented on others PR)
Remember to standardise the way you mention methods
115 (commented on others PR)
Good changes
116 (commented on others PR)
Good job following the coding standard
117 (commented on others PR)
Good update for help
118 (commented on others PR)
Thanks for moving these
119 (commented on others PR)
Good update
120 (commented on others PR)
Good catch for glossary
121 (commented on others PR)
I think you have to use >br> before every "Expected" so that its on the next line
122 (commented on others PR)
Looks good
123 (commented on others PR)
Thank you for fixing this for everyone
124 (commented on others PR)
Excellent, love this edit
125 (commented on own PR)
Done thanks
126 (commented on own PR)
Yes sorry thanks, need to get out tests up quickly to catch these mistakes
127 (commented on own PR)
Implemented this as well
128 (other comment)
Sorry I implemented this in #13 as it will load and parse the JSON from the file before passing everything as our own objects
129 (other comment)
Did you finish this in your pull request #34 or are there still more methods you are implementing? Remember to add your Junit tests also
130 (other comment)
Was this done in your pull request #22 ?
131 (other comment)
Need to make sure it works with a hintCommand
132 (other comment)
Good idea to maintain SRP
133 (other comment)
Done in #53
134 (other comment)
Done in #59
135 (other comment)
Done in #71
136 (other comment)
Done in #71
137 (other comment)
Done in #71
138 (other comment)
remember to update storage and the json
139 (other comment)
Forget this, dw do alr
140 (other comment)
For easy reference to first version:
Class diagram:
Sequence diagram:
141 (other comment)
remove from functionalities
142 (other comment)
remove functionality
143 (other comment)
Saw that removing these methods disrupts some Junit tests, you can either construct using an arraylist for those tests or load from the test json. If this takes too long work on the ugdg first and we can get this up a bit later!
144 (other comment)
I think you should move the exceptions higher up so it doesn't reach this assertion
145 (other comment)
Done in #126
146 (other comment)
Decided to keep IO testing as backup
147 (other comment)
Being done as UG is updated
148 (other comment)
done in #136
149 (other comment)
closed by #121
150 (other comment)
same as #176
151 (other comment)
for this one maybe must make it clear that once u use a hint u can never score 100%?
152 (other comment)
same as #189
153 (other comment)
same as #188
154 (other comment)
How did they select 6 questions for this? @Zhi-You
155 (other comment)
done in #159
156 (other comment)
Looks good, can you help add some screenshots to the UG as well as placeholders before the final ones?
157 (other comment)
Assigned to the wrong project
158 (other comment)
Assigned to the wrong project
159 (other comment)
Assigned to the wrong project
160 (other comment)
solved in #227
161 (other comment)
Fixed in #247
@sevenseasofbri
(82 comments)1 (commented on others PR)
Consider removing this.
2 (commented on others PR)
public String toString() {
3 (commented on others PR)
public Resistor(double value) {
4 (commented on others PR)
Consider changing this to Resistor object
5 (commented on others PR)
package seedu.duke.component;
public class PowerSource {
private static final String SI_UNIT = "V";
public PowerSource(double value) {
super(value);
}
/**
* Returns the value and unit of PowerSource object.
*
* @return String of Power Source value
*/
@Override
public String toString() {
return (value) + SI_UNIT;
}
}
6 (commented on others PR)
The lack of a newline is causing checkStyle error
7 (commented on others PR)
Perhaps the name otherValue is a little less intuitive? Consider naming it valueToBeAdded or something along those lines.
8 (commented on others PR)
Unsure of the purpose of the ui object in this function
9 (commented on others PR)
I see. Okay it's alright then
10 (commented on others PR)
Ohh okie alright gotcha
11 (commented on others PR)
Yup was thinking of setters, wasn't sure whether I should add. Will add after tdys meeting!
12 (commented on others PR)
While I know having break statements out here is kind of useless but does this violate coding standard? https://se-education.org/guides/conventions/java/basic.html#layout
13 (commented on others PR)
Was going to ask about if the current template wasn't set, but saw this. This makes sense!
14 (commented on others PR)
Oh wow that's...interesting
15 (commented on others PR)
Quite interesting that you added this to gradle properties to be able to render Ω, μ. Hadn't thought of this before!
16 (commented on others PR)
Consider changing the array name to a plural like templates? https://se-education.org/guides/conventions/java/basic.html#naming
String[] templates = {"r", "rl", "rc", "lc"};
17 (commented on others PR)
If you commit the previous suggestion you'll have to change this too:
for (String s : templates) {
18 (commented on others PR)
Same with this collection of values:
String[] effValues = {"reff", "leff", "current", "power"};
19 (commented on others PR)
for (String s : effValues) {
20 (commented on others PR)
Nice
21 (commented on others PR)
Great description!
22 (commented on others PR)
Interesting!
23 (commented on others PR)
Any particular reason as to why you declared these as final? Because when a variable is declared with final keyword, its value can’t be modified, essentially, a constant.
24 (commented on others PR)
Here as well.
25 (commented on others PR)
Yup it will work, but the point of declaring it as final is sort of nullified
26 (commented on others PR)
The test for this method in the RcTemplate_Test will not run because it tries to catch DukeException but the assert keyword throws a different kind of execption.
27 (commented on others PR)
Might consider removing this, since it is already tested by JUnit?
28 (commented on others PR)
Fair, then might have to make the names capitalized right
29 (commented on others PR)
Nice! Might have to add rigorous tests for this later on.
30 (commented on others PR)
Nice
31 (commented on others PR)
Good use of generics!
32 (commented on others PR)
Seems to be an unresolved merge conflict in this file. Might want to edit this file.
33 (commented on others PR)
This is already tested in a JUnit test under AddCommand test, hence will cause a build gradle error. Consider removing this.
34 (commented on others PR)
Not sure if tested through JUnit, but if build gradle fails checks again after removing the other statement, then this is likely causing the issue too.
35 (commented on others PR)
Any particular reason for including so many blank newlines haahaha
36 (commented on others PR)
Same with this statement. I think avoid asserting in this function (even in the other classes) since it is kind of already taken care of by exception handling. The program will terminate in case the user enters an incorrect component
37 (commented on others PR)
Update: Consider removing this
38 (commented on others PR)
Hmm consider naming it SPACES? Since we could change the number of spaces if required later on without having the name become obsolete
39 (commented on others PR)
Interesting, what does this dependency do?
40 (commented on others PR)
:0 gotta remove lah
41 (commented on others PR)
Will have to change the gates to this kind of structure
42 (commented on others PR)
Nice!
43 (commented on others PR)
What is this file for?
44 (commented on others PR)
We could assert that the logic will not call anything out of bounds?
45 (commented on others PR)
Yup, sounds good!
46 (commented on others PR)
Good eye
47 (commented on others PR)
What is xand? Isn't it called xnor..? (・–・;)ゞ
48 (commented on others PR)
Idk if this matters but there's a typo in sequence
49 (commented on others PR)
Ohh lol I see
50 (commented on others PR)
The CLIrcuit Assistant thing, I had removed the logo because of runtest. However, forgot to put it back..
51 (commented on others PR)
Err I'm not sure but why is this summary table in TutorialCircuitCommand?
Can use the summary table from SummaryCommand, perhaps create an object of SummaryCommand and print it?
52 (commented on others PR)
Wait.. this will print once the person goes through 8 commands, and then print again because 8 > 6 commands done
53 (commented on others PR)
Perhaps could have added Current Voltage printed after the template?
54 (commented on others PR)
I don't think we need to instantiate anymore since we are inheriting SummaryCommand here
55 (commented on others PR)
Can remove this also
56 (commented on others PR)
BTW should we add this before the binarytree part? Because I've referenced Gates and all in that section
57 (commented on others PR)
bad
58 (commented on others PR)
So many spaces :0
59 (commented on others PR)
String input = gate.getInput() ? "1" : "0";
can be extracted out and placed before the if-else block?
60 (commented on others PR)
OOf this was not so trivial after all hahaha
61 (commented on others PR)
omg hahahaha unbeknownst to me
62 (commented on others PR)
yolo
63 (commented on others PR)
Should use System.lineSeparator()
here? Idk we have \n
in a lot of places tho..
64 (commented on others PR)
super("Invalid position chosen! Make sure the single letter position specified is depicted in the current logic diagram.");
Cos we don't want them to be confused by calling it a tree?
65 (commented on others PR)
SPACESSSSSSSSSSSSs
66 (commented on others PR)
Everything seems fine and LGTM. However could you try putting this in the block at the top and see if it works? (unless of course if you have tried it out already)
@media print {
div, image, svg {
break-inside: avoid;
}
67 (commented on others PR)
What is the purpose of this file?
68 (commented on others PR)
Ohh I see I see
69 (commented on others PR)
BTW did you test how the commands for boolean look with the jar file in a terminal
Longer lines are generally pushed to the next line thereby resulting in inconsistent tabs. So consider adding tabs and newline wherever necessary after checking. I made changes for circuit already (probably going to have merge conflict with your current changes of circuit commands lol)
70 (commented on others PR)
Made this change yest in my system on a branch i'm currently working on for the PPP
71 (commented on others PR)
nice
72 (commented on others PR)
However, such an approach allows users to add...
I'm not quite sure whether this would be an issue since we could constrain the user from adding certain components to the circuit. Perhaps you could say that a Linked List would not be able to simulate a proper closed circuit-like system, therefore was not chosen...?
73 (commented on others PR)
Lol the random π at the end
74 (commented on others PR)
Also, since we talk about adjacency matrix here, consider calling the implementation "Graph with Adj Matrix" or something since an adj matrix is a way to rep a graph.
Also will have to add the term Adjacency Matrix to the glossary.
75 (commented on others PR)
The glossary is in alphabetical , so might want to add the terms to the respective positions in the list. Moreover, remove the head >>>> merge conflict markers
76 (commented on others PR)
This section illustrates the alternatives considered for implementing the Circuit Template.
77 (commented on others PR)
* Adjacency Matrix: The Adjacency matrix representation of a graph data structure is also considered as it allows connections between nodes.
78 (commented on others PR)
the column of the same element. This approach is rejected due to high space complexity. For example, adding a component
79 (commented on others PR)
Adding and removing a component to the matrix takes O(1) time.
80 (commented on others PR)
For this image could you change the green arrow to point at "the resistor was set to 500" instead of total resistance:
81 (commented on others PR)
Perhaps instead of having example of usage + expected output, could you combine it into 1 sentence that reads something like: "the following diagram is an example of when set r 500
command is used in a valid template"
82 (commented on others PR)
Same for this
83 (commented on own PR)
Yup! Good idea
84 (commented on own PR)
Okay will do!
85 (commented on own PR)
Yup I'll add it
86 (commented on own PR)
Noted! Will add in all getters.
87 (commented on own PR)
So, remove the else and break;
in the if block? Will break
work for a method to return to call.. or should I just empty return;
?
88 (commented on own PR)
Yup noted. I didn't see that before.
89 (commented on own PR)
I see. Yup, that makes sense!
90 (commented on own PR)
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
91 (commented on own PR)
CalculateCommand c = new CalculateCommand(LC_TEMPLATE, CAPACITANCE);
assertDoesNotThrow(() -> c.execute(UI));
92 (commented on own PR)
assertDoesNotThrow(() -> c.execute(UI));
93 (commented on own PR)
CalculateCommand c = new CalculateCommand(LC_TEMPLATE, CAPACITANCE);
assertDoesNotThrow(() -> c.execute(UI));
94 (commented on own PR)
Good idea, will do
95 (commented on own PR)
Yup alright
96 (commented on own PR)
Will try, was getting errors with the fancy fonts (tutorial mode) and table for command summary
97 (commented on own PR)
Then this thread will terminate execution and jump out of the help mode. _'
98 (commented on own PR)
Okay fair, I'll move it
99 (commented on own PR)
Oops I had initially made it byte then changed everything else to int. Seemed to have missed this one out. Thanks for pointing out!
100 (commented on own PR)
Actually, the list is initally populated with 16 null values, so technically we gotta check for if the 1st value is null. Might have to change the isEmpty() function.
101 (commented on own PR)
Noted. So I add set output as a separate fn right?
102 (commented on own PR)
Good idea, will do.
103 (commented on own PR)
Hmm, makes sense
104 (commented on own PR)
Oh no oops, perhaps I'll add it in a next PR?
105 (commented on own PR)
Accidently got added cuz intellij optimised the imports lol
106 (commented on own PR)
Yup yup had mentioned when i created the PR:
Have to update runtest.bat with apt commands.
107 (commented on own PR)
Lol didn't notice this. Good eye
108 (commented on own PR)
Couldn't think of a good way to generalise the tutorial command whilst also splitting between the two kinds of circuits. Since the both the classes already inherited from BooleanCommand/CircuitCommand I thought the only way we could define the characteristics of a TutorialCommand and implement was through an interface (oof)
109 (commented on own PR)
110 (commented on own PR)
@hughjazzman I might be able to add a function declaration here (startTutorial()), I guess I add it in another PR, or ?
111 (commented on own PR)
Okie sure
112 (commented on own PR)
Oof sozz should've informed you
113 (commented on own PR)
You're right! And I was thinking the same, just kept it in case it would be used somewhere else...should I remove it?
114 (commented on own PR)
Okay yep
115 (commented on own PR)
Good idea! Will do that.
116 (commented on own PR)
Noted
117 (commented on own PR)
I see, however since this is recursive, the Gate object will continuously be created again and again right...not sure if that's entirely a bad thing
118 (commented on own PR)
Okay I'll change and see
119 (commented on own PR)
okay noted
120 (commented on own PR)
OH NO i put it after lmao
121 (commented on own PR)
okie
122 (commented on own PR)
wdym?
123 (commented on own PR)
we need to check the circuit tutorial right
124 (commented on own PR)
fml
125 (commented on own PR)
oh! thanks for pointing out
126 (commented on own PR)
ah okay
127 (commented on own PR)
Okie cool
128 (commented on own PR)
aight
129 (commented on own PR)
applied the changes thanks!
130 (other comment)
Perhaps JavaDoc to be added, but other than that LGTM.
Ohh right I forgot. I'll do it.
131 (other comment)
Ok will add this
132 (other comment)
Finally -_-
133 (other comment)
Okay sounds good!
134 (other comment)
OHMYGOSH IT FINALLY PASSED
135 (other comment)
Task Assignment:
Package | Person
-- | --
Command | @sevenseasofbri HelpCommand, CalculateCommand, AddCommand, SummaryCommand
Command | @dorianfong98 ExitCommand, SetCommand, Command, TemplateCommand
Component | @oasisbeatle
Parser | @hughjazzman
Template | @PraveenElango
136 (other comment)
LGTM!
137 (other comment)
LGTM, will need JavaDoc and maybe a comment showing the format of the
printTree
?
Yup can, I'll do that
138 (other comment)
Just realised the name printTree is sort of misleading since the function really just modifies the 'tree' variable and really doesn't print the tree. Will change the name.
139 (other comment)
Sexy UML diagrams.
LMAO DHSFBJEFKERF
140 (other comment)
BTW I'll add the glossary after everyone has added their parts to the dev guide!
141 (other comment)
Will be done through CalculateCommand
142 (other comment)
143 (other comment)
Can @oasisbeatle or @dorianfong98 do a short write-up for
CircuitTemplate
and @sevenseasofbri or @dorianfong98 do one forBinaryTree
?
Okie I'll do it
144 (other comment)
Also you gotta update expected and unix expected files so that the runtests pass
145 (other comment)
Yo I'll add this soon before class perhaps
146 (other comment)
no
147 (other comment)
gg
148 (other comment)
Add Introduction to concepts.
Add label for images.
Explain bullet points used at each command.
Add numberings for section headers.
Add clear instructional steps for each command.
Add diagrams/formatting/colours/arrows/tips for each command.
Add glossary (optional).
149 (other comment)
LGTM, should we use the
{\:toc}
mentioned here: nus-cs2113-AY2021S1/forum#108 (comment)
Yeah I think we should try it out. I'll try add it now.
150 (other comment)
Lol I don't think I'm doing this properly
151 (other comment)
Hi @nishanthelango thanks for the review! 😄 About this diagram:
Yup it's supposed to be a solid line, thanks for pointing out! I just wanted to ask if this notation is ok for object creation in sequence diagrams, because I can't seem to find a way to do it the way it's been specified in the textbook when I use PlantUML.
(Update: I'll still look around though, I'm kinda new to PUML lol)
152 (other comment)
@nishanthelango OHH thank you so much! (I should've looked at the docs better oof) 😄
153 (other comment)
Yo we gotta do this too I forgot abt this
154 (other comment)
@PraveenElango could you add in printing the voltage + circuit since you worked on UI last iter
155 (other comment)
There is no series parallel V - must put in UG documentation. As for L- i think it is working fine. @hughjazzman you're doing add
command for the UG so probably mention that
156 (other comment)
GUI Constraint gotta mention that the simplified circuit is shown in the UG. @AY2021S1-CS2113T-W13-3/developers
157 (other comment)
Must be clearer in the Docs I suppose @AY2021S1-CS2113T-W13-3/developers
158 (other comment)
Not a functionality bug. But must specify what can be added to a template in the UG. @hughjazzman @dorianfong98 since you guys are doing add and template command respectively
159 (other comment)
UG error:
@hughjazzman u taking care of add component so perhaps change this
160 (other comment)
Update instructions on how to use tutorial command, explain how it will remain in a loop unless you decide to exit. @oasisbeatle
161 (other comment)
Summary command is literally the 1st thing in the UG. But might have to include diagrams I suppose. @AY2021S1-CS2113T-W13-3/developers
162 (other comment)
Need to remove help from quickstart and other places:
@AY2021S1-CS2113T-W13-3/developers
163 (other comment)
No additional functionalities will be added post v2.0 right. @AY2021S1-CS2113T-W13-3/developers
164 (other comment)
@oasisbeatle we need to make the UI for the tutorial commands more intuitive. And also add that to the documentation.
165 (other comment)
Need to improve UG section on tutorial command. @oasisbeatle
166 (other comment)
Yo this is a good suggestion. @hughjazzman might wanna change it to this?
167 (other comment)
Don't think this should be too much of an issue? Because the template command needn't care about the parts after. @AY2021S1-CS2113T-W13-3/developers
168 (other comment)
No features to be added after v2.0. Man, what's the deal with people wanting to store circuits lol. @AY2021S1-CS2113T-W13-3/developers
169 (other comment)
Ok gotta improve the tutorial commands @oasisbeatle and I
170 (other comment)
Improve tutorial to produce apt error messages @oasisbeatle and I
171 (other comment)
Summary diagram can have better examples rather than parameter table and command table @AY2021S1-CS2113T-W13-3/developers
172 (other comment)
Need to document the templates better @dorianfong98 since you doing template command for UG
173 (other comment)
Err might have to make the tutorial instruction clear.
174 (other comment)
Lol gotta add a space at the top @AY2021S1-CS2113T-W13-3/developers
175 (other comment)
Right same as #136
176 (other comment)
UG had mentioned this right? Might have to update the add command to show relevant error @hughjazzman
177 (other comment)
Customise exceptions for our respective commands @AY2021S1-CS2113T-W13-3/developers
178 (other comment)
This is a bit concerning. Might have to add a check @hughjazzman
179 (other comment)
#148
180 (other comment)
#148
181 (other comment)
This is concerning and I will look into this.
182 (other comment)
This is concerning, I'll look into this
183 (other comment)
@hughjazzman agreed
184 (other comment)
@hughjazzman
185 (other comment)
@hughjazzman yup
186 (other comment)
@hughjazzman is @PraveenElango doing the additions for the tutorialbooleancommand or @oasisbeatle ?
187 (other comment)
@AY2021S1-CS2113T-W13-3/developers halp who does what
188 (other comment)
@hughjazzman lol i forgot
189 (other comment)
@hughjazzman yup! i had thought since @oasisbeatle had done the tutorial command in the first place he could make changes. However i think @PraveenElango offered to do it today
190 (other comment)
Intro -> General -> Circuit -> Boolean -> End
Ideally, these are the parts each of us could do:
Prepare intro part of the video @PraveenElango
Summary and Bye Command Demo and Voiceover
Tutorial Command Demo and Voiceover @oasisbeatle
Template Command Demo and Voiceover @dorianfong98
Set Command Demo and Voiceover @PraveenElango
Add Command Demo and Voiceover @hughjazzman
Calc Command Demo and Voiceover @sevenseasofbri
Any notable features at implementation level? or at documentation level? or feature level?
Preferably go through most permutations of possible commands and also include erroneous commands too. Try and keep the parts > 3.5 mins long
@Zhi-You
(76 comments)1 (commented on others PR)
Great job!
2 (commented on others PR)
Oh this is a nice addition!
3 (commented on others PR)
Good way to avoid magic literals!
4 (commented on others PR)
Thanks for this! I think this implementation makes more sense!
5 (commented on others PR)
Oh right! My mistake on the primitive versus object type for the boolean variable! Thanks for helping me edit that!
I think the new naming you have here is much clearer too!
6 (commented on others PR)
Great work! I think the logic is fine for the quiz implementation!
7 (commented on others PR)
I think we can implement the parseAnswer that we currently have in the Quiz class into here in future! But this will work for v1.0.
8 (commented on others PR)
Quiz object should be constructed in future but this will work for v1.0!
9 (commented on others PR)
I think it is better if the parser class and its interface could be packaged into their own package, which can be called parser
10 (commented on others PR)
Great implementation for v1.0! Do take note that we have to handle the case where the input provided by the user is unfavorable though, such as if the input length is not 3.
11 (commented on others PR)
Wow! This looks great!
12 (commented on others PR)
Do you think making this into an abstract class would be better than an interface because other command classes will eventually inherit from it instead of just specifying the behaviour?
13 (commented on others PR)
Nice! I think this implementation is great!
14 (commented on others PR)
Thanks for this! It enhances cohesion between hint and question!
15 (commented on others PR)
Thanks for this too! The flag will now correspond to whether the question was shown to the user or not.
16 (commented on others PR)
Understand the reason for this! For future versions we will be able to handle multiple-topic quiz.
17 (commented on others PR)
I think this should be add instead too!
18 (commented on others PR)
Since optionList is unused here, do you think the execute method's parameters in the Command abstract class can be changed?
19 (commented on others PR)
I understand that you have incorporated question.markAsShown() function into the getDescription method of question now, however I feel that we should separate them out to enhance SoC and cohesiveness for the method. Will be doing that and hence for this part over here, the questions will have to be marked as shown separately.
20 (commented on others PR)
Just a suggestion, but I think what you have now works too! The suggestion is just something to think about for future implementations!
21 (commented on others PR)
Remember to remind @anqi20 about this again @josephhhhhhhhh !
22 (commented on others PR)
Great! Looks like a working product is right on the way!
23 (commented on others PR)
Logic seems great for this class!
24 (commented on others PR)
Naming of tests are great!
25 (commented on others PR)
Thanks for helping the team with this change!
26 (commented on others PR)
Thanks for this! Careless mistake on my part haha.
27 (commented on others PR)
Do you think this might be better if phrased as "Please enter in 'help' to get the list of available commands." ?
28 (commented on others PR)
I think for all new lines we should use System.lineSeparator() instead as it will ensure that it works for any OS.
29 (commented on others PR)
Great job!
30 (commented on others PR)
Can add a new line between the two parts but great job nonetheless!
31 (commented on others PR)
I think these should not be returning new IncorrectCommands but should be using the ui to print the error instead. the IncorrectCommand will not be executed too.
32 (commented on others PR)
Great job! Thanks for changing this!
33 (commented on others PR)
Thanks for changing this too!
34 (commented on others PR)
Great work! Logic seems fine to me!
35 (commented on others PR)
Yup, I agree! I think most of us will have to do that too and that could fall under an issue for v2.0.
36 (commented on others PR)
Great job chaining the exceptions!
37 (commented on others PR)
Looks good with the naming!
38 (commented on others PR)
Thanks for adding this in! Looks good!
39 (commented on others PR)
Not very sure if you need the arrows that do not correspond to a method call or not. Also, the return values should be dashed lines.
40 (commented on others PR)
Looks good! However, should the multiplicity for the association between OptionList and Displayable be 4 instead of *?
41 (commented on others PR)
This is a great idea! Thanks! Now our code looks way cleaner
42 (commented on others PR)
Great use of constants to avoid magic literals!
43 (commented on others PR)
Looks like you have tried to cover as many possible scenarios as you can in these tests! Nice!
44 (commented on others PR)
This is much clearer now! Great!
45 (commented on others PR)
Great use of System.lineSeparator() !
46 (commented on others PR)
Great change! We should have just use the method to print out messages as it already exists.
47 (commented on others PR)
Thanks for making this clear that it uses a different construction from the rest!
48 (commented on others PR)
Thanks for abstracting out the construction here so that it is not repeated elsewhere in the code!
49 (commented on others PR)
Thanks for abstracting this out again!
50 (commented on others PR)
Great addition! Now our table of contents can be updated automatically.
51 (commented on others PR)
Great use of the glossary section!
52 (commented on others PR)
Great explanation given for developers who will use this information to maintain or improve our product!
53 (commented on others PR)
Great catch to spell out the entire name first.
54 (commented on others PR)
This part might have to be updated to allow users to better understand how they can start using the app. I will handle this!
55 (commented on others PR)
Great explanation for how users can edit the data for their quiz.
56 (commented on others PR)
Nice improvements in naming.
57 (commented on others PR)
Nice! Believe it will be great if the whole team do so as well!
58 (commented on others PR)
Naming of the file should be that of your github username. After changing that i think it will be good to be merged!
59 (commented on others PR)
Great organisation and clarity! Thanks for doing this !
60 (commented on others PR)
Clearly stated which question in FAQ this problem refers to! Nicely done thanks!
61 (commented on others PR)
Diagram looks good and simple enough to easily understand it!
62 (commented on others PR)
Thanks for adding this back! 👍
63 (commented on others PR)
Thanks for adding the page breaks for us!
64 (commented on others PR)
Nice catch!
65 (commented on others PR)
Great change too, this is much clearer now for the users!
66 (commented on others PR)
Great implementation to check for duplicated topics! Do you think the same should be done for questions?
67 (commented on others PR)
Great that you are checking for empty titles and throwing an exception error to the user!
68 (commented on others PR)
thanks!
69 (commented on others PR)
Should the e be a capital letter E here?
70 (commented on others PR)
Think you are missing a @throw here
71 (commented on others PR)
Good job maintaining these!
72 (commented on others PR)
Nice work!
73 (commented on others PR)
Should this be a System.lineSeparator() instead?
74 (commented on others PR)
Great change to capture edge cases.
75 (commented on others PR)
Looks good!
76 (commented on others PR)
Nice update!
77 (commented on own PR)
Hey! Thanks for the quick response! Able to make timely adjustments because of that. Have made a new commit with the necessary changes! Do check it out if you are free!
78 (commented on own PR)
Sure! Working on it!
79 (commented on own PR)
Alright noted, happen to have it here because it is linked to the QuizQuestion class.
80 (commented on own PR)
Alright I think a better fitting name would be QuizQuestionsManager as it manages the quiz questions instead of simply being a list.
81 (commented on own PR)
Initially I wanted the getDescription method to only be getting the description of the question, but it is also indeed true that once getDescription method is called it is clear that the question is shown too. Will be changing this! Thanks!
82 (commented on own PR)
Working on it!
83 (commented on own PR)
Oh! Sorry! This comment is supposed to be deleted from the commit as it was from a previous version! I will change it now.
84 (commented on own PR)
@kstonekuan has pointed out the mistakes with these lines of code. Thanks!
85 (commented on own PR)
Alright! Thanks! I will change accordingly!
86 (commented on own PR)
Yep, thanks! It is now updated as such in the new pull request.
87 (commented on own PR)
Alright! Fixed, thanks!
88 (other comment)
LGTM! Good job overall!
89 (other comment)
Working on it!
90 (other comment)
Yup! @anqi20 I think you will have to take a look at how hint is implemented and related to the storage class and copy that logic into the explanations class.
91 (other comment)
@kstonekuan Yeah I believe we will have to add that in for v2.1 to let them understand the consequences, but in that sense our team have to explore if we should clear their stats score everytime they start a new quiz for that topic, as pointed out in issue #179
92 (other comment)
@kstonekuan I believe he added in the same question to test if the duplicate question will be shown. Our current algorithm doesn't catch this and I am not sure if we have to. This seems like a case we should point out to the user and ask them to not input the same question into the topics.json list of questions as it might not be meaningful to them as well. We can further discuss this.
93 (other comment)
In addition to screenshots in UG, I believe a Parser diagram's link is broken in DG too. Could you check what is wrong with that too? Thanks!
94 (other comment)
Fixed in #213.
95 (other comment)
Fixed in #213.
96 (other comment)
Fixed in #213.
97 (other comment)
Hahaha no worries! Let's just make sure the quiz ends immediately when all questions are answered 👍
@chuckiex3
(64 comments)1 (commented on others PR)
I think this can be removed?
2 (commented on others PR)
InvalidInputException?
3 (commented on others PR)
I could do that next time if you want? xD
4 (commented on others PR)
Okay, sure!
5 (commented on others PR)
I think imports should be listed explicitly, as stated in https://se-education.org/guides/conventions/java/basic.html
6 (commented on others PR)
Sooooooo much neater omg, thank you.
7 (commented on others PR)
Good effort in making this section neater xD
8 (commented on others PR)
Probably should not have wildcard imports...
9 (commented on others PR)
argument* , same for the others
10 (commented on others PR)
Trivial, but you may want to use NOTEBOOK_DELIMITER, SECTION_DELIMITER and PAGE_DELIMITER respectively for this.
11 (commented on others PR)
oh yes hehehe that's a better description than mine xD
12 (commented on others PR)
missing the link to the delete function!
13 (commented on others PR)
oh yes separating the commands for the different modes seems like a good idea! 😀
14 (commented on others PR)
I'm not sure if we should leave this as planner mode.. I think we should standardise what we call it since it's called timetable mode in our code.
15 (commented on others PR)
hehehe thank you for helping me fix this
16 (commented on others PR)
btw, I think you need a gap between the # and the words, i.e. "### Listing tasks: list
" instead of "###Listing tasks: list
", in order to make that a header.
17 (commented on others PR)
oh yay
18 (commented on others PR)
I think you should remove this line...
19 (commented on others PR)
I think this should be removed ?
20 (commented on others PR)
Good job!
21 (commented on others PR)
it's intended. xD
22 (commented on others PR)
nope, you can select a notebook anywhere.
23 (commented on others PR)
not sure if you wanna add select /nCS2113T /sChapter1 /p1
into this section because you can actually do that in our app...
24 (commented on others PR)
also not sure if you noticed but it's prerequisites... HAHAHAH I think you just copied and pasted for all the prerequisites part so it's just prerequistes..hehe
25 (commented on others PR)
oh wait as in the date format must be dd-MM-yyyy. It's just that both 1) add /t test task /by 2020-10-10 2000
and 2) add /ttest task /by2020-10-10 2000
will work! notice how there's a space between the delimiter and user input in 1).
26 (commented on others PR)
OHOH I SEE WHAT YOU MEAN NOW YOU'RE CORRECT. sorry for the confusion xD
27 (commented on others PR)
HAHAHA NICE.
28 (commented on others PR)
It still works actually xD
29 (commented on others PR)
some are non-academic related * ?
30 (commented on others PR)
wait i catch it somewhere else actually o.o but okay
31 (commented on others PR)
do we still need this, now that we're using page title?
32 (commented on others PR)
wait, I'm not sure if the user has access to src... o.o I thought they just download the jar?
33 (commented on others PR)
Same as the previous
34 (commented on others PR)
OH RIGHT THIS IS THE DG AND NOT UG SORRY
35 (commented on others PR)
since we're checking for whether the length is greater than 10, why do we make a substring that ends at 7 o.o
36 (commented on others PR)
niceeeeeeeeeeee
37 (commented on others PR)
okay ye then maybe we should do it during the meeting on Monday.
38 (commented on others PR)
yes, haha major contribution!!!!
39 (commented on others PR)
actually can just use long's variable, he made one.
40 (commented on others PR)
actually can just use long's variable, he made one for this.
41 (commented on others PR)
hehe lusi it's supposed to be @@author Lusi711
xD I MADE A MISTAKE.
42 (commented on others PR)
@@author Lusi711
same as the others xD
43 (commented on others PR)
nice!
44 (commented on others PR)
Nicely done!
45 (commented on others PR)
Nice! more specific now. 😃
46 (commented on others PR)
wait, is messages
an object of type CliMessages? I think the English is a bit confusing here. xD
47 (commented on others PR)
wait so did you fix the image?
48 (commented on others PR)
It displays even up to N/[NOTEBOOK NAME]/[SECTION NAME]/[PAGE NAME] actually...
49 (commented on others PR)
YAYYYYY NICE!
50 (commented on others PR)
Nice 😛
51 (commented on others PR)
After taskDone
is initialised, messages
an object of type CliMessages calls a method printMarkDone(taskDone)
with the variable taskDone
as the argument, which in turn prints a success message with the respective task to the user. ** ?
52 (commented on others PR)
nice haha
53 (commented on others PR)
Maybe you could add more details? like the example PPP, you can justify why there's a need for these ? https://se-education.org/addressbook-level3/team/johndoe.html
54 (commented on others PR)
nice!
55 (commented on others PR)
oooooh nice catch!
56 (commented on others PR)
This section may seem a bit confusing? I think putting a screenshot here would be better.
57 (commented on others PR)
Less technical now, yay.
58 (commented on others PR)
Better than before. 😃
59 (commented on others PR)
Is this meant to be a divider? xD
60 (commented on others PR)
oh nice!
61 (commented on others PR)
? I think that's me but idk
62 (commented on others PR)
haha it's okay xD just do as you see fit xD
63 (commented on others PR)
Nice! But I think "Personalised messages will include a random generated encouraging message followed by the name provided by you upon launching Zer0Note."/"Personalised messages will include a random generated encouraging message followed by the name provided by you upon the launch of Zer0Note." is more accurate?
64 (commented on others PR)
nice!
65 (commented on own PR)
Hmm, I initially didn't have that there but IntelliJ threw me an error. xD I clicked on whatever they suggested (which is return null;
). No worries, I'll go have a look at it again 😄
66 (commented on own PR)
Yea, sure. That can be done. 👍🏼
67 (commented on own PR)
... Omg that is true HAHAHA okay, I'll change that.
68 (commented on own PR)
Yea sure, that would be nice.
69 (commented on own PR)
...Right. I'll delete that line.
70 (commented on own PR)
ah, definitely not. I'll go change that.
71 (commented on own PR)
I did something similar in my own ip as well. xD See if the others have anything to say about it then?
72 (commented on own PR)
I'll add this as a //TODO
for now
73 (commented on own PR)
I'll just add this as a //TODO
for now
74 (commented on own PR)
added as a //TODO
75 (commented on own PR)
What do you suggest changing it to? xD Or you mean I should just replace that line with sth like if (notebookIndex > 0)
?
76 (commented on own PR)
ooooooh the -1 is thrown when the notebook/section/page cannot be found (when the user selects a notebook/section/page that doesn't exist)... so you don't like that the -1 is being thrown is it ?
77 (commented on own PR)
Sure, I'll edit that before merging.
78 (commented on own PR)
Do you think it sounds better if i add "Having all your notebooks in one place can help organise your notes and thoughts better! " right after that?
79 (commented on own PR)
honestly, not sure if i should put it there when we haven't used the mascot anywhere else... and it's not like the mascot is even necessary
80 (commented on own PR)
honestly yea, the >br>
is doing the magic xD
81 (commented on own PR)
I just thought that returning -1 just like that would be an example of a magic literal xD that's why haha. so you mean I should initialise it right at the top, as a static final variable?
82 (commented on own PR)
okay, will do xD
83 (commented on own PR)
heheheh.... I will craft something... thanks xD
84 (other comment)
Yayyyyyy thank you.
85 (other comment)
should fix #62
86 (other comment)
Fixed by #91
87 (other comment)
if you think it's good enough then merge it please 😛
88 (other comment)
Should fix #119, #120, #121.
89 (other comment)
The IO test will fail now since there's a welcome message right? Or is there something wrong with my code HMM
I don't think it has anything to do with the IO part?
I updated the IO part after adding the welcome bit... haha maybe you're missing an import statement somewhere?
90 (other comment)
Ready for review pt2 xD
91 (other comment)
Fixes #112, #116
92 (other comment)
newer functions not in CliCommands diagram
93 (other comment)
94 (other comment)
utterly confused and unable to reproduce the same error.. o.o
95 (other comment)
The expected format is actually delete /nCS2113T /sTesting /p3
. . . I guess we can change the format then. xD
96 (other comment)
The expected format is select /pnumber
e.g. select /p2
. It is also stated in the error message. but it's okay xD
97 (other comment)
@yAOwzers in the group, they mentioned that maybe we should just change the whole format for calling the command.. like just type in the page title instead of the page number ...
98 (other comment)
should close #153 , #155 , #158 , #163 , #164 , #165 , #166 , #167 , #169 , #171 , #172 and #178
99 (other comment)
@yAOwzers ikr, there's a similar issue. see #164 ;-; we just call our final jar Zer0Note.jar ah, quick fix 😛
100 (other comment)
Not sure if this is an enhancement suitable for v2.1
101 (other comment)
similar to #176
102 (other comment)
Closed by #152 , #180
103 (other comment)
similar to #157
104 (other comment)
Unfortunately, I don't think this is within the scope of 2.1. Maybe beyond it! 😄
105 (other comment)
For the DG:
Added 2 horizontal lines to separate sections.
For the design and implementation headers, the following changes were made:
5# (design and implementation headers) => bold text
6# (aspect of design)=> italicised text
For Neil's part on storage, I removed 1# from every header.
If you want to see what the dg will look like, you can see a preview at: https://chuckiex3.github.io/tp/DeveloperGuide.html
106 (other comment)
oops, checkstyle issues...
107 (other comment)
Nope @NeilBaner , it still looks like this
108 (other comment)
Yes it was the content, but the content also has not changed.
109 (other comment)
Closed by #211
110 (other comment)
heh, Lusi there are checkstyle issues xD
111 (other comment)
Regarding InvalidModeException:
As mentioned in the group, I think we should stick to throwing InvalidAppModeException. Both exceptions are thrown for the same reason (that the user is in the wrong mode). hehe, could you make that change please?
112 (other comment)
omg, I just realised but @yAOwzers , your ppp should be called yAOwzers.md I think...
113 (other comment)
Closed by #228
114 (other comment)
Closed by #213
115 (other comment)
Removed
116 (other comment)
Don't have anything else to add
@Aseanseen
(57 comments)1 (commented on others PR)
Violates coding standard due to *
2 (commented on others PR)
This method seems a bit long, maybe do more abstraction
3 (commented on others PR)
Need to remove the null due to updated constructor for DeleteCommand. 1 more occurence below.
4 (commented on others PR)
Violates coding standard for ternary expressions
5 (commented on others PR)
Unsure why the spaces?
6 (commented on others PR)
Not sure about the readability of this line
7 (commented on others PR)
Need to add a space between ) and { to prevent checkstyle violation
8 (commented on others PR)
There are syntax errors here, see the checks tab for more info
9 (commented on others PR)
Not sure if this is magic number?
10 (commented on others PR)
Maybe use .isEmpty()?
11 (commented on others PR)
I believe the command should be changed to "edit -t"
12 (commented on others PR)
Maybe append with COMMAND_WORD here instead
13 (commented on others PR)
Curious why javadoc deleted? 1 more occurence below
14 (commented on others PR)
I think the COMMAND_WORD should exist in the parent class EditCommand instead
15 (commented on others PR)
Same concern that COMMAND_WORD should exist in the parent class EditCommand instead
16 (commented on others PR)
Now the manager is able to take values from Mon to Fri. Will attempt to update it to be more date specific.
17 (commented on others PR)
Maybe set a variable to the set so that you do not have to keep repeating the getModulesMap()
18 (commented on others PR)
Maybe assign a value to moduleCode.getModuleCode() so that you do not keep calling it
19 (commented on others PR)
I think I have seen this method appear multiple times in many parsers, could we extract it to a method?
20 (commented on others PR)
Is there a reason why this is protected rather than private?
21 (commented on others PR)
Format for the deadline is d-M-yyyy HHmm\
e.g. add -t read chapter 1 -by 12-9-2020 1400
22 (commented on others PR)
Agreed, because the task index can only be found through list
23 (commented on others PR)
Maybe try to use enums instead to improve readability?
24 (commented on others PR)
Same comment as above, I do see the explanation in the javadoc but it might be better to change to enums
25 (commented on others PR)
Maybe move this section to line 182 with the other if statements
26 (commented on others PR)
Maybe rename to InvalidCapCalculatedException?
27 (commented on others PR)
Application name should be ra.VI
28 (commented on others PR)
Typo of "week"
29 (commented on others PR)
Capital letter after comma not recommended
30 (commented on others PR)
Singlish not recommended
31 (commented on others PR)
Capital letter after comma not recommended
32 (commented on others PR)
Line 53, singlish not recommended
33 (commented on others PR)
Try to replace line 79 with
"{abstract} \n TimeTableCommand" >|-- TimeTableDeleteCommand
and 81 with
"{abstract} \n TimeTableCommand" >|-- TimeTableResetCommand
to make the diagram look nicer
34 (commented on others PR)
Maybe explain what reset means
35 (commented on others PR)
Maybe change to something like
String message = String.format(MESSAGE_EDIT_MODULE_SUCCESS, oldModuleCode, newModuleCode);
where
public static final String MESSAGE_EDIT_TASK_SUCCESS = "Your module has been edited successfully.\n"
+ "Your module has been changed from\n'%s'\nto\n'%s'\n";
36 (commented on others PR)
Maybe change to something like
String oldTask = TaskManager.getTask(taskId).toString();
String editedTask = edit().toString();
return new CommandResult(String.format(MESSAGE_EDIT_TASK_SUCCESS, oldTask, editedTask));
where
public static final String MESSAGE_EDIT_TASK_SUCCESS = "Your task has been edited successfully.\n"
+ "Your task has been changed from\n'%s'\nto\n'%s'\n";
37 (commented on others PR)
Maybe show the output of instead
add -m CS2113T
list -m
undo
list -m
Or it would be wise to show the exact command the undo reverted
38 (commented on others PR)
Maybe show the output of
list -t
done 1
list -t
Or it would be wise to show the task instead of The task has been successfully marked as complete.
39 (commented on others PR)
Maybe show the output of
list -t
edit -t 1 buy stuff
list -t
Or it would be wise to show the new edited task in the output rather than just Your task has been edited successfully.
40 (commented on others PR)
Would be wise to show the Lesson that has been removed
41 (commented on others PR)
Need to update the output
42 (commented on others PR)
Same comment as above
43 (commented on others PR)
Same comment as above
44 (commented on others PR)
Maybe you should show the module and its grade here
45 (commented on others PR)
Need to update the output
46 (commented on others PR)
Need to update the output
47 (commented on others PR)
Need to update
48 (commented on others PR)
Not too sure about this user story.\
Maybe something like receive help easily so that I know how to use ravi efficiently
49 (commented on others PR)
Maybe instead of saying add, say that these tasks are in the task list, because it might be possible the task list is already in the json
50 (commented on others PR)
Same comment as above
51 (commented on others PR)
Same comment as above
52 (commented on others PR)
Rather than input, maybe say these tasks are in the task list, e.g. show what is in the task list
53 (commented on others PR)
The entire document uses module list
rather than Module List
54 (commented on others PR)
Extra whitespace
55 (commented on others PR)
Jansi is not closed with |@
56 (commented on others PR)
Grammer, they inputs
57 (commented on others PR)
Grammer, they inputs
58 (commented on own PR)
Pull request is failing due to enabling of the gradle checkstyle. This means there are files that are failing the checkstyle, please check the checks tab and amend the files thanks
59 (commented on own PR)
Thanks, added
60 (commented on own PR)
Unintended edits
61 (commented on own PR)
Ok, will make amends
62 (commented on own PR)
Ok, amended
63 (commented on own PR)
Added
64 (commented on own PR)
Noted
65 (commented on own PR)
Amended
66 (commented on own PR)
I realise now that if one were to enter bye
into the prompt, it will cause MESSAGE_GOODBYE
to be printed twice, once in the execution of the ExitCommand
and once here. This is because Java cannot differentiate between a normal System.exit
and CTRL-C.
Any suggestions on what to do? I was thinking of removing this shutdownhook and printing the bye in the NoSuchElement exception caught. Or removing the exitcommand and use this as an exit.
67 (commented on own PR)
I moved it here because it was stated in this guide that the shutdown hook should be fast. So I decided to move it to PromptType.Edit
commands.
68 (commented on own PR)
Changed the message to be printed in shutdown hook
69 (other comment)
I think the commented code can be removed. But otherwise, looks good to merge.
70 (other comment)
Amended the AddCommand, DeleteCommand, enum in Parser. Checks are failing due to the functions it requires from other classes.
AddCommand:
testDeadline(String deadline)
addTask(String desc, LocalDateTime dateTimeOfDeadline)
addModule(String desc)
execute()
DeleteCommand:
deleteTask(int taskId)
deleteModule(String moduleCode)
execute()
71 (other comment)
Looks good to merge
72 (other comment)
Looks ok, but the Parser needs more prepare commands (delete, list, done)
73 (other comment)
could u add, a AddCommand.FORMAT
a constant that outputs the correct format on how a addcommand will be read
Ok, added
74 (other comment)
Implemented on purpose, but has been amended.
75 (other comment)
There is some bug with this PR, checks are running forever.
76 (other comment)
What's the bug?
Used to be a bug with the JUnit tests, but it has been fixed.
77 (other comment)
Accidentally closed this PR, reopening
78 (other comment)
New unicode character fixes the cross and tick
79 (other comment)
Can't seem to replicate this one. How about you guys? @Aseanseen @amalinasani @tobiasceg @wangqinNick
Upon googling, I think the error is from JDK 9, so the user must have been using the wrong java version
80 (other comment)
Reopen for the team's amends
81 (other comment)
Misread
82 (other comment)
To add on,
@wamikamalik
(56 comments)1 (commented on others PR)
Is there a reason why a new scanner is being declared every time a command is taken in? I believe this works the same way as our previous approach right?
2 (commented on others PR)
Is it necessary to have such a test? 🤔 getCommand() just calls the nextLine() function of scanner class. So by writing this test, we are essentially testing the nextLine() function which has not been written by us.
3 (commented on others PR)
Is this package being imported because of the BusStops being set in the array?
Can this be removed?
4 (commented on others PR)
Nice to have this getter here! Ensures that only minor changes will be needed for other features that made use of the route arrays. (hopefully 🤞 )
5 (commented on others PR)
6 (commented on others PR)
Maybe you can print out only the 1st and the last stop of the buses here with a "..." in the middle.
7 (commented on others PR)
Oh yah! Okie!
8 (commented on others PR)
Is this for future changes? Will the current program work without this?
9 (commented on others PR)
I was wondering if the getCommand() of Ui can be used here. Just to avoid declaring a separate Scanner.
String userBusRouteSelection = Ui.getCommand().trim().toLowerCase();
10 (commented on others PR)
public class RouteMapCommand extends Command{
11 (commented on others PR)
This class was removed in a previous commit. You might have to update your PR to reflect the new code and make changes accordingly.
PS: There will be more changes required once #28 is merged but those should be minor
12 (commented on others PR)
Once you change the code according to the new classes handling bus data, you would still have a similar function that returns the bus route. I suggest you shift the printing to Ui class. See #26 for an example.
13 (commented on others PR)
You may want to remove this class since it is not being used.
14 (commented on others PR)
Since you have just one test, using createBusList() here is ok. If you have more than one tests for BusData, remember that calling it again might cause duplicate entries in the list.
A possible way to do such initialization is using a @BeforeAll method.
15 (commented on others PR)
This is something I found from my research. Do let me know if there is a better alternative!
16 (commented on others PR)
Nice! Using for loop makes the code look neater.
17 (commented on others PR)
Another way to do this would be to store lower case names in stopNames and then use contains() and getIndexOf() functions.
18 (commented on others PR)
Nice function you have there! Can be implemented in the code for other features as well.
19 (commented on others PR)
can this import be removed?
20 (commented on others PR)
Okie! Yah, I realized it wasn't running!
21 (commented on others PR)
import seedu.duke.logic.commands.BusCommand;
import seedu.duke.logic.commands.Command;
import seedu.duke.logic.commands.RouteCommand;
import seedu.duke.logic.commands.RouteMapCommand;
import seedu.duke.logic.commands.ExitCommand;
import seedu.duke.logic.commands.HelpCommand;
import seedu.duke.logic.commands.AllBusCommand;
import seedu.duke.logic.commands.ListStopsCommand;
22 (commented on others PR)
public class ListStopsCommand extends Command {
23 (commented on others PR)
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.assertFalse;
24 (commented on others PR)
no tab here
Kent Ridge MRT Station-> Opp University Health Centre-> University Town
25 (commented on others PR)
PGP-> Kent Ridge MRT Station-> Opp University Health Centre-> Yusof Ishak House-> Central Library-> Kent Ridge-> Museum-> University Town-> University Health Centre-> Opp Kent Ridge MRT station-> PGPR
26 (commented on others PR)
PGP-> Kent Ridge MRT Station-> Opp University Health Centre-> Yusof Ishak House-> Central Library-> Kent Ridge-> Museum-> University Town-> University Health Centre-> Opp Kent Ridge MRT station-> PGPR
27 (commented on others PR)
PGP-> Kent Ridge MRT Station-> Opp University Health Centre-> University Town-> Raffles Hall-> Kent Vale-> EA-> NUS IT-> University Health Centre-> Opp Kent Ridge MRT station-> PGPR
28 (commented on others PR)
Might not want to add assertions to a public method
29 (commented on others PR)
Wondering if we want to move it to a different class like #57
30 (commented on others PR)
Can this be refactored into another function or maybe a function in Ui?
31 (commented on others PR)
Okie!
32 (commented on others PR)
logger.log.2
logger.log.3
logger.log.4
33 (commented on others PR)
34 (commented on others PR)
* [3.3.Check for buses at a bus stop: ```/bus```](#33-check-for-buses-at-a-bus-stop)
35 (commented on others PR)
Would it be better to call the Ui method to print the message here instead?
36 (commented on others PR)
I see, okie!
37 (commented on others PR)
Can you push this to above /descfav?
38 (commented on others PR)
Introducing **Nav@NUS**, your new navigation assistant!
39 (commented on others PR)
I think the bus routes have BTC bus stops oso?
40 (commented on others PR)
Yah
41 (commented on others PR)
where you have to type in commands.<br>
42 (commented on others PR)
Maybe remove the figure numbers for now, since we removed it from other places also, if the figure is right below the content
43 (commented on others PR)
shown in the figure, the home folder is found in the address path of "C:\Users...\CS2113T Empty folder".<br>
44 (commented on others PR)
45 (commented on others PR)
6. Your screen should show the start screen of Nav@NUS as seen in the following figure.<br>
46 (commented on others PR)
47 (commented on others PR)
System.out.println("Oh no! Some of the data in FavList.txt seems to have been corrupted.\n"
+ "Most corrupted data has been removed :)");
48 (commented on others PR)
Should we allow users to add any fav commands to the favorite list? I have assigned isValid to false for the /descfav command
49 (commented on others PR)
Why is this an exception?
50 (commented on others PR)
I think this section is still incomplete?
51 (commented on others PR)
+ [3.11.1 Resetting all search frequencies](#3111-resetting-search-frequencies-of-bus-stops-reset-feature)
- [4. Appendix A: Requirements](#4-appendix-a-requirements)
Was this when I committed, I don't know how it got changed. Can you please change the corresponding header as well.
52 (commented on others PR)
Remember to add 3.12!
53 (commented on others PR)
- [4. Appendix A: Product Scope](#4-appendix-a-product-scope)
Sorry! I just saw the CS2113T website and it says this.
54 (commented on others PR)
## 4. Appendix A: Product Scope
55 (commented on others PR)
Simply run Nav@NUS and the program will automatically delete most of the corrupted data.
Should it be this?
56 (commented on others PR)
#### 3.3.7. Storage of favourite commands - Wong Heng Chin
57 (commented on own PR)
Great catch!
58 (commented on own PR)
Oops!
59 (commented on own PR)
Oh no! We missed that
60 (commented on own PR)
Comment not required
61 (commented on own PR)
Hahah, okie! I will push these changes in a new commit!
62 (commented on own PR)
Okie! I will follow that approach.
63 (commented on own PR)
Thank you for the feedback!
64 (commented on own PR)
Oh yes! That's a better way to do it.
65 (commented on own PR)
Sure! I was wondering if those should be added if and when they are being used...
66 (commented on own PR)
BusStops.PGP,
BusStops.KENTRIDGEMRTSTATION,
BusStops.OPPUNIVERSITYHEALTHCENTRE,
BusStops.YUSOFISHAKHOUSE,
BusStops.CENTRALLIBRARY,
BusStops.KENTRIDGE,
BusStops.MUSEUM,
BusStops.UNIVERSITYTOWN,
BusStops.UNIVERSITYHEALTHCENTRE,
BusStops.OPPKENTRIDGEMRTSTATION,
BusStops.PGPR
67 (commented on own PR)
isValidBusStop accounts for it. So this is redundant
68 (commented on own PR)
The different command classes (ABC, XYZ, PQR) have been explained in individual notes beside the classes. As for commons component...I believe help and exit will be too trivial to mention
69 (commented on own PR)
Yep! doing that in a different pull request
70 (commented on own PR)
Okie, I'll add that in!
71 (other comment)
Minor change needed for parser class so that the child classes can make use of splitCommand() method
72 (other comment)
I realized that this will effect other features involving the use of the bus route array in main. We should remember to make appropriate changes in other pull requests that are open
73 (other comment)
Since #13 is linked to a different feature, you might want to create a new issue solving a different user story. For example, "As a forgetful person, I would like to know which buses are available in my zone, so that I can avoid entering the wrong bus."
74 (other comment)
Need to add more tests to account for the new command classes added.
75 (other comment)
Is this supposed to fix the issue #18 ?
76 (other comment)
Seems that this issue should have been closed already!
77 (other comment)
This issue has be resolved.
78 (other comment)
Issue can be closed now!
79 (other comment)
Also contributes to #54
80 (other comment)
Fixed by #59
81 (other comment)
Fixed by #52
82 (other comment)
Fixed by #69
83 (other comment)
working towards issue #55
84 (other comment)
fixed by #122
85 (other comment)
Can we close this issue now?
86 (other comment)
Done!
87 (other comment)
fixed by #136 #137
88 (other comment)
Might have to pull from master 1st. I have updated /descfav. Not reflected here
89 (other comment)
Thank you for the feedback! Will work on these soon!
All diagrams have been drawn using plantUML. The .puml files are all stored in docs/DG_Figures/
90 (other comment)
Your most frequently typed bus stop name is displayed when you restart the application
But it is a good point, we must make a clearer mention of it in the user guide. @Johnson-Yee
91 (other comment)
I think we have this exception handling issue open for freqList.txt.
Need to add this for favList.txt as well! @EthanWong2212
92 (other comment)
This command is meant to be like a search filter (the way you would search for documents in your folder), so that users do not have to look around for correct faculty names. But this may get a bit confusing for a few users. @mrwsy1 what is your take on this?
93 (other comment)
Will consider adding that in! Requires a bit of thought as some stops have a few common names which would have to be accounted for.
94 (other comment)
parameters "only" was not mentioned. This was a statement catering to notes about parameters. But we should consider including the same for commands as well since some users may find it confusing.
95 (other comment)
Same as #175
96 (other comment)
Good point!
97 (other comment)
To be changed!
98 (other comment)
Same as #175 and #169
99 (other comment)
work in progress
100 (other comment)
Good point!
I think we can leave such prompts out of the output of commands?
ahaha sure! the easier way out 😉
101 (other comment)
same as #173
102 (other comment)
we might have to implement our previous idea (isValid) @Lezn0 your thoughts?
103 (other comment)
Same as #162
104 (other comment)
Was changed a few hours before the PED. refer to this link
105 (other comment)
Reopening the issue as some tasks are yet to be done.
106 (other comment)
Regrading #149
107 (other comment)
To be pushed to a later version.
108 (other comment)
Resolved!
109 (other comment)
Fixed!
110 (other comment)
Fixed!
@neojiaern
(55 comments)1 (commented on others PR)
Perhaps you could refer to the MESSAGE_USAGE in ReviseCommand?
2 (commented on others PR)
Could perhaps separate these into its respective command files like what was done for revise.
3 (commented on others PR)
Would it be better to include "edit" inside the method name? (e.g. showCardContentBeforeEdit) as it is only for the edit command
4 (commented on others PR)
Perhaps the MESSAGE_USAGE could be included after the error message?
5 (commented on others PR)
Perhaps the MESSAGE_USAGE could be included after the error message?
6 (commented on others PR)
Not necessary to specify date when adding cards
7 (commented on others PR)
Date parameter is not needed as it will be initialised in Card class
8 (commented on others PR)
Not necessary to specify date.
9 (commented on others PR)
Not necessary to specify date
10 (commented on others PR)
Perhaps this is not needed?
11 (commented on others PR)
Maybe you could add a separate function which is similar to this and call it for saving of tasks into file.
12 (commented on others PR)
Perhaps could also include previous interval too when loading from file
13 (commented on others PR)
Perhaps MESSAGE_USAGE could be removed as the command is correct but chapter is not found?
14 (commented on others PR)
Would it be better to have a general method for the chapter and module each, then pass the message to that method?
15 (commented on others PR)
Should this be done in Storage?
16 (commented on others PR)
Should this be done in storage?
17 (commented on others PR)
Need this to be int for assertion
18 (commented on others PR)
Need this for assertion
19 (commented on others PR)
Perhaps could also add MESSAGE_USAGE like other commands?
20 (commented on others PR)
Perhaps could use ui.showToUser as well. And could maybe change to "Command entered: " instead? As some commands may be invalid.
21 (commented on others PR)
Perhaps could close scanner here?
22 (commented on others PR)
Perhaps could use ui.showToUser or create a method specifically for printing these in Ui?
23 (commented on others PR)
Perhaps "Lists the revision completed in ..." would be better?
24 (commented on others PR)
Perhaps you could include a message for the exception?
25 (commented on others PR)
Could include error message for exception here
26 (commented on others PR)
Could include error message for exception here
27 (commented on others PR)
Perhaps you could pass ui from Kaji to this method and call ui.showToUser and ui.showError instead of using System.out.println?
28 (commented on others PR)
Maybe could refer to the constants EASY/MEDIUM/HARD instead of using integers for the switch case?
29 (commented on others PR)
Perhaps could change this into one message and denote easy/medium/hard with %1$s and pass the type of difficulty into string format
30 (commented on others PR)
Perhaps could use "Shows" to standardise with the message usage of other commands
31 (commented on others PR)
May consider changing this to toLowerCase and use the constants instead of string literals for switch case or changing the constants to uppercase.
32 (commented on others PR)
Could change this to "Rates" to standardise with other commands
33 (commented on others PR)
Is it possible to throw exception or return this message to execute so that System.out.println is not called at other places other than execute function?
34 (commented on others PR)
Perhaps could return this to execute and do ui.showToUser there
35 (commented on others PR)
Is there a reason why "this" needs to be used? Or setRating is sufficient?
36 (commented on others PR)
Perhaps return rating would be sufficient?
37 (commented on others PR)
Perhaps could use caps for parameters
38 (commented on others PR)
Perhaps could refactor these into constants?
39 (commented on others PR)
Could include message usage here also
40 (commented on others PR)
Could include message usage here
41 (commented on others PR)
is it possible to return the thing you want to print to the execute method and call ui from there? For the methods below as well.
42 (commented on others PR)
Could change to use of out.print
43 (commented on others PR)
Perhaps could refactor these as constants?
44 (commented on others PR)
Maybe can use Messages.CHAPTER instead?
45 (commented on others PR)
Would this not be needed since it is already checked in parser?
46 (commented on others PR)
Would this not be needed since it is already checked in the parser?
47 (commented on others PR)
Would this not be needed since it is already checked in parser?
48 (commented on others PR)
Perhaps this may not be needed?
49 (commented on others PR)
Perhaps can just use the COMMAND_WORD from ListCommand
50 (commented on others PR)
Perhaps can just use the COMMAND_WORD from ListCommand
51 (commented on others PR)
Perhaps can just use the COMMAND_WORD from ListCommand
52 (commented on others PR)
Perhaps can change flashcards to %ss (extra s for the word) in ListCommand and when you use this message, Stringformat with the type Messages.CARD
53 (commented on others PR)
Perhaps can change chapters to %ss in ListCommand and when you use this message, Stringformat with the type Messages.CHAPTER
54 (commented on others PR)
Perhaps can change chapters to %ss in ListCommand and when you use this message, Stringformat with the type Messages.CHAPTER
55 (commented on others PR)
if the list command is already separated out, are these two methods still needed?
56 (other comment)
Already implemented
57 (other comment)
The issue is resolved when duplicates were checked when adding module.
58 (other comment)
Unable to replicate issue
59 (other comment)
Issue resolved when duplicate module/chapter names were checked before adding it.
60 (other comment)
Fixed
@f0fz
(54 comments)1 (commented on others PR)
Is this supposed to be inputChecker(userInput)
and not !inputChecker(userInput)
? If the user command is valid then it will continue asking for user input?
2 (commented on others PR)
Is HelpCommand supposed to be the only one in Pascal case?
3 (commented on others PR)
If removing getter function, then the feedbackToUser
attribute should not be private.
4 (commented on others PR)
Should be output == null
because TaskManager/ModuleManager returns null
if the respective lists are empty.
5 (commented on others PR)
TaskManager's edit function takes a new Task object to get around needing an edit function for each property of task, especially when we will be adding new task properties in the future. Is it possible to reverse this change here?
6 (commented on others PR)
What are these edits for?
7 (commented on others PR)
Command classes should only call methods or store and pass information, and should not have standalone methods. Ideally, your timetable command would call 'TimeTable.generateWeekTable()' (and others) and not have its own method for doing so.
8 (commented on others PR)
Will roll these methods into the new Lesson class
9 (commented on others PR)
The logic in this method (and the next method below) will be moved to the new TimeTable class
10 (commented on others PR)
Do we actually need quotes around the old and new module codes?
11 (commented on others PR)
Can we actually use this format for date?
12 (commented on others PR)
Missing a space between opt and args
13 (commented on others PR)
Download instead of down?
14 (commented on others PR)
Space after colon. Also, the command is bye
instead of exit
no?
15 (commented on others PR)
Should add an explanation here that the task_index
can be found from list -t
16 (commented on others PR)
Should be bye
?
17 (commented on others PR)
The "Add a module to the timetable" line should be removed since this command is continued on the next line.
18 (commented on others PR)
Just checking - I thought we implemented timetable commands already?
19 (commented on others PR)
An example like 30-12-2020
will probably be better since 2-2
is a bit ambiguous about month and day.
20 (commented on others PR)
Inaccurate deadline format here
21 (commented on others PR)
Should give a short explanation of task_index
and how to find it
22 (commented on others PR)
Space between >opt>
and >args>
23 (commented on others PR)
Should be delete -t 1
24 (commented on others PR)
Should be delete -m CS2113T
25 (commented on others PR)
edit -m CS2113 CS2113T
26 (commented on others PR)
Should also add context that only mods that can be found on NUSMods can be added here
27 (commented on others PR)
Should be >task_index>
28 (commented on others PR)
Should be >task_index>
29 (commented on others PR)
Should be edit -m >module_code> >new_module_code>
to stay consistent with UG
30 (commented on others PR)
Space between >opt>
and >args>
31 (commented on others PR)
>task_name>
instead of >args>
?
32 (commented on others PR)
>module_code>
?
33 (commented on others PR)
Space between >opt>
and >args>
34 (commented on others PR)
>task_index> >task_name>
35 (commented on others PR)
Why is "Undo" help inside TimeTableCommand?
36 (commented on others PR)
All the >...>
fields should be named the same way as in the UG. Refer to the above comments to see examples.
37 (commented on others PR)
As mentioned before, please use ModuleManager.getModCodeList()
instead of directly accessing the modulesMap
object.
38 (commented on others PR)
Same here for line 105 and 106 regarding ModuleManager
.
39 (commented on others PR)
Same here for line 110 and 111 regarding ModuleManager
.
40 (commented on others PR)
Uh... this.cap != cap
?
41 (commented on others PR)
Okay that doesn't make sense too... can you explain this part?
42 (commented on others PR)
Nice that you're using centerString
, but generally all CommandResult
messages don't use centerString
I think, except for the error messages. Possible to remove to standardise?
43 (commented on others PR)
Can I check how you're handling SUs? SUs should be worth 0 "grade points" no?
44 (commented on others PR)
Seconded
45 (commented on others PR)
Insert space after comma.
46 (commented on others PR)
"...time at NUS" will probably be better rather than "stint"
47 (commented on others PR)
Add that if you force close, your latest changes will not be saved.
48 (commented on others PR)
Not a comment per se but I'm making a shell script (one for Windows, one for Unix) to check Java version and run ra.VI so this might need to be updated next time.
49 (commented on others PR)
I couldn't find an installation process section in this whole doc?
50 (commented on others PR)
What's this for?
51 (commented on others PR)
Possible to turn user input into uppercase automatically?
52 (commented on others PR)
This one will need to be changed in the program itself too @Aseanseen
53 (commented on others PR)
We can just remove the printing of MESSAGE_GOODBYE
in ExitCommand
because whenever the shutdown occurs it will print the message anyways
54 (commented on others PR)
Why is the saving moved to the executor?
55 (commented on own PR)
Okay, I will add that in a later PR
56 (commented on own PR)
There will be a total of 27 enums which will have names like MOD_SUCCESS_TASK_FAILURE_TIMETABLE_SKIP
which I think is less readable than this. I think this is an acceptable loss in readability since it's only being passed between 2 functions.
57 (commented on own PR)
Also I'll need 27 conditional branches in order to return the right enum 😨
58 (commented on own PR)
@Aseanseen Can't because it needs to check whether the current week (i.e. the only week it will be added to) has any overlaps.
59 (commented on own PR)
Because I haven't actually done anything for UG :x
60 (other comment)
Seems like there's a lot of changes made... Can we get a more detailed description?
61 (other comment)
Checks seem to be failing due to missing portions from other parts of the code base. Parser code seems good to me.
62 (other comment)
Please update branch
63 (other comment)
Update branch please
64 (other comment)
Please update branch
65 (other comment)
#70 WIP
66 (other comment)
Seems like UG updates are included in the other PR? Closing this one.
67 (other comment)
What's the bug?
68 (other comment)
Try using this in Message.java instead
public static final String ICON_DONE = "\u221A";
public static final String ICON_NOT_DONE = "\u0078";
69 (other comment)
What's with the build.gradle update?
70 (other comment)
Fixed by #150
71 (other comment)
Nice catch, fixed by #152
72 (other comment)
Can't seem to replicate this one. How about you guys? @Aseanseen @amalinasani @tobiasceg @wangqinNick
73 (other comment)
Fixed by #153, thank you
74 (other comment)
Fixed by #153
75 (other comment)
Fixed by #228
76 (other comment)
Fixed by #228
77 (other comment)
Fixed by #228
78 (other comment)
Fixed by #228
79 (other comment)
Fixed by #227
80 (other comment)
Fixed by #228
81 (other comment)
Fixed by #228
82 (other comment)
Documentation error I think. 0800 works fine.
83 (other comment)
Need to change parser in this part
84 (other comment)
Fixed by #228
85 (other comment)
@tobiasceg I just did task.toString()
to get that output : - ) I don't feel like it's worth more effort
86 (other comment)
We can close this then.
87 (other comment)
Fixed by @Aseanseen
88 (other comment)
Will fix next release
89 (other comment)
All addressed, thanks Prof
90 (other comment)
😃
@dojh111
(49 comments)1 (commented on others PR)
Maybe in the while loop you can switch it to a variable called: isEmpty or something instead, then you update that variable through a method which returns true when noteTitle.trim().length() == 0
2 (commented on others PR)
These 2 lines can be abstracted out into a single method for better SLAP
3 (commented on others PR)
Can extract into a method named "isValidTitle" or something
4 (commented on others PR)
This can be extracted into a method as well, the contents in the brackets of the "if condition"
5 (commented on others PR)
Can be extracted into a single method to improve SLAP
6 (commented on others PR)
Same thing, can be extracted into a single method
7 (commented on others PR)
Extract into single method called "checkForOutOfBounds" or something
8 (commented on others PR)
Your test names I think you can look at the naming scheme on the module website - SUT name_Inputs_Expected outcome - style
9 (commented on others PR)
Maybe you can try breaking this part up so that its abit easier to read
10 (commented on others PR)
Maybe each if statement can be put into its own method
11 (commented on others PR)
The contents in the if statement can be simplified into a nicer name I think, like "isEqualToDate"
12 (commented on others PR)
This command can be put into a separate class for reuse by the delete class
13 (commented on others PR)
Same as above, can be put into another class to be shared
14 (commented on others PR)
This as well
15 (commented on others PR)
Can split into a few smaller methods
16 (commented on others PR)
Repeated in 2 classes, can be shared also
17 (commented on others PR)
I think you missing a word here
18 (commented on others PR)
Maybe can simplify the condition into another method that returns true false to make it a bit more readable.
19 (commented on others PR)
Same here for the JavaDoc comment
20 (commented on others PR)
Should the logic for like determining which messages to print be done not in the Ui class? I'm not very sure also, want to know your opinion
21 (commented on others PR)
This line can be sent to Ui class - Pass in the "i" and the "note title" into a Ui method to print for you
22 (commented on others PR)
Same as above
23 (commented on others PR)
Can simplify the while loop conditionals
while (!isEqualY && !isEqualN)
24 (commented on others PR)
Same as the above
25 (commented on others PR)
Simplify this also
26 (commented on others PR)
Simplify this conditional
27 (commented on others PR)
Check for the extra white space
28 (commented on others PR)
Maybe can just add some white spaces to separate the different logic to improve the code readability/aesthetics abit! Same for the other edit commands below.
29 (commented on others PR)
Contents of if conditional may be extracted into another method to return true or false
30 (commented on others PR)
Same for this if conditional statement. Can be extracted into a method if you can find a name for it
31 (commented on others PR)
Same here, for the if conditional
32 (commented on others PR)
Maybe this method can go into Ui, will need to check with the rest
33 (commented on others PR)
Actually, maybe we could have a class accessible variable for NoteHistory so that any method can access it at any point. When the execute is run, we set the class variable as the passed in noteHistory, this way we do not need to pass the noteHistory object down through multiple methods.
34 (commented on others PR)
Help move the storage.saveTasks() from after all the catch blocks to after when the taskHistory.pushOldCopy() method is called - (Line 74 in this case) for the event and lesson edit classes also.
35 (commented on others PR)
Move the storage.saveTask() method to the line below this.
36 (commented on others PR)
Move the storage.saveTask() method to the line below this.
37 (commented on others PR)
Can we make this a Ui method
38 (commented on others PR)
Maybe instead of setting the editNumber through the constructor, set a method called setEditNumber() in the Task class itself instead.
39 (commented on others PR)
Hmm yea good point. But I think what Johannine is trying to get here is separation of concerns, where we have a class that just deals with the tracking and updating of the history of tasks. I guess this is up is really up to choice, which way do we want to push towards more.
40 (commented on others PR)
Actually is there any case where we will not decrement the recurrence by 1
41 (commented on others PR)
Can rename this to match Daniel's naming style
ui.showInvalidDisplayKeywordError();
42 (commented on others PR)
You might want to consider a new name for the array. Maybe something like "noteMatches"?
43 (commented on others PR)
Maybe you can try revamp this to use an ArrayList instead of Array. If it's too much then it's ok
44 (commented on others PR)
Maybe something like taskMap
45 (commented on others PR)
Random white space
46 (commented on others PR)
Maybe we can focus on readability more for this part instead of valuing performance, so we can change this to a boolean value and return it instead.
boolean isDuplicate = (this.description.equals(description)
&& existingBy == newBy
&& existingDay == newDay
&& ((this.recurrences > 0 && recurrences > 0) || this.by.equals(by)));
return isDuplicate;
47 (commented on others PR)
Since this whole part is similar to lesson, maybe it can be factored out to be a common method to reduce duplicated code.
48 (commented on others PR)
You might want to color these red
49 (commented on others PR)
Maybe this would sound nicer, but i'm not sure if it will fit the current style you are going for.
ui.showHelpMenu();
50 (commented on own PR)
Thanks for the catch, I am going to change this issue.
51 (commented on own PR)
Possible, I realised the name for this method may not have been the best, the idea was that I have a method that checks if both files exist - If they do, we will skip straight to file reading. If any of the files do not exist, we will proceed with save creation.
I have updated the method name to "checkIfBothFilesExists" to better reflect this.
52 (commented on own PR)
Alright, I have refactored the entire method into individual methods to improve the SLAP
53 (commented on own PR)
Alright, ive tried my best to refactor the function into a single method
54 (commented on own PR)
Alright, I've changed this, thanks for the suggestion
55 (commented on own PR)
Yep, definitely, but idk where to put it for now, so I wont move it yet
56 (commented on own PR)
Alright, changed it, thanks
57 (commented on own PR)
Alright, updated the code accordingly
58 (commented on own PR)
Thanks for the tip, will change
59 (commented on own PR)
Good suggestion, will change the one for letter count as well.
60 (commented on own PR)
Alright, noted, will change
61 (commented on own PR)
Will change
62 (other comment)
Closed by #75
63 (other comment)
Point 5.0 Product Scope in Developer Guide missing preface
Add new Undo function into Guidelines for Manual Testing
Fix typos in section 3.2.2 UI Component
@HengFuYuen
(47 comments)1 (commented on others PR)
Perhaps you can consider changing the method name to getPortionSize.
2 (commented on others PR)
Perhaps you might want to leave a blank line at the end of the file.
3 (commented on others PR)
Maybe you can consider adding JavaDoc comments to some of the methods in this class.
4 (commented on others PR)
Perhaps you would like to split them into different tests using assertEquals, assertTrue, etc for testing and using a three-part naming style for each method e.g. methodUnderTest_inputGiven_expectedOutput
5 (commented on others PR)
Perhaps you would like to leave a blank line at the end.
6 (commented on others PR)
Maybe you can consider using a specific import rather than a wildcard import.
Also perhaps you can consider using the three-part name format for the naming the testing methods: methodUnderTest_inputGiven_expectedOutput
7 (commented on others PR)
Perhaps you would like to consider this for the other files as well.
8 (commented on others PR)
Perhaps you can consider splitting them into individual tests and the consider naming each test in the following three-part format: methodUnderTest_inputGiven_expectedOutput
E.g.
@Test
public void getCalorie_food_returnsCalorie() {
assertEquals(480, testFood.getCalorie);
}
Also, for the assertEquals method, I think the parameters are (expected, actual) so you might also want to consider switching the variables around.
9 (commented on others PR)
Perhaps you would like to import specific methods rather than using wildcard import.
10 (commented on others PR)
Perhaps you can consider splitting them up into different tests using assertEquals and assertThrows for tests that throw exceptions.
11 (commented on others PR)
Perhaps you can consider leaving a new line at the end.
12 (commented on others PR)
Consider breaking this up into different methods.
13 (commented on others PR)
Maybe consider adding a semicolon at the end of this line.
14 (commented on others PR)
Perhaps consider adding () after clear so .clear()
15 (commented on others PR)
Maybe you can consider using ui.printDatabase(manager.getDatabase.getFoodList)
because I think printAllData method is used mainly for debugging purposes.
16 (commented on others PR)
Hi! Perhaps you would like to add in the name parameter when constructing the person class as well as currently the first input parameter of a person is actually their name.
17 (commented on others PR)
Perhaps consider using break instead of return after each case switch.
18 (commented on others PR)
I am not sure if this will be an error, however, I have changed my printFoodList input parameter to a String instead of a FoodList, maybe you would like to add in .toString()
behind the getFoodLis()
19 (commented on others PR)
Sorry for informing you late, last night I decided to change the method name to ui.printPersonInfo(String personInformation) to keep things consistent and shorten the method name, so perhaps you would like to make an edit as well. Also, I can't seem to find the variable personInformation that you passed in as a parameter maybe you would like to input getPerson.toString()
instead as the method takes in a String.
20 (commented on others PR)
I think foodList might not have a get method so maybe you can consider shifting line 114 up as line 114 returns a String representation of the deleted item and you can just pass this String into the ui's printDeletedFood method.
21 (commented on others PR)
Perhaps you may want to change this as Ui does not have a divider method.
22 (commented on others PR)
Perhaps consider changing female to an if-else case and the else case can throw an exception. Maybe you would like to consider this for activity level as well.
23 (commented on others PR)
I am not very sure if an update would be good/necessary for this file but perhaps you can consider.
24 (commented on others PR)
Perhaps you might want to make a specific imports rather than wildcard imports.
25 (commented on others PR)
Perhaps you would like to consider using the three part naming style.
26 (commented on others PR)
Perhaps you would like to handle cases where the activity level is high or extreme and code an assertion for the default case.
27 (commented on others PR)
Perhaps you would like to use an assertion for the default case.
28 (commented on others PR)
Maybe you can consider using current weight instead of original weight for the calculations.
29 (commented on others PR)
Perhaps you can consider adding a blank line at the end. Same for the other files.
30 (commented on others PR)
Perhaps consider leaving a blank line between headers and content.
31 (commented on others PR)
Perhaps consider using the three-part naming style for the tests.
32 (commented on others PR)
Perhaps consider adding a case for male gender.
33 (commented on others PR)
Perhaps consider changing to a more generic message.
34 (commented on others PR)
Perhaps consider changing 125 to AGE_CAP or 150. You might like to consider this suggestion for the other methods as well.
35 (commented on others PR)
I see. I was thinking that since all the exceptions are being caught here it could also possibly be catching an error from elsewhere in the system other than the command input. However, if you think that only the command input is likely to result in an exception that is caught here I think you can leave it as such.
36 (commented on others PR)
Perhaps you can consider catching other possible generic exceptions that may be thrown like NumberFormatException, StringIndexOutOfBound, IOException before catching Exception so that more specific error messages can be output.
37 (commented on others PR)
Perhaps consider leaving a new line at the end of this file.
38 (commented on others PR)
Perhaps consider refactoring to avoid long methods.
39 (commented on others PR)
Perhaps you might need to pull in the new merge and update this file. When docs/team/filename.md is used the website cannot be published. Therefore consider changing it to team/filename.md.
40 (commented on others PR)
Perhaps consider refactoring to avoid long methods if time permits. Similarly, consider this for other long methods.
41 (commented on others PR)
Perhaps missing a D in front?
42 (commented on others PR)
Perhaps include links to some PRs which has codes related to this.
43 (commented on others PR)
Perhaps you would like to document that you created the Food class as well?
44 (commented on others PR)
You can consider having a section on contributions beyond the team project where you can document the bugs you caught from another team.
45 (commented on others PR)
Perhaps consider changing diaghram to diagram.
46 (commented on others PR)
Perhaps you would like to include which portions of the UG you worked on as well.
47 (commented on others PR)
Consider changing to another header as it might be confusing to readers if there are two design headings(one of which is near the top of the documentation and is used as the heading for the section describing the components).
48 (commented on own PR)
These are actually images rather than links and they seem to be displayed as expected on the website but perhaps I’ll remove the spaces in the file name for standardisation. The URL links were indeed broken in the previous PR, I will fix them in this PR.
49 (commented on own PR)
I have renamed the files. Do let me know if there are any other errors.
50 (commented on own PR)
I believe it should. However, I am unable to confirm without merging and checking the website.
51 (other comment)
Thank you for reviewing!
Reasons behind the implementation of setter methods: Possible future extensions that enable users to make edits to their information in case they have inputted it wrongly or if the information has changed over time. (Editing function is not currently available in this iteration as the user can restart the program to reinput the information but this function could be considered in the next when user data is saved and cannot be edited otherwise). However, if this is not implemented in the next iteration and is unnecessary, it will be removed.
Will add current weight field next iteration
52 (other comment)
As the Food class (functional but without JavaDoc comments) are already merged into the master branch of the team repo, maybe you can consider pulling the team repo into you local repo and merging the master branch to your branch (take note not to do it the other way around) so that your branch is up to date with the team repo and this would also likely minimise any possible merge conflicts.
53 (other comment)
Merging of Calculator was done in another PR #19.
54 (other comment)
Satisfied by #42
55 (other comment)
Satisfied by #42
56 (other comment)
Satisfied by #42
57 (other comment)
Merging of Main. Parser and Manager done in #44
58 (other comment)
Satisfied by #104
59 (other comment)
I/O testing will not be used.
60 (other comment)
I/O testing will not be used.
61 (other comment)
Satisfied by #170
62 (other comment)
Noted! Thank you for the feedback!
63 (other comment)
Satisfied in another PR.
64 (other comment)
Satisfied by #182.
65 (other comment)
I am able to run the JAR file successfully now! All the best!
@thatseant
(47 comments)1 (commented on others PR)
Not necessary as it's not used.
2 (commented on others PR)
Good idea to save all white-spaced separated characters into inputs array.
3 (commented on others PR)
Should throw an error.
4 (commented on others PR)
Should throw an error.
5 (commented on others PR)
@samuelchristopher consider what happens to projectIndex pointer if project gets deleted.
6 (commented on others PR)
Not sure whether should throw an error for this.
7 (commented on others PR)
Should be printing error messages.
8 (commented on others PR)
Do we need getter when we can access class property directly?
9 (commented on others PR)
Will this error ever be triggered?
10 (commented on others PR)
Can add some further testing to check task list after adding and deleting of tasks. Also check that switching to another project changes the list of tasks.
11 (commented on others PR)
Should use the inputs array that Riaz implemented where he split the inputCommand into multiple words already.
12 (commented on others PR)
Should use the inputs array that Riaz implemented where he split the inputCommand into multiple words already.
13 (commented on others PR)
How do we handle deletion of members with duplicate names? One way could be not to allow duplicate members with same name to be created.
14 (commented on others PR)
Consider making message type more descriptive perhaps by naming the error(See below). Error messages are clear.
15 (commented on others PR)
It is hard to tell from the messageType the error. Example Naming: AddTaskWrongView
16 (commented on others PR)
I feel like we shouldn't use variable "description" for both project name and description as it will be confusing to use one variable for two different purposes.
17 (commented on others PR)
Same here. I feel like we shouldn't use variable "description" for both name and description as it will be confusing to use one variable for two different purposes.
18 (commented on others PR)
Should not be "Task View"?
19 (commented on others PR)
I feel to make it more convenient you can return name, description and deadline here.
20 (commented on others PR)
Then, here just call toString to return name, description and deadline here.
21 (commented on others PR)
Ya Ive left similar comments in your previous pull request, do check it out.
22 (commented on others PR)
Same point as Shreyas mentioned...members should not be access directly.
23 (commented on others PR)
isNamePresent should be renamed. It's to serve as an output.
24 (commented on others PR)
Project.members
25 (commented on others PR)
Project.members
26 (commented on others PR)
Good renaming of variable
27 (commented on others PR)
I don't think this should be private too
28 (commented on others PR)
Can be simplified to project.getTask(taskIndex)
29 (commented on others PR)
No need for this function after above comment.
30 (commented on others PR)
I feel that selectTask is just retrieving task using project.getTask() followed by an output message. There's no need for this function as output is handled in Command class
31 (commented on others PR)
But parse() only throws DukeExceptions and not NumberFormatException?
32 (commented on others PR)
How does it catch Integer.parseInt?
33 (commented on others PR)
iirc prof mentioned we are not supposed to catch NullPointerException. Checked online and seem to be the case as well.
34 (commented on others PR)
Not urgent but for consistency are we supposed to use the Ui class you implemented?
35 (commented on others PR)
Hmm what is switchViewModes for? There's already home command to switch to home.
36 (commented on others PR)
Consider assigning tasks to TeamMember here
37 (commented on others PR)
It becomes important for members to keep track of tasks so deleted members will no longer be attached to tasks.
38 (commented on others PR)
Are we printing lists here or in Ui? I actually don't mind either but should be standardised. Not a high priority as of now though.
39 (commented on others PR)
Just to clarify, this command activates the Project View both Samuels are doing right?
40 (commented on others PR)
Why is the try catch shifted from parse to executeCommand?
41 (commented on others PR)
Shreyas says in another pull req "as riaz mentioned I think we don't need to put a try-catch block over here since we catching it in the main class, we just throw the exception in that method"
But parse() only throws DukeExceptions and not NumberFormatException?
42 (commented on others PR)
Agree with this
43 (commented on others PR)
I feel this is confusing. What is the difference between isDone and getStatus?
44 (commented on others PR)
This should be priority instead of deadline.
45 (commented on others PR)
This should be priority too.
46 (commented on others PR)
It's good how you showed you enhanced existing features
47 (commented on others PR)
Hi Sam I think this should be EZLogger Level.warning as it is in exception clause.
48 (commented on own PR)
Agree
49 (commented on own PR)
Yup thanks Sam
50 (commented on own PR)
The user guide has no deadline for projects. But if simple, can just do
51 (commented on own PR)
Yup done!
52 (commented on own PR)
My thinking is it would be clear where this method is called ie. project.getTask().
What do the rest think?
53 (commented on own PR)
No it can accept more than one parameter. The split here is to separate commandType from the parameters. Inputs[1] contains the whole string beside the first word.
54 (commented on own PR)
As of now, the function already loops through and extracts all params.
55 (commented on own PR)
Yeah I think it'll be good!
56 (commented on own PR)
Thanks Samuel! I'll change it
57 (commented on own PR)
Good Catch! Thanks
58 (other comment)
Hi Sean @thatseant , let me answer the points:
- There's no way to display project view other than selecting project.
Is there a need to display project view other than selecting the project?
- Multiple members are not shown.
Currently, each task can be assigned on member.
- Tasks are not numbered so it is hard for user to see index of tasks.
Oh okay! I have built this from the mock-up that we approved and I did not include the index at that point. Maybe for the next iteration we can add an index column? For now, users can use the list command?
Hmm Sam regarding point 1 and 3 yes effectively the project view replaces the list command which doesn't show anything useful.
If not lets say in my program i made a few changes such as adding deadlines to my tasks. In order to view the updated changes:
I have to return to home via home command
then select the project again via select just to view the changes
I propose just showing the project view when user types list command
59 (other comment)
Do let me know before this is approved and merge, so I can edit the User Guide as well:)
Ah ok! Thanks Sam clear reasoning fully agree!
60 (other comment)
Hey sean, I think the implementation looks great. But do you think we should use the keyword "display" instead of "list" because you will be giving info about the all the projects and members associated to them when you are in home view right ?
Hmm in the user guide it's list though. If I rmb correctly its because users might be familiar with list from iP and it would be good if it shows the full list instead of a partial list if they execute the list command.
61 (other comment)
What is the logger used for sean??
It's for code quality. Need to add log statements in our code.
@ChanJianHao
(46 comments)1 (commented on others PR)
Would be good if an extra line is added after EOF.
2 (commented on others PR)
All good now!
3 (commented on others PR)
Perhaps we could standardize our logger to be something along the lines of private static Logger LOGGER = Logger.getLogger(">CLASS>.class.getName()");
4 (commented on others PR)
Remember to add a new line for EOF, otherwise, LGTM!
5 (commented on others PR)
Perhaps use of a constant would provide more clarity.
6 (commented on others PR)
Good use of logger!
7 (commented on others PR)
Perhaps a constant would provide better clarity?
8 (commented on others PR)
Introducing a constant here would be good?
9 (commented on others PR)
Might want to add a new line to EOF here.
10 (commented on others PR)
How about a new line here?
11 (commented on others PR)
Would it be better to just gitignore the entire folder rather than individual sub-folders?
12 (commented on others PR)
Perhaps some meaning could be added to those numbers.
13 (commented on others PR)
Perhaps the phrasing for this message could be simpler
14 (commented on others PR)
Perhaps add a new line before EOF.
15 (commented on others PR)
Great work extracting datetime class!
16 (commented on others PR)
Perhaps we could standardize the amount of periods we use for logs, and when to use them?
17 (commented on others PR)
Great work on updating the runtest file!
18 (commented on others PR)
Alright sounds good!
19 (commented on others PR)
Perhaps you could standardize params naming to be PARAMETER_NAME
?
20 (commented on others PR)
Great work in writing tests!
21 (commented on others PR)
Great work separating long strings into multi lines.
22 (commented on others PR)
Is it good practice to print test results?
23 (commented on others PR)
Great work refactoring them1
24 (commented on others PR)
Good tests!
25 (commented on others PR)
Great addition!
26 (commented on others PR)
Perhaps add a new line here
27 (commented on others PR)
Would a new line here be good?
28 (commented on others PR)
Good work with refactoring!
29 (commented on others PR)
Great work explaining!
30 (commented on others PR)
I like your example
31 (commented on others PR)
Perhaps you want to avoid combining 2 method calls in 1 line?
32 (commented on others PR)
Good work refactoring here!
33 (commented on others PR)
Would it be better to use regex here?
34 (commented on others PR)
Good use of assertion here!
35 (commented on others PR)
Looks good, but I noticed some characters were refactored as constants while this SPACE
weren't.
36 (commented on others PR)
Great work refactoring numbers!
37 (commented on others PR)
Thanks for adding the guide!
38 (commented on others PR)
Could it be confusing to mention 2 prompts when line 79 states a prompt
?
39 (commented on others PR)
Great work refactoring!
40 (commented on others PR)
Hmmmmmmmmmmm looks good, maybe.
41 (commented on others PR)
Good use of offset
42 (commented on others PR)
Thanks for spotting this 😛
43 (commented on others PR)
Good work adding this!
44 (commented on others PR)
Thanks!
45 (commented on others PR)
Amazing!
46 (commented on others PR)
Looks great! But could the image be resized smaller?
47 (commented on own PR)
Updated, thanks!
48 (commented on own PR)
Fixed that, good catch.
49 (commented on own PR)
Thanks for the reminder!
50 (commented on own PR)
You're right, shall leave the fix for the next update!
51 (commented on own PR)
Good catch, removed them!
52 (commented on own PR)
I switched this to public so I could access the regex from the human package. Should I have made a duplicate regex there instead?
53 (commented on own PR)
Thanks for the alert, shall fix these!
54 (commented on own PR)
Thanks for the alert, shall fix these!
55 (commented on own PR)
Alright I have separated them!
56 (commented on own PR)
Alright thank you, I have updated accordingly!
57 (commented on own PR)
No problem!
58 (commented on own PR)
I've moved into StorageManager to avoid cluttering Main(). Is that better now?
59 (other comment)
``
60 (other comment)
I apologise for the delay in the review. Thanks for working on the UG!
No worries, have a good weekend!
61 (other comment)
Hello,
This was actually intended as workspace is meant to only include alphanumeric characters and or spaces.
I will take note to update the guide instead.
Thank you.
62 (other comment)
Indeed, this might be something we can consider adding in future versions.
@OngDeZhi what do you think?
63 (other comment)
How should we fix this, team? In my opinion this is a font issue but perhaps we could provide more clarity on our end.
@AY2021S1-CS2113T-F12-2/developers
64 (other comment)
@AY2021S1-CS2113T-F12-2/developers Any ideas? We already have the console-like information on the left showing workspace and watchlist. I suppose we could add lines too.
65 (other comment)
Looks amazing, thank you @EyoWeiChin!
66 (other comment)
Realised this was a miscommunication and there is no bug, hence closing.
@tienkhoa16
(41 comments)1 (commented on others PR)
Perhaps you can explicitly list out all the imports instead of using * to pass checkstyle
2 (commented on others PR)
maybe remove unused code?
3 (commented on others PR)
whitespace after while
4 (commented on others PR)
whitespace before { ?
5 (commented on others PR)
Maybe this method should be Storage class since the Create Command should be focusing on dealing with the creation diet session
6 (commented on others PR)
perhaps this can be extracted out to the printResponse() method
7 (commented on others PR)
Printing help in workout session search does not seem so right 😅
8 (commented on others PR)
Perhaps can implement the UI printing here also
9 (commented on others PR)
Should the name of array type variable in plural form (i.e. inputs, exercises)?
10 (commented on others PR)
Should the boolean array name sounds more boolean (i.e. hasEndedWorkoutSessions)?
11 (commented on others PR)
Workout Session is under Workout Menu, so is it clearer if we show "Workout Menu > Workout Session >>>>>" ?
12 (commented on others PR)
This Confirmation method is duplicated in multiple places, so maybe we can extract them out into utils?
13 (commented on others PR)
Should we delete those commented out lines?
14 (commented on others PR)
For consistency in printing, can change here to "delete [MOVE_ID]"
15 (commented on others PR)
And also here to "search [NAME_OF_MOVE]"
16 (commented on others PR)
Actually, it's used in workout manager and workout session as well. So can merge this PR first then I'll create a util method for that and you guys refactor your code accordingly
17 (commented on others PR)
Since they are final variable, should they be in all uppercase form? Or just remove the word "final"?
18 (commented on others PR)
The command words can change to the constants created
19 (commented on others PR)
For consistency, should it be "Workout Menu"?
20 (commented on others PR)
And "Main Menu" here?
21 (commented on others PR)
Parses?
22 (commented on others PR)
an integer index?
23 (commented on others PR)
can consider adding a blank line between description and @param to follow coding standards? And add punctuation behind each parameter description also. It's in the "note in particular" session.
24 (commented on others PR)
This format is also repeated in WorkoutSessionList, so you can consider refactoring it to a constant.
25 (commented on others PR)
Should this be "Please make sure ... are non-negative numbers" since move like push-up can have weight of 0?
26 (commented on others PR)
The FILEPATH can consider using the path constants created in seedu.duke.Constant
27 (commented on others PR)
Should this comment be updated also?
28 (commented on others PR)
And also is the "wrong format, please enter ... [command format]" part a bit redundant in the message?
29 (commented on others PR)
Since WorkoutSessionUi extends CommonUi already, should the line "private static CommonUi printer = new CommonUi();" be removed and use the "showToUser" method of CommonUi?
30 (commented on others PR)
You can make use of "showUser" method in CommonUi. It's also static.
31 (commented on others PR)
Can consider shortening this part to this.calories = Math.min(calories, 200000);
32 (commented on others PR)
Should the title be "Searching for a Move from the Current Workout Session"?
33 (commented on others PR)
Change this title to sync with the title in table of contents
34 (commented on others PR)
and change the anchor to >a id="ws-search">
35 (commented on others PR)
The feature description does not match
36 (commented on others PR)
Perhaps you can help me keep these lines so that the diagrams have consistent format?
37 (commented on others PR)
These lines can be shortened by changing to
catch (SchwarzeneggerException e) {
dietSessionUi.showToUser(ExceptionHandler.handleCheckedExceptions(e));
}
38 (commented on others PR)
Should the variable name be a noun (ie. "result" or "message") instead of a verb?
39 (commented on others PR)
For the methods in this Ui class, you can consider making them static variable
40 (commented on others PR)
You can import the created empty string instead of initializing new one here
41 (commented on others PR)
Also here and some other test files
42 (other comment)
Fixes #62
43 (other comment)
Great work in refactoring! 👍
44 (other comment)
Great enhancement!
@iamchenjiajun
(40 comments)1 (commented on others PR)
I think this part may throw an exception when the user doesn't enter an integer input.
2 (commented on others PR)
Otherwise I think it looks good to merge 👍
3 (commented on others PR)
I only used this line to check if the user entered valid arguments but can be removed for your part of the code if needed.
4 (commented on others PR)
Same for this as other comment.
5 (commented on others PR)
Typo here
6 (commented on others PR)
I was thinking that if we only print a new sorted list using the "list" command, the users will never know which task they are setting as "done" or "deleted".
7 (commented on others PR)
Yea that makes sense.
8 (commented on others PR)
I was wondering if these fields should be part of Item
or they should be part of Task
because not all items we're adding might have these fields? For example if new classes like Expenses
extends Item
then it may not need all these fields, or let the fields be set.
9 (commented on others PR)
Similarly not every item is going to save in the same format so maybe it might be better to override this in each subclass instead of putting them in the Item
superclass.
10 (commented on others PR)
Maybe having the fields in Item
is okay, but it's to put the getters/setters in Tasks or related subclasses so not every Item
has access to it?
11 (commented on others PR)
This file can be deleted since it was added to .gitignore
12 (commented on others PR)
Maybe it will be better to move this to a new method called CommandCreator.parseAddCommand that returns a Command. Then put the rest of these code inside the method that will call either of the two createAddCommand
s.
13 (commented on others PR)
Consider removing this file because other users may not use it (add to .gitignore)
14 (commented on others PR)
Maybe it would be better if "isReturn" and "futureDate" is in Book.java (not a feature of the Item
but of Book
)
15 (commented on others PR)
Maybe all the book related functionality should be in Book
16 (commented on others PR)
Same as previous
17 (commented on others PR)
Same
18 (commented on others PR)
Maybe BookList related functionality should be in BookList
19 (commented on others PR)
Same
20 (commented on others PR)
Same
21 (commented on others PR)
Yup I think it LGTM except that Book related functionality should be moved from Item
to Book
and same for BookList
related functionality from Item
.
22 (commented on others PR)
what's this
23 (commented on others PR)
maybe this whitespace isn't needed
24 (commented on others PR)
Consider removing this unnecessary comment
25 (commented on others PR)
Is it possible that a single method is created in ItemList which is called clear() so we don't have to duplicate this code in every ItemList subclass?
26 (commented on others PR)
Why is there so much random whitespace
27 (commented on others PR)
Here
28 (commented on others PR)
Here
29 (commented on others PR)
Random whitespace
30 (commented on others PR)
Whitespace
31 (commented on others PR)
Consider using the static constant from Module
class instead of rewriting the code here, so that this code doesn't need to be duplicated and can be changed from 1 single place.
32 (commented on others PR)
Consider using Module.MODULE_CODE_PATTERN.matcher(module)
as per previous suggestion.
33 (commented on others PR)
Good use of streams!
34 (commented on others PR)
Typo in JavaDoc
35 (commented on others PR)
Consider creating the variable here and setting it in the constructor instead.
36 (commented on others PR)
Maybe putting these 3 checks in SpendCommand's constructor or execute method would be better, since CommandCreator deals with creating Commands. Checking argumentsMap would be done by the Command itself.
37 (commented on others PR)
I think I also changed this in my other PR might have merge conflicts here later. Oops.
38 (commented on others PR)
I renamed mine to addTaskFromString
and I put it in TaskList
instead.
39 (commented on others PR)
Hmm why is this changed, I thought @MuhammadHoze updated it and this is now the intended behaviour.
40 (commented on others PR)
I was thinking maybe declare the variable now
in this scope, but put now = LocalDate.now()
in the constructor. But this seems fine too.
41 (commented on own PR)
Maybe it's fine because it finds the nearest wednesday so that the user can just enter a date range without worrying about the actual starting date.
42 (commented on own PR)
Yea sure
43 (commented on own PR)
Still looking for the perfect pic
44 (commented on own PR)
Alright, updated 👍
45 (commented on own PR)
This is fine, IntelliJ splits up normal imports from other classes, exception imports and Java classes imports.
Example:
46 (commented on own PR)
Ohh I took this change when there was a merge conflict haha.
47 (commented on own PR)
Fixed
48 (commented on own PR)
sure
49 (other comment)
Add EXPECTED.TXT and input.txt IO redirection tests from the iP
50 (other comment)
oops checkstyle failed
51 (other comment)
Adding a task
Format: add TASK_NAME [by/DD-MM-YYYY-HH:MM] [at/DD-MM-YYYY-HH:MM] [p/PRIORITY_NUMBER] [class/CLASSIFICATION]
Adds a task with a given task name.
Example: add tP meeting,
add tP meeting by/16-09-23:59 at/15-09-2020-11:00,
add tP meeting by/16-09-23:59 at/15-09-2020-11:00 p/1
add tP meeting by/16-09-23:59 at/15-09-2020-11:00 p/1 class/project
Expected output:
Noted. I’ve added this task.
tP meeting by: 16-09-2020-23:59 @ 15-09-2020-11:00
52 (other comment)
LGTM
53 (other comment)
LGTM!
54 (other comment)
LGTM!
55 (other comment)
It seems to be failing I/O redirection tests, try modifying EXPECTED.TXT with the new contents of ACTUAL.TXT and verify if it's the intended behaviour.
56 (other comment)
Might have to change input.txt too since some of the commands are changed.
57 (other comment)
Consider refactoring creating the command as a new method in CommandCreator class using the design patterns. You can pass in the full command or parsed command as an argument for the method. Check the add command and set command for an example. I didn't move everyone's commands because I didn't want to claim credit for the code.
58 (other comment)
There's so many constructors to ListCommand now, I wonder if we can actually pass in an enum to the ListCommand instead and use a switch statement in the execute method. But that will be for another time I guess (maybe v2.1 or another PR sometime later).
But then with enums we'd have to pass in blank arguments for "category" when listing category, so another point to consider.
59 (other comment)
Other than the minor refactoring I think its LGTM!
60 (other comment)
This should be ready to merge.
61 (other comment)
Can add the sequence diagram to the DG
62 (other comment)
LGTM!
63 (other comment)
There is no c/ tag here. It is explicitly stated in the UG that optional arguments take the form of >key>/>argument>
. There is no argument, hence the "c/" forms part of the description for the task.
64 (other comment)
However I will make sure that /
does not appear in the description and make sure it throws a DukeException
.
65 (other comment)
Hi, actually if you do not input a priority, the default value of any task will be set as p:0. We will include this in the User guide so it will be clearer for users.
Yes, the form of an argument is stated to be >key>/>argument>
, thus p/
is treated to be part of the description, as there is no >argument>
.
66 (other comment)
can i merge this
67 (other comment)
This is not a Parser
bug, there is simply no saturday between 30 oct and 30 oct. The bug here is a wrong error message.
68 (other comment)
LGTM!
69 (other comment)
I'm gonna merge this.
70 (other comment)
Is this really an issue? It's already quite explicitly spelled out that those arguments are compulsory.
71 (other comment)
Might have people complaining that they can put optional arguments after compulsory arguments, or mix them together etc, but that's not the point of the arguments too.
72 (other comment)
Close this when everyone is done with it
73 (other comment)
LGTM
74 (other comment)
What was this for
75 (other comment)
Merge when the CI is done.
76 (other comment)
User stories are possibly broken because there needs to be a space for the table cells. (eg. | v2.0 |
instead of |v2.0|
, but I could be wrong)
77 (other comment)
Fixes #135
78 (other comment)
I don't think this is needed.
79 (other comment)
Outside the scope of our project.
80 (other comment)
Oops I think when they tried to merge the user stories section got added back I'm so sorry.
81 (other comment)
Why is the status stuck...
82 (other comment)
This has the same first few commits as #202 so can probably close that PR.
@daniellimzj
(40 comments)1 (commented on others PR)
Could this method be generalised? It doesn't necessarily have to be a command specifically used when saving and loading files.
2 (commented on others PR)
I think some quotation marks could make this clearer, and in the end of the sentence, I think you might mean all other cases.
* @return Boolean true if string is "true" (ignoring case), and false for all other cases.
3 (commented on others PR)
Should this be split into two methods, one for each save file? Might make it clearer.
4 (commented on others PR)
Same as above, this could be split further into 3 methods, if it makes it clearer.
5 (commented on others PR)
I think the JavaDoc comment for this function, and the variable's descriptive names, make this comment a bit unnecessary.
6 (commented on others PR)
Similar to a previous comment, the JavaDoc comment and good variable naming makes this comment seem unnecessary.
7 (commented on others PR)
I think these functions only differ in the parameter you are passing in. You could consider making it one function?
8 (commented on others PR)
Could the method be renamed to better reflect the variable you are creating?
String noteToSave = convertNoteToString(note);
9 (commented on others PR)
Same comment, you could consider changing the method name to better fit what it does.
dataToSave = convertDeadlineToString(task, taskType);
You could consider this for the methods below too.
10 (commented on others PR)
Consider changing these to non-static variables. Such that we would be accessing the object for the getType() method instead of accessing the class.
11 (commented on others PR)
Could consider using the DATE_TIME_FORMATTER from the FileCommand class.
There's no need for constants to be private, and if we ever decide to change the DATE_TIME_FORMATTER there would be less stuff to change.
12 (commented on others PR)
Could be renamed to make it consistent with checkForNotesSaveFile and other variables
private void checkForTasksSaveFile(File saveFileTasks) {
13 (commented on others PR)
Since the LifEasier class already instantiates a TimetableUi, could consider just passing that object into the execute command instead of instantiating a new one.
14 (commented on others PR)
Could consider putting this into the seedu.lifeasier.ui package with the rest of the ui classes.
15 (commented on others PR)
You could also consider leaving it like this, and in LifEasier creating a new DisplayScheduleCommand and calling the method from that object. I'm honestly not too sure!
16 (commented on others PR)
You could consider placing this section before the case for when there are no tasks in the day. Something to do with making the happy path prominent:
17 (commented on others PR)
Should this import be removed if we are no longer using the Ui class?
18 (commented on others PR)
Oh yes I forgot about that. My bad!
19 (commented on others PR)
You could add the "-1" logic in this line, so you don't need to keep typing it afterwards
noteNumber = Integer.parseInt(ui.readCommand()) - 1;
20 (commented on others PR)
You could consider refactoring this into the Parser class, and passing the parser object into the execute method too.
Doing this could help in ensuring SRP.
21 (commented on others PR)
Consider adding a line in between to ensure the JavaDoc standard is adhered to.
* Parses the deleteNotes command that the user inputs.
*
* @param input String containing the user's input.
22 (commented on others PR)
Same for a few of the other JavaDoc comments!
23 (commented on others PR)
Could consider using constants for these:
times[INDEX_START] = start;
times[INDEX_END] = end;
where INDEX_START = 0 and INDEX_END = 1
24 (commented on others PR)
same for getting the "by" of the deadline as well!
25 (commented on others PR)
Same comment as the earlier one!
26 (commented on others PR)
Could you consider renaming this to include "Message" for consistency?
public void showEditableParametersMessage(String type) {
27 (commented on others PR)
This might make it less object oriented though! I'm not too sure what is the best way also though.
28 (commented on others PR)
Can I suggest that maybe one way to do this would be to put the methods and variables in the NoteHistory and TaskHistory classes within the TaskList and NoteList class instead? This way we don't need to pass another class into every method, and instead everything is nicely contained within the TaskList and NoteList classes.
29 (commented on others PR)
I think you can consider renaming this to suffix!
public static final int MAXIMUM_SUFFIX_CHARACTER = 1;
30 (commented on others PR)
You could consider renaming this such that the comment is not necessary.
int consecutiveNumberCount = getConsecutiveNumberCount(moduleCodeElements, letterCount);
31 (commented on others PR)
Maybe we could find a way to do this that doesn't involve instantiating another Ui object?
32 (commented on others PR)
I believe a ui object is already passed into parser when we call parseCommand.
33 (commented on others PR)
Could this be refactored into a do while loop?
34 (commented on others PR)
Could this be simplified? It's a double negative.
} while (isCommandWithDelimiter);
35 (commented on others PR)
Can we find a way to do it without instantiating another Ui object? I think that when we call parseCommand from LifEasier, we already pass in a Ui object.
36 (commented on others PR)
I think that since it is an error, you could consider naming it as such, and printing it in red.
'''suggestion
public void showInvalidDisplayKeywordError() {
System.out.println(colourTextRed("Invalid display parameter! Try 'week', 'today' or 'tomorrow' instead!"));
printSeparator();
}'''
37 (commented on others PR)
Would you consider adding the "-1" logic in this line instead of in all the other times you use noteNumber?
noteNumber = Integer.parseInt(ui.readCommand()) - 1;
38 (commented on others PR)
Same comment about the "-1" logic. I'm not sure if that'll help to make it clearer!
39 (commented on others PR)
Could you consider renaming the parameter too?
public static final String PARAM_FROM = "/from";
40 (commented on others PR)
Wow nice use of a hashmap. However, could the name be made more descriptive?
41 (commented on own PR)
Good point, I'll change it and see how it looks!
42 (commented on own PR)
The reason why I left it like this for now was because I found it difficult to have descriptive meaningful method names if I were to split it up.
43 (commented on own PR)
I wanted to wait until we merged my other commits, so that I can add the blank lines and separators too. Thanks for pointing it out though!
44 (commented on own PR)
I was thinking the same, but I was worried it would reduce the OOP aspect. I wanted to make this method inherit from Task, but couldn't because Deadlines don't store both the start and end times, but only the by.
45 (commented on own PR)
Doing that causes IntelliJ to give me a warning that the boolean is unnecessary. I'll add a Javadoc comment instead to better explain what is happening. I hope that's sufficient!
46 (commented on own PR)
I guess it's fine! Help is kind of an exception to the normal messages anyway.
47 (other comment)
Fixes #5
48 (other comment)
Closed by merging pull request #13
49 (other comment)
Closed in pull request #15
50 (other comment)
Closing pull request as the build tests fail.
Trying again in another branch.
51 (other comment)
Fixed in pull request #28
52 (other comment)
Fixed by pull requests #35 #36 #37 #38 #39 #40 #41
53 (other comment)
Fixed by pull requests #35 #36 #37 #38 #39 #40 #41
54 (other comment)
Closed by #74
55 (other comment)
Closed by pull requests #79 #81 #82 #83 #84 #90 #91 #92
56 (other comment)
Close by pull request #86
57 (other comment)
Closed by various pull requests in v2.0
58 (other comment)
Some deadlines might happen repeatedly. e.g. A weekly homework submission, or a weekly post-lecture quiz.
Just like in our current CS2113T module, the lecture quizzes might be a good example.
59 (other comment)
Date is in the incorrect format, as specified in both User Guide and help command.
60 (other comment)
As explained in the User Guide and help command, words in upper case are parameters to be supplied by the user.
61 (other comment)
As explained in User Guide, command only shows longest block of free time.
62 (other comment)
Coloured teal to indicate current timeslot. Will be updated in User Guide.
63 (other comment)
Some deadlines recur, like a weekly homework submission.
Our module's post lecture quizzes are a good example of this as they have a fixed deadline of before the next lecture.
64 (other comment)
Archived data is not made available in the program. As described in User Guide.
Data is saved automatically.
65 (other comment)
As explained in UG and help command, words in upper case are parameters to be supplied by the user
66 (other comment)
As explained in the User Guide, LifEasier accounts for some time for the user to get up and get ready.
67 (other comment)
Use the showNotes command to view notes.
68 (other comment)
The input date is also incorrect. In this case the program has flagged this out first.
69 (other comment)
As explained in the User Guide, the sleepTime command allocates one hour for the user to get up and get ready. As such, 16:00 is the intended behaviour.
70 (other comment)
This functionality is provided under the deleteTask
command.
71 (other comment)
Repeats issue #144 . Will close this while leaving #144 open.
72 (other comment)
Repeats issue #144 . Will be closing this while leaving #144 open.
73 (other comment)
Similar to issue #139 . Will be closing this while leaving #139 open.
74 (other comment)
Similar to issue #139 . Will be closing this while leaving #139 open.
75 (other comment)
Similar to issue #139 . Will be closing this while leaving #139 open.
76 (other comment)
This problem extends to all delete and edit functionalities concerning tasks.
77 (other comment)
Similar to issue #139 . Will be closing this while leaving #139 open.
78 (other comment)
Similar to issue #122 . Will be closing this and leaving #122 open.
79 (other comment)
e.g.
How many times do you want this to repeat? Enter a number:
80 (other comment)
Add defensiveness to parsing moduleCode. Deny anything more than 7 chars
81 (other comment)
Instead of fixing the display, update UG to say that LifEasier will not warn you if there are clashing tasks.
82 (other comment)
Check everytime any task is added that it does not already exist.
Update in UG too.
83 (other comment)
The user input the wrong thing. The repeats is missing the "/"
84 (other comment)
Similar to #144 . Will close this while leaving #144 open.
85 (other comment)
Prompt in UG and check when they input as well
86 (other comment)
Standardise error message printing.
87 (other comment)
LifEasier allows partial commands for slow typists and beginners.
Edit in UG
88 (other comment)
No. This will be a feature added beyond v2.1.
89 (other comment)
Add to UG
90 (other comment)
Change all /time to /from.
91 (other comment)
Update UG and DG too please
92 (other comment)
Change parser. If it includes delimiter, ask to change content.
93 (other comment)
Adding line spaces and separators will help this.
94 (other comment)
Do this after we add icons and stuff
95 (other comment)
Extends to all tasks
96 (other comment)
No. This will be implemented after v2.1
97 (other comment)
Closed by PRs #180, #177, #176, #173 and #172
98 (other comment)
Closed by PR #182
99 (other comment)
Closed by PR #182
100 (other comment)
During team meeting
101 (other comment)
Miscommunication, no need to change Ui outputs
102 (other comment)
Closed through consistent effort 😃
103 (other comment)
All fixed in various pull requests
@samuellleow
(40 comments)1 (commented on others PR)
Should the creating of a new instance be inside this function instead?
public TeamMemberList() {
members = new ArrayList>>();
}
2 (commented on others PR)
Should we account for zero team members? Catch an error?
3 (commented on others PR)
Good implementation to switch between different views
4 (commented on others PR)
Would extracting to the UI class be neater?
So everything related to printing will be under user interface.
5 (commented on others PR)
Similar case here, would extracting the printing function to UI class be neater?
6 (commented on others PR)
Similar case here, would extracting the printing function to UI class be neater?
7 (commented on others PR)
Would it be clearer if the name of the variable is changed to secondProjectIndex.
8 (commented on others PR)
Would combining these statements into one single command be neater. Use line wrapping for the different lines of output.
9 (commented on others PR)
I think that output-ing a warning for the user and ask them to provide a full name or have them provide a specific index would be better.
10 (commented on others PR)
Can consider changing the exception name to something else other than Duke, unless we are still naming our program Duke. (small issue)
11 (commented on others PR)
I feel that this part is confusing. I understand that it is supposed to throw an error, however the exception message is "add task", maybe change it to "add task error"?
12 (commented on others PR)
similar case here, would changing it to "add project error" be clearer?
13 (commented on others PR)
similar case here, would changing it to "switch error" be clearer?
14 (commented on others PR)
You can check my implementation for this variable so that when we print out the description, there will be spacing in between the words.
15 (commented on others PR)
require an else statement? We can implement the "deadline" function for projects as well.
I would be able to do that since I need to combine it with printing out the statement during the "select" function.
If approved, I will create an issue for it and start working on it.
16 (commented on others PR)
Im not sure about the rest, but I got confused when i first read the code.
Maybe we can change the name to getTaskInsideAProject()?
17 (commented on others PR)
same here, would changing to createTaskInsideAProject be better?
18 (commented on others PR)
same here, would changing to deleteTaskInsideAProject be better?
19 (commented on others PR)
same here, would changing to getNumberTaskInsideAProject be better?
20 (commented on others PR)
Should we extract this to Ui class or Exception class??
21 (commented on others PR)
Should we extract this to Ui class?
22 (commented on others PR)
For future reference, should we remove this as the task does not require multiple inputs.
23 (commented on others PR)
For future references, should we remove this??
24 (commented on others PR)
I don't think there is a need for IndexOutOfBoundsException here.
25 (commented on others PR)
I think we should add a try catch statement here, seems like there is a need to catch an error here if the ID provided by the user might not be within the range of the task arraylist
26 (commented on others PR)
spelling error here, should be "integer"
27 (commented on others PR)
Good use of assertions.
Maybe the error could be clearer?? as seen above
28 (commented on others PR)
similar comments here.
Errors could be clearer??
29 (commented on others PR)
Should we change everything in the Exception class then??
30 (commented on others PR)
Nice!! Now it tallies with the user guide
31 (commented on others PR)
Now it follows the User Guide:)
32 (commented on others PR)
Nice implementation to ensure the table does not go haywire.
33 (commented on others PR)
LGTM!!
34 (commented on others PR)
I believe you can still break it down into even smaller functions.
35 (commented on others PR)
here could be descriptionOfTask()
36 (commented on others PR)
here could be deadlineOfTask()
37 (commented on others PR)
here could be priorityOfTask()
38 (commented on others PR)
here could be estimateTimeOfTask()
39 (commented on others PR)
here could be actualTimeOfTask()
40 (commented on others PR)
here could me memberNamesInEachTask()
41 (commented on own PR)
hmmm, you are right I can combine it together with the toString() function
42 (commented on own PR)
Fixed!!
43 (commented on own PR)
Fixed!!
44 (commented on own PR)
Fixed!!
45 (commented on own PR)
The bug I am trying to solve over here is that, users can enter "list hello everybody" or "list p//" and it still works.
Since our list command does not require any params to execute, there is a need to check for any words behind "list".
inputWords is used in the function before calling getCommand() which checks if there are more than 1 word input.
46 (commented on own PR)
done!!
47 (commented on own PR)
done!!
48 (other comment)
Fixed!!
49 (other comment)
I feel that we need to be clearer in both the implementation and the User Guide.
Currently, the "description" command takes in 2 params, p/ and d/, if description is entered in project view, there is technically no need for user to type in p/ something since the projectIndex has accounted for the index number when you "select" the project. We are just inviting people to find this bug, because if you are already in a particular project view, we cannot change the description of other projects
Since "deadline" for a project can only be entered in homeview, i think "description" should do the same as well.
50 (other comment)
Do let me know before this is approved and merge, so I can edit the User Guide as well:)
51 (other comment)
I have tried that and it doesnt work, because if you type in "list blah blah blah" it will still read the command as a list command. The only way is to check the whole string of words.
52 (other comment)
One project deleted at a time, after ending program and opening up program again
so what i did:
added two projects at the start
added 3 members at the start
bye
java -jar duke.jar
list
first project missing
bye
java -jar duke.jar
list
second project missing (empty project list now)
53 (other comment)
havent edit aboutUs document
54 (other comment)
What is the logger used for sean??
@jerichochua
(39 comments)1 (commented on others PR)
Once we have Ui class we can consider moving these lines of code there instead, and call the required methods. Same for viewProfile()
.
2 (commented on others PR)
Try to be consistent with the spacing between methods? And add the whitespaces in the method names, eg
public Exercise(String name, Calorie caloriesBurnt) {
For this class and the other classes as well.
3 (commented on others PR)
I think you haven't deal with the case when the user enters bye
. Maybe use a boolean isExit
, equal to c.isExit()
and use that as the condition for the while loop so that the loop can be terminated?
4 (commented on others PR)
Remove the whitespace between Fitr
and the open bracket, i.e. public Fitr(...) {
5 (commented on others PR)
I believe the exception class is not yet created, when it's created it should be FitrException
(follow camelcase)
6 (commented on others PR)
Need to override isExit()
method
7 (commented on others PR)
Run the checkstyleMain
and fix the coding standard violations
8 (commented on others PR)
Use getBmi
instead of getBMI
9 (commented on others PR)
Maybe consider using primitive types instead.
10 (commented on others PR)
Would it be possible to put this in a new class? Something like a DateTimeManager
class?
11 (commented on others PR)
Need a fullstop at the end of the sentence, otherwise the checkstyle will complain.
12 (commented on others PR)
Need to change the text - you're reading the tips file.
13 (commented on others PR)
If we move the tips.txt file into a resources folder, then I think there isn't a need to pass the path of the file to the constructor since the location of the text file would be fixed. Can consider removing it from constructor and just define src/main/resources/tips.txt
above.
14 (commented on others PR)
Wouldn't be necessary - the file is not user generated, and it would have been packaged with the JAR file already.
15 (commented on others PR)
Check indentation
16 (commented on others PR)
Will the user be entering a command to get tips? If not I don't think it should be a Command
class... looking at the main class it seems like it's not, it shows up whenever the program first runs. I think can consider not extending Command
and just use a standalone class, maybe something like TipManager
?
17 (commented on others PR)
Feels like this can be simplified, since the tips will be shown when the program first runs, and the user isn't going to be typing a command for tips. See the comment in the TipCommand
class..
18 (commented on others PR)
See the comments in the Storage
class - I don't think its necessary to include a file path of the tips file since it's going to be included inside the JAR file, so can consider removing it from the constructor here..
19 (commented on others PR)
I think should put in a single line, not separate
20 (commented on others PR)
Since the class is not a command anymore, maybe can consider putting it in another package? Maybe a tip
package?
21 (commented on others PR)
Got two different caloriesInFood
here...
22 (commented on others PR)
Isn't the return type of calories an int
?
23 (commented on others PR)
Are these commented lines still needed? If not needed then maybe can consider removing them?
24 (commented on others PR)
Same here - maybe consider removing them if not needed?
25 (commented on others PR)
Need to add public
in front
26 (commented on others PR)
Need add public
in front also
27 (commented on others PR)
I think using assert
like this is abit dangerous?
28 (commented on others PR)
I think its printCustomMessage
right? Not error
29 (commented on others PR)
Can consider extracting this out as a method?
30 (commented on others PR)
Can consider extracting this out as a method?
31 (commented on others PR)
Can consider extracting this out as a method?
32 (commented on others PR)
Can consider extracting this out as a method?
33 (commented on others PR)
I think this JUnit test is quite trivial?
34 (commented on others PR)
The commands are all static final already
35 (commented on others PR)
The comment should change from yellow to blue.
36 (commented on others PR)
This one fixed already, need merge the latest changes
37 (commented on others PR)
I think should avoid using \n, and use System.lineSeparator()
instead
38 (commented on others PR)
Need update the .gitignore
file also
39 (commented on others PR)
Change caption to sequence diagram
40 (commented on own PR)
Can provide any sample input that causes that?
41 (commented on own PR)
Its larger than the range of values of int so wouldn't it be considered invalid?
42 (other comment)
Fixed in #24
43 (other comment)
Finished implementing the loading and saving of files for user's profile, food and exercise lists.
Checks failing because of the AddCommand class.
44 (other comment)
Already implemented, thanks
45 (other comment)
See #167
46 (other comment)
@gohsonghan98 can consider one-shot commands, eg edit name >name>
47 (other comment)
The numbering works as expected. Might need to emphasise this in the UG.
48 (other comment)
More of a documentation bug instead, that's why entering the commands in the right column results in it being invalid. Left column is the right format. Fixed in UG.
@e0425705
(38 comments)1 (commented on others PR)
Could have a final static for this magic number
2 (commented on others PR)
alist should be in camelCase
3 (commented on others PR)
adatetime should be in camelCase
4 (commented on others PR)
this comment could be added into the ui
5 (commented on others PR)
can refactor this into ExceptionMessages class
6 (commented on others PR)
magic number here, perhaps can make it as a final variable
7 (commented on others PR)
magic number present here
8 (commented on others PR)
naming should be InitialiseUser instead of Initialiseuser
9 (commented on others PR)
the naming of this should be activityMultiple instead
10 (commented on others PR)
presence of magic numbers
11 (commented on others PR)
presence of magic numbers
12 (commented on others PR)
perhaps naming of firstString and secondString would be more appropriate?
13 (commented on others PR)
these variables should be in caps
14 (commented on others PR)
this should be in caps
15 (commented on others PR)
perhaps a better naming could be done for this?
16 (commented on others PR)
same issue for this, perhaps a better naming could be done for this?
17 (commented on others PR)
can consider making " " final
18 (commented on others PR)
can consider making "|" final
19 (commented on others PR)
would be better if this is renamed to e.g. previousInput
20 (commented on others PR)
magic numbers present here, do consider making some final
21 (commented on others PR)
magic number present here, do consider making 7 final
22 (commented on others PR)
magic number present here also
23 (commented on others PR)
magic number present here also
24 (commented on others PR)
magic number here, do consider making it final
25 (commented on others PR)
able to use print() instead
26 (commented on others PR)
able to use print() for this instead
27 (commented on others PR)
magic number present here, can consider making it final
28 (commented on others PR)
I have made a final variable SPACE in place of " ", you can use it in the code instead
29 (commented on others PR)
same issue as above
30 (commented on others PR)
can consider making these magic numbers final and if i recall correctly i have defined this as CALORIE_TAG
31 (commented on others PR)
same issue as above. can use DATE_TAG to replace this
32 (commented on others PR)
same issue. magic numbers present.
33 (commented on others PR)
presence of magic number. consider making it final
34 (commented on others PR)
can consider making " " & "" final
35 (commented on others PR)
can consider making this final e.g. GENDER_TAG
36 (commented on others PR)
similar issue, can consider making tags final
37 (commented on others PR)
can consider making 7 final
38 (commented on others PR)
can consider making this magic number final
39 (commented on own PR)
noted
40 (commented on own PR)
noted
41 (commented on own PR)
HAHAHA oops thanks
42 (other comment)
fixes #41 , #27 , #45
43 (other comment)
fixes #18 , #19 , #21 , #22 , #23
44 (other comment)
fixes #18 , #19 , #21 , #22 , #23
45 (other comment)
fixes #88
46 (other comment)
fixes #88
@wish2023
(36 comments)1 (commented on others PR)
Nice job on creating the package early
2 (commented on others PR)
Yup we don't need this anymore!
3 (commented on others PR)
Make sure to have this on two seperate lines
4 (commented on others PR)
Brilliant
5 (commented on others PR)
Well organised the code looks really neat!
6 (commented on others PR)
Maybe consider renaming the "time" parameter to "startTime" to avoid confusion
7 (commented on others PR)
Consider renaming the "time" parameter to "startTime" here too as this is the time the task should task.
8 (commented on others PR)
Consider renaming the "Commands" class to "Command" as this relates to a single command.
9 (commented on others PR)
Yup good naming!
10 (commented on others PR)
This looks good!
11 (commented on others PR)
It may be better to leave this in lowercase, as this is what our user guide says. We can convert this into an enum in our next version?
12 (commented on others PR)
Consider renaming "c" to "command"
13 (commented on others PR)
Renaming this to taskList.addTask
would be great 😃
14 (commented on others PR)
Good that the importance is being converted to upper case here!
15 (commented on others PR)
Remember that the user will type "high" instead of "HIGH"
16 (commented on others PR)
I think we can remove the first addTask() . The method right below this seems to have the same functionality in addition to assigning a unique index value
17 (commented on others PR)
Noted that the user will now see the list from the timetable class only
18 (commented on others PR)
Looks great!
19 (commented on others PR)
This test will return true once 23-10-2020 is in the same week as the current date. Perhaps there's a better way to generate a false case. Maybe the recurrence can be (LocalDate.now() + 7 days).toString()
20 (commented on others PR)
This test is exactly the same as testIsTaskIncluded_filterByToday_returnsTrue()
. Perhaps a better input could be a day that lies in the same week as LocalDate.now
and adding this as a parameter.
21 (commented on others PR)
Good idea to simplify the code
22 (commented on others PR)
Will we have to change the dates EXPECTED.TXT everytime we test?
23 (commented on others PR)
Remember to update this new default value in user guide
24 (commented on others PR)
Seems like you have a getDurationString()
it may be easier to use that?
25 (commented on others PR)
Perhaps say "It must be a non-negative integer". Also we should changeINDEX
to Task ID
soon
26 (commented on others PR)
Maybe say this in a more formal manner? Something like Ensure your parameter cannot contain /
. Maybe we should rename "parameter" to a simpler word like "detail" later on
27 (commented on others PR)
Nice haha so should work for another month
28 (commented on others PR)
Remember to remove the case "TODAY"
when we check for switch (recurrence)
in setRecurrence()
in the Time
class
29 (commented on others PR)
Hmmm why is sleep 22 here
30 (commented on others PR)
Our sleep time is 12am so should it be 24 instead of 22?
31 (commented on others PR)
Empty line here
32 (commented on others PR)
You can remove this since it's not being used
33 (commented on others PR)
Could you shift this into the isClashWithSleep method so it looks cleaner?
if (duration > 16 && isFlexible) throw new TaskTooLongException(duration)
34 (commented on others PR)
whitespace
35 (commented on others PR)
whitespace
36 (commented on others PR)
Any reason why you changed this? I think it'd be better to call the set
methods as it all follows a similar level of abstraction
37 (commented on own PR)
Noted! Has been changed to edit
38 (commented on own PR)
@amanda-chua take note method name has been changed to addTask
39 (commented on own PR)
Whoops forgot to remove this
40 (commented on own PR)
ooh good spot
41 (commented on own PR)
I just implemented this for debugging purposes I have removed it now
42 (commented on own PR)
Whoops forgot to delete
43 (commented on own PR)
Yup let's change it to logicManager
once that's merged
44 (commented on own PR)
Oh whoops
45 (commented on own PR)
Okay I'll delete this and add it in another branch
46 (commented on own PR)
This gives me a syntax error for some reason
47 (commented on own PR)
Oh hmmm I thought it may be better to include the actor for the parser?
48 (commented on own PR)
Yup for isMidnightClash
the algo basically checks if both the end times are less than their respective start times. If so, both tasks go past 12am which means there's a clash at the 12am mark.
49 (commented on own PR)
As in ATHENA still alows task to be added provided they end at 12am but not past that
50 (commented on own PR)
okayy thanks! will make the change
51 (commented on own PR)
Because line 104 uses markTaskAsDone()
so I need to catch this exception otherwise there'll be error
52 (commented on own PR)
Okay I've made the change
53 (commented on own PR)
I think it might make more sense to self destruct tasks when you catch this error, but then we will have to have another self destruct for repeating tasks
54 (other comment)
Left some comments about some parts of the code, some are just suggestions, the important thing is the
main
function insideForecastFilter
. I think you forgot to remove it?
Also, can you add Junit test cases for
ForecastFilter
? Or since we are down on time we can also merge this pr first and add that later.
Noted, will add Junit test cases for ForecastFilter
tomorrow
55 (other comment)
Junit test cases are now created for ForecastFilter
56 (other comment)
Note recurrence will still be "today", I have just created a recurrenceDate attribute. This is to make it easier future versions when recurrence will be a day of the week, so it'll be good to leave that as a string.
57 (other comment)
Supposed to be like this. Other members please confirm and close this issue.
58 (other comment)
I believe this can be done using r/DATE
where DATE
is any date you intend to add the task.
59 (other comment)
I believe this is actually #200. The assignments are being successfully added as ATHENA mentions but there may be a prior invalid recurrence.
60 (other comment)
This issue doesn't seem to exist on my side. Other members please help to confirm
61 (other comment)
I think we should leave the start ID as 0? As it is a task ID not really a number in a list. Other members, what do y'all think?
62 (other comment)
@Kafcis the student encountered this using a flexible task.
63 (other comment)
Cannot. My fix clash bug was due to some issue with the method. But for this issue, it's got something to do with the TimeAllocater. Like we should have an exception if the task goes past 12am right? But the program just crashes.
64 (other comment)
Yup I believe so
65 (other comment)
Sure @Kafcis I'll check for date in AddCommand and EditCommand
66 (other comment)
I think can close now
67 (other comment)
I think can close now
68 (other comment)
Yup so iirc users cannot set a recurrence for flexible tasks too
69 (other comment)
Can close?
70 (other comment)
I think this should fall under flexible tasks because the sleeping exception is thrown only for non flexible tasks which provide a start time. @Kafcis what should the intended output be for such an input?
@Jane-Ng
(36 comments)1 (commented on others PR)
It would be better if "commandArgs" is used instead of "arg" to standardize with the rest
2 (commented on others PR)
It would be better if you initialise the Chapter object in the ReviseCommand
3 (commented on others PR)
follow the format of methodUnderTest_inputGiven_expectedOutput for test methods
4 (commented on others PR)
out.println will do for this line
5 (commented on others PR)
It would be better to use .equals instead of == and != for comparing the string
6 (commented on others PR)
instead of checking if (access.getModuleLevel() != "") first, you can do something like this:
if (access.getModuleLevel().equals("")) {
// print error message
return;
}
// rest of the code that should be executed
7 (commented on others PR)
instead of checking if (access.getChapterLevel() != "") first, you can do something like this:
if (access.getChapterLevel().equals("")) {
// print error message
return;
}
// rest of the code that should be executed
8 (commented on others PR)
instead of checking if (access.getModuleLevel() == "") first, you can do something like this:
if (!(access.getModuleLevel().equals(""))) {
// print error message
return;
}
// rest of the code that should be executed
9 (commented on others PR)
will getting the chapter in ReviseCommand be better? means you pass the chapterIndex in the ReviseCommand()
10 (commented on others PR)
This method is not needed, it has been changed to loadCard
11 (commented on others PR)
Would the original way be better?
Admin admin = new Admin(storage.loadModule());
Then don't need to import the ModuleList class
12 (commented on others PR)
Should all these be under Ui class instead?
13 (commented on others PR)
Should return ListDueCommand()?
14 (commented on others PR)
This method not needed as well
15 (commented on others PR)
Do not need to pass in Storage object
16 (commented on others PR)
Do not need to pass in Storage object
17 (commented on others PR)
Yes
18 (commented on others PR)
I think for this, you can have a return after line 41 so that you would not need the else part. Then the rest of the code will follow. Something like this:
if (dueChapters.size() == 0) {
ui.showToUser("You have no tasks due today! Please check back again tomorrow!");
return;
}
// rest of the code
19 (commented on others PR)
you can use ui.showToUser
20 (commented on others PR)
you can use ui.showToUser
21 (commented on others PR)
you can use ui.showToUser
22 (commented on others PR)
maybe you should check if the user entered a valid argument? for example you can check if the user entered a valid date, and if the user user entered 'history', you can pass today's date as the argument
23 (commented on others PR)
Maybe you call createHistoryDir in the method createAdmin in storage.
And for createHistory, you can call it in the method saveHistory
24 (commented on others PR)
instead of checking for history here, you can check in loadModule in storage instead. so that it wont add the history folder as a module object
25 (commented on others PR)
instead of checking for dues here, you can check in loadChapter in storage instead. so that it wont add the due folder as a chapter object
26 (commented on others PR)
if the due date is null, you can show something like "No due date" instead of "due by null"
27 (commented on others PR)
if the due date is null, you can show something like "No due date" instead of "due by null"
28 (commented on others PR)
you can use setIsModuleLevel() to do this
29 (commented on others PR)
you can use setIsAdminLevel() to do this
30 (commented on others PR)
you can use setIsModuleLevel() to do this
31 (commented on others PR)
you can use setIsChaptereLevel() to do this
32 (commented on others PR)
these 2 methods not needed anymore
33 (commented on others PR)
maybe you can do throw new FileNotFoundException(message) then it will show the error at Kaji.java
34 (commented on others PR)
this line can be shift to after line 54: access.setChapter(chapter)
so you load the cards first. and if the chapter file cannot be found then access wont set anything yet
so access.setChapterLevel should be after loading the cards
35 (commented on others PR)
this line can be shift to after line 56: access.setModule(module)
so you load the chapters first. and if the module cannot be found then access wont set anything yet
so access.setModuleLevel should be after loading the chapters
36 (commented on others PR)
i think you can leave GoCommand as Command. but if its working then its fine
@neilbaner
(33 comments)1 (commented on others PR)
Do you think this is better here, or in the CliUserInterface class? I did do it this way in my iP, but I'm not sure this is necessarily the better way to do it.
2 (commented on others PR)
Does this ever get executed? I thought if there's an exception it will only execute the catch block.
3 (commented on others PR)
This is probably ok for now, but we should really do something a bit more useful to the user than just printing the stack trace, perhaps throw a custom exception.
4 (commented on others PR)
Maybe later we should create a ZeroNoteException class that all the regular exceptions will inherit from? For now this should be fine though.
5 (commented on others PR)
Should this really be static?
6 (commented on others PR)
We should probably implement a custom exception for this, but it's probably fine for now...
7 (commented on others PR)
The whole thing inside the print statement could be refactored into the TaskList class, as a toString()
method or something, do you agree?
8 (commented on others PR)
This should probably be changed in the future to include a logo for Zer0Note.
9 (commented on others PR)
Could we just use input[1]
for this?
10 (commented on others PR)
We could also potentially add this as a field in CliCommand, do you think that might be a good idea? Since every command will have a command word.
11 (commented on others PR)
We could have subclasses of CliCommand for commands with and without arguments, and the subclass with arguments could contain these fields to be overridden. Do you think that might work?
12 (commented on others PR)
We should add custom exceptions for all of these, catch those in CliUserInterface, and use an inherited printErrorMessage()
method or something right?
13 (commented on others PR)
The function doesn't actually throw any exceptions though, as confirmed by the method signature, right?
14 (commented on others PR)
I could be wrong here, I'm sure the creators of IntelliJ know more about Java than me 😛
15 (commented on others PR)
Potentially put the title and the content on separate lines?
16 (commented on others PR)
Should we add a setTitle()
as well?
17 (commented on others PR)
I think execute() should call the methods below as necessary, shouldn't it?
18 (commented on others PR)
So when you want to list the notebooks, the CliUserInterface can do something like:
CliCommand command;
if(input.startsWith("List"){
command = new List(commandArgs, noteBookList);
}
...
command.execute();
And then in the execute method:
public void execute() {
switch(commandArguments) {
case "nsp":
listNotebooks_nsp();
break;
...
}
}
Not particularly good code up here, but I think you get the idea of what I meant, right?
19 (commented on others PR)
Do you think something like ApplicationState
would be a more appropriate name, since this class encapsulates more than just the mode?
20 (commented on others PR)
We only ever have one NotebookShelf per instance, so perhaps this should be renamed to notebookShelf
instead of currentBookShelf
?
21 (commented on others PR)
This should probably be renamed to match the field name, no?
22 (commented on others PR)
We should move this to a setter as discussed in the meeting right? Or am I remembering incorrectly?
23 (commented on others PR)
This could potentially be replaced by throwing new exception, couldn't it?
24 (commented on others PR)
Nice use of exceptions here 👍
25 (commented on others PR)
Image link appears to be dead, perhaps merge first and then fix to get the final URL
26 (commented on others PR)
Do you think this sentence could be linked a bit better to the rest of the text? As it stands, it seems a bit random to me.
27 (commented on others PR)
I think it's easier to do it the way we were doing it before, but just print the message after the output instead of before, this way we can easily not print it when there's an exception.
28 (commented on others PR)
We can just mark as @Deprecated
29 (commented on others PR)
To mark as @Deprecated
.
30 (commented on others PR)
Not sure this is necessary, but if at all, it should be a final, class-level field right?
31 (commented on others PR)
nice
32 (commented on others PR)
I fixed a few in my PR but others might still be wrong.
33 (commented on others PR)
Agreed.
34 (commented on own PR)
I decided to not worry about exceptions too much at this stage. There is a better way to do exceptions that I want to discuss later. For now this should be ok as it causes the program to not crash.
35 (commented on own PR)
If you feel like it sure!
36 (commented on own PR)
Thanks, it was one press of a lot of hard work and software engineering, yes, that's definitely what that was...
Ctrl-Alt-L
37 (commented on own PR)
I blame IntelliJ for automatically "optimising" that
38 (commented on own PR)
😃
39 (commented on own PR)
Because we add ...
which makes it 10. If we check for length greater than, say, 7, and then take the substring from 0 to 7, then if the title were something like Buoyancy
, it would be turned into Buoyanc...
which is actually more characters. I've seen this UI glitch before in actual, production software...
40 (commented on own PR)
phew thank you
41 (commented on own PR)
I'll see what I can come up with.
42 (other comment)
Duplicate of #7
43 (other comment)
Duplicate of #8
44 (other comment)
Duplicate of #10
45 (other comment)
This should solve #18 as well.
46 (other comment)
We could pass the input arguments, as well as the notebook list, in the constructor perhaps?Sent from my Samsung Galaxy smartphone. -------- Original message --------From: Long Nguyen >notifications@github.com> Date: 11/10/20 21:48 (GMT+08:00) To: AY2021S1-CS2113T-T12-3/tp >tp@noreply.github.com> Cc: Neil Banerjee >neilb5400@gmail.com>, Comment >comment@noreply.github.com> Subject: Re: [AY2021S1-CS2113T-T12-3/tp] Add list() function in notebook mode (#42) @longngng commented on this pull request.
In src/main/java/seedu/duke/userinterface/command/List.java:
public class List extends CliCommand {
But the list() function needs the object as well, like listNotebooks_nsp(Notebook sampleNotebook), so I'm not sure how to code it. Also, should the List class handle input arguments like "nsp"? That doesn't seem follow the principle right?
—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.
47 (other comment)
I think this PR would take care of #32 and #8 as well.
48 (other comment)
Looks like there's probably some missing imports for exceptions.
49 (other comment)
Functionality of this code has been verified to be correct. I/O redirection tests have not yet been rewritten. Merging so I can fix the style to be more consistent.
50 (other comment)
I'll try to finish as much as I can by 2100 today, after which you guys can review, merge and work on it further. Please do try to follow the style, and OOP conventions, I used as much as possible for the sake of consistency. Thanks all!
51 (other comment)
We really need to rewrite the IO redirection tests...
52 (other comment)
I believe this solves #13 and #16.
53 (other comment)
Thanks for the fixes @chuckiex3! Since you requested review from everyone else too, should I wait for more people to review before merging? I think it should be fine though.
54 (other comment)
Your wish is my seedu.Duke.userinterface.Command
😃
55 (other comment)
Implemented saving for notebooks. Loading to come soon.
56 (other comment)
Loading has now been implemented! The PR is ready for review 😄
57 (other comment)
Plan to store the name of user
How do you think we should do this? Perhaps modify the Storage class to save a file like preferences.txt
or something?
58 (other comment)
I suppose this can be marked as done for now?
59 (other comment)
I don't think this is particularly suited for Junit testing.
60 (other comment)
Is Storage something we should be testing with JUnit? I guess we could test the serialization and deserialization (especially with edge cases).
61 (other comment)
Ready for review and merge for now.
62 (other comment)
Marked as draft since it doesn't seem to be done quite yet.
63 (other comment)
Added Architecture Diagram
64 (other comment)
Noted in TODO near it.
65 (other comment)
Pushing this to v2.1 (the bugfix release) so we can have more time to discuss the appropriate approach.
66 (other comment)
Pushing to v2.1.
67 (other comment)
Pushing to v2.1.
68 (other comment)
Pushing to v2.1.
69 (other comment)
Pushing to v2.1.
70 (other comment)
Not intentionally probably committed the copy on my machine which hadn't been updated lol. Oops.
71 (other comment)
please change the theme back to cayman, thank you HAHAHA
Done.
72 (other comment)
Fixed by #195 not sure why that didn't close this issue.
73 (other comment)
Once my previous PR is merged, I'll fix this with a command prompt.
74 (other comment)
Duplicate of #157
75 (other comment)
Determined that JUnit tests are not needed for this component.
76 (other comment)
I think that would be better, yes.
77 (other comment)
I RAN THE TESTS BEFORE PUSHING WHAT IS THIS
78 (other comment)
@Lusi711 I modified some of your tests, hopefully this is ok. This is because of the changes I made to the way exceptions are thrown.
79 (other comment)
@Lusi711 Once you resolve the merge conflicts, I think this PR is ready to be merged.
80 (other comment)
Duplicate of #159
81 (other comment)
@yAOwzers Are we still going to do this?
82 (other comment)
Related to #174
83 (other comment)
I believe this was fixed somewhere as the section seems to have been updated.
84 (other comment)
Fixed #188 while I was at it...
85 (other comment)
Why thank you!
86 (other comment)
Oh is it the formatting that was the problem? I thought it was the content.
87 (other comment)
Fixed.
88 (other comment)
Wouldn't mind tbh...
89 (other comment)
And I see you're on it already 😛
90 (other comment)
Not happening realistically in the time we have. We should add notes in the UG and DG to note that tags are not currently saved.
@Kafcis
(32 comments)1 (commented on others PR)
According to the UG, the file should be data.csv. This was my mistake that I did not fix because it was temporary test code.
2 (commented on others PR)
the correct name here according to the user guide is load.csv. This was my mistake, eventually we should allow the user to change what file they are loading
3 (commented on others PR)
There is a possibility of an empty save file, should initialise maxNumber to the default of -1?
4 (commented on others PR)
Much cleaner code than the original
5 (commented on others PR)
found it a bit weird that the argument order is not the same as add task, I know that the number is a required argument so its in the front, but it might look a bit messy to others.
I would have done the same, but am also not too sure about the correctness
6 (commented on others PR)
Done
7 (commented on others PR)
Sounds good!
8 (commented on others PR)
The TaskList initialises the maxNumber as -1. We can either change it here or there as long as its standardised. I suggest changing it here because I used this in some of the test code and allows us to check fo rpotentially unused TaskLists
9 (commented on others PR)
This if else block can be replaced with a switch block to improve readability
10 (commented on others PR)
This is a good idea
11 (commented on others PR)
small nitpick, i can start from 0 then go to i>6, functionality wise is the same but might be more readable for others
12 (commented on others PR)
not sure if we should support having tasks with the same task number, as long as the cloned tasks are not saved should be ok.
13 (commented on others PR)
Nice cleanup here, eventually should be moved to Time class
14 (commented on others PR)
need more parser code to change this later
15 (commented on others PR)
maybe can use the string "+-------"?
16 (commented on others PR)
same thing as line 104, maybe can use only 1 string
17 (commented on others PR)
not sure if this is going to be flagged in the checkstyle
18 (commented on others PR)
Something similar is in 115, could consider making it an attribute or a method call from the Task/Time class
19 (commented on others PR)
I think that keeping these this here is better, it keeps calling bits and pieces all the time. If we do eventually do refactor it, the class needs to put the entire timetable in one shot
20 (commented on others PR)
we can just throw an error that says that the tasknumber is conflict with another, I'll handle this in the allocator PR
21 (commented on others PR)
awesome
22 (commented on others PR)
Add a check if the taskRecurrence is Today or a particular date, probably don't need "every today" to be printed out
23 (commented on others PR)
Basic functions are covered that's good. Cleaned up the diagram a little bit, check it out and tell me what you think
title List
actor ATHENA
ATHENA->ListCommand: execute()
activate ListCommand
ListCommand->*ImportanceFilter:
activate ImportanceFilter
ImportanceFilter-->ListCommand:
destroy ImportanceFilter
ListCommand->*ForecastFilter:
activate ForecastFilter
ForecastFilter-->ListCommand:
deactivate ForecastFilter
ListCommand->*Timetable:
activate Timetable
Timetable->+TaskList: getFilteredList()
TaskList->+TaskFilter: isTaskIncluded()
TaskFilter-->-TaskList:
TaskList->+ForecastFilter: removeExcludedDates()
ForecastFilter-->-TaskList:
destroy ForecastFilter
destroy TaskFilter
TaskList-->-Timetable:
Timetable->Timetable: populateTimetable()
activate Timetable
deactivate Timetable
Timetable-->-ListCommand:
ListCommand-->-ATHENA:
24 (commented on others PR)
Rest of this looks good, one small suggestion to change this to TaskList->*Task: , it makes the arrow point directly to the block at the top.
25 (commented on others PR)
Might want to include the actor here
26 (commented on others PR)
need an activation bar here
activate AddCommand
27 (commented on others PR)
Cleaned up the diagram a bit
title Edit
EditCommand->+TaskList: editTask()
activate EditCommand
TaskList->TaskList: getTaskFromNumber()
activate TaskList
deactivate TaskList
TaskList->-TaskList: createTask()
activate TaskList
TaskList->*Task:
activate Task
deactivate Task
TaskList->TaskList: checkClash(possibleEditedTask)
activate TaskList
deactivate TaskList
TaskList->+Task: edit()
Task-->-TaskList:
TaskList-->-EditCommand:
deactivate TaskList
28 (commented on others PR)
Nicely done. one small edit will be making the activation bar for the ListCommand
avtivate ListCommand
29 (commented on others PR)
Maybe we should clean up the spaces
30 (commented on others PR)
might want to get rid of spaces
31 (commented on others PR)
spaces
32 (commented on others PR)
Add your role as Technical advisor here
33 (commented on own PR)
I gladly accept this nitpick
34 (commented on own PR)
I refactored this part and deleted the overloading because it was not being used
35 (commented on own PR)
It deletes the correct thing, but I have to agree that the naming is a bit off
36 (commented on own PR)
The overloaded method is to distinguish tasks that require a new index vs a preloaded task with its own assigned index
37 (commented on own PR)
I'll just keep it in for now until Alston is done with the main Athena
38 (commented on own PR)
I'll just keep it in for now until Alston is done with the main Athena
39 (commented on own PR)
I'll change it to isFlexible
40 (commented on own PR)
I need the sorting according to time so ArrayList is actually a bit better for this scenario, I might need a bit of help with the time sorting, not very clear how to do it
41 (commented on own PR)
Ok will change soon
42 (commented on own PR)
Its the code coverage report files, they might appear again so I put it here so it won't be added accidentally
43 (commented on own PR)
That works too
44 (commented on own PR)
I changed it to DAY so we do not need to make a new Forecast value
45 (commented on own PR)
Eventually we can assign it in the settings, its a magic number for now
46 (commented on own PR)
It actually quits if it hits this part so the user would not notice
47 (commented on own PR)
It's a magic number, need to sync up with the timetable. It's to tell what is a valid time slot. If it goes over this number then it stops
48 (commented on own PR)
Yup, it was that originally. I think I changed it because of the demo
49 (other comment)
I was thinking the same thing actually, it is a bit difficult to store 2 separate sets of data in one csv
On Sun, 4 Oct 2020 at 10:05 PM, Daniel Lim Wee Soong > notifications@github.com> wrote:
@Kafcis >https://github.com/Kafcis> I think we don't need to store the timetable generated from the task list in a file, because the same timetable can always be generated from the same task list. Looking at the scale of this, there won't be much impact in performance if we generate the timetable when the program starts. But if you wanna do it, you can use getTimetable() to get the week's timetable.
@alstontham >https://github.com/alstontham> The timetable given to the Ui will be a list of TimetableDay objects, each containing a date and a list of Tasks. So you can work on printing that now.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub >https://github.com/AY2021S1-CS2113T-W12-2/tp/pull/8#issuecomment-703260677>, or unsubscribe >https://github.com/notifications/unsubscribe-auth/ALNIBIWF2UI3JON5UFBE72DSJB6J5ANCNFSM4SAG45PA> .
50 (other comment)
I wanted to avoid changing Amanda's code, but I can do it as a method
51 (other comment)
I think this is safe to merge, most of the checkstyle problems are addressed in the next PR
52 (other comment)
Duplicated
53 (other comment)
That sounds logical, I will do that as well for the subsequent PRs too
54 (other comment)
we did a quick fix before v1, I'll settle this in another PR
55 (other comment)
Yeah it's done
56 (other comment)
It actually goes to that part because I don't want to keep checking if the task exists before I delete it. I think its bad form but it prevents the code from having too many layers. At the moment it is already like 3 layers of nesting at some parts. The comment is just to make sure it doesn't trip the checkstyle
57 (other comment)
The format of the sequence diagram can be changed and I don't know which one we want to use. I can put them in quite fast
58 (other comment)
The time allocator test has to be completely redone, I'll pull from your branch and work it out
59 (other comment)
I can't replicate this either
60 (other comment)
Confirm, might need to update UG to clarify
61 (other comment)
If it's a flexible task then the user implies that they let athena control the time, I will make it clear in the UG
62 (other comment)
I think its all good, can merge anytime
63 (other comment)
It is failing a filter test for one of the TaskListTests, I don't think I did anything to break it
64 (other comment)
Yeah I wanted to put this here before I passed out
@anqi20
(32 comments)1 (commented on others PR)
Good Job!
2 (commented on others PR)
I think a better naming for this would be "questions"
3 (commented on others PR)
I think we should all following this naming convention of "all...".
4 (commented on others PR)
All these naming makes it easier to understand!
5 (commented on others PR)
The JUnit test looks good!
The naming of the method is accurate as well.
6 (commented on others PR)
Would "chosenOption" be a better way to name it?
7 (commented on others PR)
Nice, using the common interface makes everything easier and neater!
8 (commented on others PR)
I'm a bit confused with this. It's a add method but it removes the option...
9 (commented on others PR)
Nice catch on the accessibility
10 (commented on others PR)
Maybe we could add something here for users who had wrote commands not in our list. I can create something in Ui
11 (commented on others PR)
Awesome refactoring!
12 (commented on others PR)
Just some minor details, would the first part of the naming be better to follow the naming in Topic? getDescription_... Similar to getsQuestionList_questionList_returnsQuestionList( )
13 (commented on others PR)
Oh thank you for adjusting the formatting!
14 (commented on others PR)
Oh sorry I missed this out!
15 (commented on others PR)
Oh, it sounds a lot nicer!
16 (commented on others PR)
Nice catch! Sorry for that error!
17 (commented on others PR)
Would it be better if we have a few words to introduce the diagram first?
18 (commented on others PR)
Nice catch on removing the empty constructor too!
19 (commented on others PR)
Ah this makes it look a lot cleaner and easier to understand! Thanks!
20 (commented on others PR)
Thank you for doing up the table of contents! It looks neater and easier to understand now!
21 (commented on others PR)
Thanks for removing the magic literals!
22 (commented on others PR)
Nice catch!
23 (commented on others PR)
This makes it a lot clearer!
24 (commented on others PR)
"It requires altering of the code"?
25 (commented on others PR)
Sorry correct me if I'm wrong but it's supposed to be "E-Duke-8" right
26 (commented on others PR)
Take note of the magic number!
27 (commented on others PR)
Great catch!
28 (commented on others PR)
Is it good to put a .trim() here?
29 (commented on others PR)
Yep! Just as what we discussed
30 (commented on others PR)
Does this require @params
31 (commented on others PR)
I think this method returns Displayable
32 (commented on others PR)
Sorry Joel, what I meant was should there be a @return here?
33 (commented on own PR)
Ok, I will take note of this and change them. Thanks for the explanation!
34 (commented on own PR)
👍
35 (commented on own PR)
Ahh, slipped my mind! Thank you for pointing it out!
36 (commented on own PR)
Ok done!
37 (commented on own PR)
Ok, will look out for it. Thank you!
38 (commented on own PR)
Okie!
39 (commented on own PR)
Oh ok, I think it's 4! Thank you for spotting it!
40 (commented on own PR)
Okie, I will look into this. Thank you!
41 (commented on own PR)
Updated! Thank you!
42 (commented on own PR)
Oh ok, I have changed this too! Thank you!
43 (commented on own PR)
Yep, I have updated the PPP as well. Thank you for the comments.
44 (commented on own PR)
Thank you for spotting! I have updated the diagram already
45 (other comment)
We have decided that the users can just change the database via the Json files
46 (other comment)
Fixes #119
47 (other comment)
The user guide has already been updated.
48 (other comment)
User guide has been updated
49 (other comment)
Looked through this together as a team during the buggy check
@felixhalim
(30 comments)1 (commented on others PR)
It would be better to change to getProductName();
2 (commented on others PR)
I think it is okay to put it here since this comment is command-specific.
3 (commented on others PR)
I think it is okay to call it here since it is command-specific
4 (commented on others PR)
It would be better to mention specifically what are being imported instead of using wildcard *
5 (commented on others PR)
Good job on coming up with the sort algorithm, Kian En! I would move this to AddPlaceCommand.java
so that it sort only if the user added a new place.
6 (commented on others PR)
It supposed to be userInput.startsWith("search ")
. If not, input like searchex
will be detected as valid command.
7 (commented on others PR)
Yep, this has been resolved.
8 (commented on others PR)
It is preferred to mention explicitly which packages are imported
9 (commented on others PR)
What is the difference between this and line 33?
10 (commented on others PR)
No newline here
11 (commented on others PR)
This supposed to be rmdir /s /q trippie_data
12 (commented on others PR)
del
is used to delete file. Based on runtest.sh
looks like you wanted to delete a directory and its content, right? Use rmdir /q /s trippie_data
instead, it is equivalent to rm -rf
13 (commented on others PR)
Since your PC OS is macOS and mine is Windows (Error is in .bat file which is executable in Windows). I will take-over this error.
14 (commented on others PR)
Isn't this deleteExpenseCommand?
15 (commented on others PR)
Add newline
here
16 (commented on others PR)
Another newline
here
17 (commented on others PR)
An alternative way is to use .isEmpty()
method
18 (commented on others PR)
Please add newline
here
19 (commented on others PR)
Perhaps deleting this method as we aren't going to perform any test?
20 (commented on others PR)
Great implementation of regex
21 (commented on others PR)
Good, this way the sorting algorithm will terminate early 😄
22 (commented on others PR)
Good job in completing the testing guide!
23 (commented on others PR)
Sorry, after checking it, I think both of the approaches will lead to same result 😄
|
is bitwise or
, can you explain why you choose this approach?
24 (commented on others PR)
Good catch!
25 (commented on others PR)
Perhaps name the variable to isSwapped
?
26 (commented on others PR)
Great message
27 (commented on others PR)
This will affect the old test case
28 (commented on others PR)
Nice! You updated the test-case
29 (commented on others PR)
I like how you abstract this method!
30 (commented on others PR)
Great! this solves the file deletion
problem on Windows!
31 (commented on own PR)
Thank you for pointing that out 👍
32 (other comment)
This is just a test
33 (other comment)
Please review #22
34 (other comment)
Apparently Java has a problem with a dash. So, I suggest implementing /
(slash) instead of -
(dash) for the command format. @ShawnTanzc need to adjust accordingly.
35 (other comment)
Apparently Java has a problem with a dash. So, I suggest implementing / (slash) instead of - (dash) for the command format. @ShawnTanzc need to adjust accordingly.
36 (other comment)
It doesn't pass Gradle check
37 (other comment)
remember to update the help stuff
Do you mean on the HelpCommand.java?
38 (other comment)
This is fixed in #75, right?
39 (other comment)
This is for About-us.md
40 (other comment)
Javadoc is still on progress
41 (other comment)
Thank you, we will consider this in future development 👍
42 (other comment)
Video is uploaded to LumiNUS at 10.52 a.m. today by @ivanderjmw
@josephhhhhhhhh
(29 comments)1 (commented on others PR)
good job!
2 (commented on others PR)
Ah yes, this makes sense. We can cut down on unnecessary variables this way!
3 (commented on others PR)
The DisplayableList class seems a bit redundant at the moment as its functions are very similar to an actual ArrayList. We should look into developing this class more to better manipulate the lists in our program.
4 (commented on others PR)
The coding logic here looks really good! Nice work!
5 (commented on others PR)
Since you're getting QuizQuestionList with this function, would calling the new QuizQuestionsManager object quizQuestionList instead of quizQuestionsManager?
6 (commented on others PR)
The diagrams all look really good! Nice.
7 (commented on others PR)
Looks really good, the explanation is methodical, while using concise language. Nice job!
8 (commented on others PR)
Thank you for helping me replace my magic literals as well! All of it looks good to me. Will merge it in!!
9 (commented on others PR)
Nice, you remembered to use System.lineSeparator() instead of "\n"!
10 (commented on others PR)
Good thinking, this interface will allow us to differentiate functionality more cleanly between certain lists that are purely for display/access, vs others that the users might wish to affect. Nice implementation!
11 (commented on others PR)
Nice removal of magic literals.
12 (commented on others PR)
LGTM, now bookmarks can be saved across multiple uses of the program.
13 (commented on others PR)
Looks way neater, nice!
14 (commented on others PR)
This looks really good! Thank you for settling this!!
15 (commented on others PR)
Well implemented!
16 (commented on others PR)
Nice, this covers a lot of ground.
17 (commented on others PR)
Alot of coverage here as well, great implementation of the Junit test!
18 (commented on others PR)
This is really well-phrased, really hand-holds the user in using the program.
19 (commented on others PR)
This is really detailed, and addresses very realistic issues! Thanks for doing this!!
20 (commented on others PR)
Maybe it would be better to refer to them as objects as opposed to their abstract meaning? For example instead of " Note
objects in a NoteList
from a specified Topic
. " you can say "Note
objects stored in a NoteList
object that share the same Topic
parameter."
21 (commented on others PR)
Would it be possible to use String constants to remove the magic literals?
22 (commented on others PR)
Take note the magic literal here, might want to replace it with a String constant!
23 (commented on others PR)
Would it be possible to use purely the UI Class to output messages?
24 (commented on others PR)
Would it be possible to use purely the UI Class to output messages?
25 (commented on others PR)
Good idea to make these conditionals the criteria to move forward with the quiz command parsing.
26 (commented on others PR)
Well thought out! Nice implementation which integrates the conditionals from before.
27 (commented on others PR)
Good catch.
28 (commented on others PR)
As discussed, this will be important to check whether an error needs to thrown or not.
29 (commented on others PR)
Looks good!
30 (commented on own PR)
Good point! Will make the recommended alteration right away.
31 (commented on own PR)
Ah yes, pardon my folly, will adjust it in future. Thank you!
32 (commented on own PR)
It was initialised above the if loop.
33 (commented on own PR)
Alright, noted! Will look into how to make the implementation better in future!
34 (commented on own PR)
Roger, this makes a lot of sense. Thank you!
35 (commented on own PR)
Understood! And done!!
36 (commented on own PR)
Understood! And done!!
37 (commented on own PR)
Excellent idea, I shall get on it right away. Hold off on merging this branch.
38 (commented on own PR)
Roger, thank you!
39 (commented on own PR)
Gotcha
40 (commented on own PR)
Oh yeah you're right, will make adjustments to it in a future update! Thanks for pointing it out!
41 (commented on own PR)
This one I'm not too sure, I noticed other classes with blank strings as well, figured we were leaving empty strings as empty strings.
42 (commented on own PR)
Done. Thanks!
43 (commented on own PR)
Done!
44 (commented on own PR)
Good catch, will do so right away.
45 (commented on own PR)
Roger, will settle this, thank you.
46 (other comment)
Overall, well done changing your name.
47 (other comment)
This feature has been added into the UG.
48 (other comment)
I have added the correct answer indicator, however I think the hints should be left for the actual quiz. @anqi20 @kstonekuan @Zhi-You @joelngyx What do you all think?
49 (other comment)
For this issue, does everyone think we should just make this case error handle with invalid format? @joelngyx @kstonekuan @Zhi-You @anqi20
@amanda-chua
(29 comments)1 (commented on others PR)
For this i will be parsing in an integer alr so i think can remove the getTaskNumber method.
2 (commented on others PR)
For this i will be parsing in an integer alr so i think can remove the getTaskNumber method.
3 (commented on others PR)
Can replace all the println to UI methods.
4 (commented on others PR)
Remove one empty line from here.
5 (commented on others PR)
Remove empty lines from here.
6 (commented on others PR)
Remove one empty line from here.
7 (commented on others PR)
Remove one empty line from here.
8 (commented on others PR)
Remove one empty line from here.
9 (commented on others PR)
Change the importance to notes
10 (commented on others PR)
Remove extra line
11 (commented on others PR)
add space before String
12 (commented on others PR)
remove the empty lines
13 (commented on others PR)
remove the empty line
14 (commented on others PR)
I think taskListWithoutTask
should be editedTaskList
15 (commented on others PR)
I think taskListWithoutTask
should be taskListWithDone
16 (commented on others PR)
Change taskListWithoutTask
to taskListWithDone
17 (commented on others PR)
Might want to change the method name to smt like deleteTask_successfully
?
18 (commented on others PR)
Maybe can give examples of ABC
19 (commented on others PR)
List out the commands individually instead of the *
20 (commented on others PR)
Is it missing the high importance shortcut?
21 (commented on others PR)
TASK-ID
instead of TASK_ID
22 (commented on others PR)
TASK-ID instead of TASK_ID
23 (commented on others PR)
TASK-ID instead of TASK_ID
24 (commented on others PR)
AthenaUi
instead of ATHENAUI
25 (commented on others PR)
missing AthenaUi
26 (commented on others PR)
AthenaUi
instead of ATHENAUI
27 (commented on others PR)
missing AthenaUi
28 (commented on others PR)
Not sure if the hyperlink will work cus it didnt work in mine.
Try using team/vishesh-arora.jpg
instead of docs/team/vishesh-arora.jpg
And also the file name should be your github name not vishesh-arora
29 (commented on others PR)
Try using docs/team/alstontham.md
instead of team/alstontham.md
Change the file name to your github username
30 (other comment)
For add command: throw exception when name or time of task is not in the user input.
31 (other comment)
#225
32 (other comment)
I think is write the shortcut format in oso?
33 (other comment)
I think its to add l [f/FORECAST] [i/IMPORTANCE]
under the command format in the user guide. But since we changed the style of the user guide already, I think this issue can be closed.
34 (other comment)
Removed the description for the optional parameters at the description of command format at the top. Shifted down to the respective command's Intermediate feature
.
@samuelchristopher
(28 comments)1 (commented on others PR)
inputs[1]
2 (commented on others PR)
this naming brings clarity! good job sam
3 (commented on others PR)
why printing and returning a string? doesnt the return string from executeCommand
in every command get printed?
4 (commented on others PR)
nice :^)
5 (commented on others PR)
nice job on including the id here shreyas
6 (commented on others PR)
we will need to change this to "n" soon!
7 (commented on others PR)
nice job on this sean! thanks so much
8 (commented on others PR)
oh sean, this was added for the Project View. but its ok! i can modify project view to take care of this case when the priority is not set
in summary; no changes required for this on your end
9 (commented on others PR)
is there a reason why we need this?
10 (commented on others PR)
nice job in initialising!
11 (commented on others PR)
hi sam, what is inputWords
12 (commented on others PR)
interesting
13 (commented on others PR)
thanks for customising this error!
14 (commented on others PR)
well done on making this more concise
15 (commented on others PR)
thanks for resolving this! this line caused some errors in my code
16 (commented on others PR)
interesting, nice adoption of the use of collections
17 (commented on others PR)
agree
18 (commented on others PR)
so nice!
19 (commented on others PR)
would writing it like this making it easier to understand?
/**
* Assign specified member to specified project. The sequence of steps executed are:
* 1. Add TeamMember object to ArrayList of TeamMember in specified Project.
* 2. Add Project object to ArrayList of Project in specified TeamMember.
* 3. Prints member assigned to project message.
*
* @param projects ArrayList of Projects.
* @param teamMembers ArrayList of TeamMembers in the program.
* @return Print member assigned to project message.
* @throws EzExceptions Invalid TeamMember ID if when parameter values provided is outside
* the range of the TeamMember list.
*/
20 (commented on others PR)
should we follow the way i suggested above?
21 (commented on others PR)
should we specify exactly what error it throws?
22 (commented on others PR)
would it be better to specify what error is thrown?
23 (commented on others PR)
nice job on the logging
24 (commented on others PR)
should it be "that was passed to it"?
25 (commented on others PR)
should be "deadline added UI message"?
26 (commented on others PR)
should be "priority added UI message"?
27 (commented on others PR)
thanks for the change!
28 (commented on others PR)
should it be "updates"?
29 (commented on own PR)
dont need cause the variable is already initialised on this line
30 (commented on own PR)
thanks for pointing that out sam ! fixed here 7cd85a2268c4e2eeb93a769ebcb82c17dd9f30f9
31 (commented on own PR)
ok! thanks man
32 (commented on own PR)
thanks sean!
33 (commented on own PR)
@riazaham the else block would be blank though right?
34 (commented on own PR)
can extract this portion into its own function
35 (commented on own PR)
refine this comment
36 (commented on own PR)
refine this comment
37 (other comment)
progress as of 19 october 2020, 7:30 pm
moving on to extend task functionality first
38 (other comment)
Hi Sean @thatseant , let me answer the points:
- There's no way to display project view other than selecting project.
Is there a need to display project view other than selecting the project?
- Multiple members are not shown.
Currently, each task can be assigned on member.
- Tasks are not numbered so it is hard for user to see index of tasks.
Oh okay! I have built this from the mock-up that we approved and I did not include the index at that point. Maybe for the next iteration we can add an index column? For now, users can use the list command?
@abnermtj
(28 comments)1 (commented on others PR)
perhaps remove some of the old Duke descriptions
2 (commented on others PR)
perhaps a more apt name than executeFunction(), idk
3 (commented on others PR)
maybe remove the spacing between first line of the method and the next, for consistency
4 (commented on others PR)
er like the line i commented on said duke.txt and list of tasks
5 (commented on others PR)
i'll probably try to move this to cheat sheet class
6 (commented on others PR)
Not really sure about the use of super here since DirectoryIsEmptyException didn't do it
7 (commented on others PR)
to keep consistent with other if statements, might wanna do a .trim() here
8 (commented on others PR)
not sure if line 62 to 67 is needed. line 65-67 seems like it can go into 69.5
9 (commented on others PR)
A few of the class names sound more like method names. Perhaps instead of ParseDataFIle, DataFileParser
10 (commented on others PR)
perhaps parse execution can be renamed it took me a while to understand 94 - 97. perhaps it could be renamed to parsedData or something
11 (commented on others PR)
it seems like for both read and write classes will create Files if not present already, perhaps make It only the job of write to create both the folders and files
12 (commented on others PR)
perhaps this could be aptly named as my understanding is that it points to an actual file and not a directory.
13 (commented on others PR)
clean code makes me go yes
14 (commented on others PR)
good method namings
15 (commented on others PR)
big brain
16 (commented on others PR)
probably can use getCheatSheet(name) instead
17 (commented on others PR)
I'm not really sure if they would be nitpicky on the use of '*', I've been trying to avoid it because of that.
18 (commented on others PR)
Code looks clean, LGTM!
19 (commented on others PR)
i think so but it's really ugly and I hate it
20 (commented on others PR)
perhaps cheatSheetList can be moved to the parent class Command
21 (commented on others PR)
Hm, can i ask why this was repeated perhaps this was a mistake?
22 (commented on others PR)
perhaps use the word mode here instead of command
23 (commented on others PR)
there seems to be some line break error here
24 (commented on others PR)
could perhaps indent this format and flag lines to be consistent with other commands
25 (commented on others PR)
Nice enhancement
26 (commented on others PR)
I feel that this variable should not be in the Printer class, and that it should be a variable in the command class which is supposed to encapsulate all info relevant to command execution.
then in Parser you could set this variable which is now inside the command object.
27 (commented on others PR)
fixed for u
28 (commented on others PR)
image background is blue here weird
29 (commented on own PR)
alright fixed!
30 (commented on own PR)
kk
31 (commented on own PR)
alright! done
32 (commented on own PR)
Alright done!
33 (commented on own PR)
ops
34 (other comment)
Ops i merged forgetting to check the tests LOL Brandon has fixed the tests
35 (other comment)
Done for view command
36 (other comment)
alright, will do
37 (other comment)
Fixes #97
38 (other comment)
Fixes in #237
@brandonywl
(25 comments)1 (commented on others PR)
Is it perhaps better in the long run if we do it via a ArrayList
ArrayList<String> commandHelpList = new ArrayList<String>();
commandHelpList.add(AddNoteCommand.getUsageNote());
commandHelpList.add(AddEventCommand.getUsage());
commandHelpList.add(CreateTagCommand.getUsage());
commandHelpList.add(DeleteNoteCommand.getUsage());
commandHelpList.add(DeleteEventCommand.getUsage());
commandHelpList.add(DeleteTagCommand.getUsage());
commandHelpList.add(EditNoteCommand.getUsage());
commandHelpList.add(EditEventCommand.getUsage());
commandHelpList.add(ExitCommand.getUsage());
commandHelpList.add(FindCommand.getUsage());
commandHelpList.add(ListEventCommand.getUsage());
int i = 0;
resultString = "";
for (String command : commandHelpList) {
String color = (i % 2 == 0) ? COLOR_CYAN_STRING : COLOR_WHITE_STRING;
i++;
resultString += command + InterfaceManager.LS + color;
}
return resultString;
2 (commented on others PR)
Naming issue on the getCommandUsage
3 (commented on others PR)
Should we standardize using pointer Boolean or primitive boolean?
4 (commented on others PR)
Similarly, perhaps we should change to boolean if the parameter is not necessary in defining generics.
5 (commented on others PR)
Need to rename this as well as COMMAND_USAGE_NOTE
6 (commented on others PR)
Small error on my PR that wasn't caught. Should add full stop.
7 (commented on others PR)
Should also rename this. Apologies for the sloppy naming.
8 (commented on others PR)
Good catch on standardizing this so it's easier to read across the board
9 (commented on others PR)
I'm just afraid if we add more commands down the line we need human intervention to always check if the colour ordering is correct. Doesn't affect any functionality so it's not important.
10 (commented on others PR)
Will clean up naming after 1.0
11 (commented on others PR)
Perhaps follow standardization after Code Review 1.0, put an empty line between group of imports. Group the import by usage/type.
12 (commented on others PR)
You should swap the two. assertEquals method arguments are expected and actual. For the sake of debugging in the future it would be better if we caught it now
assertEquals(NOTE1_TITLE + " pinned: " + 'N', getExecutionStringInputIndex(notebook, 0));
assertEquals(NOTE2_TITLE + " pinned: " + 'Y', getExecutionStringInputIndex(notebook, 1));
13 (commented on others PR)
assertEquals(NOTE1_TITLE + " pinned: " + 'N', getExecutionStringInputTitle(notebook, NOTE1_TITLE));
assertEquals(NOTE2_TITLE + " pinned: " + 'Y', getExecutionStringInputTitle(notebook, NOTE2_TITLE));
14 (commented on others PR)
assertEquals(PinCommand.COMMAND_UNSUCCESSFUL_MESSAGE, getExecutionStringInputIndex(notebook, 5));
assertEquals(PinCommand.COMMAND_UNSUCCESSFUL_MESSAGE, getExecutionStringInputIndex(notebook, 3));
15 (commented on others PR)
assertEquals(PinCommand.COMMAND_UNSUCCESSFUL_MESSAGE, getExecutionStringInputTitle(notebook, "Title"));
assertEquals(PinCommand.COMMAND_UNSUCCESSFUL_MESSAGE, getExecutionStringInputTitle(notebook, "Random"));
16 (commented on others PR)
assertEquals(note1ExpectedOutput, getExecutionStringInputIndex(notebook, 0));
assertEquals(note2ExpectedOutput, getExecutionStringInputIndex(notebook, 1));
17 (commented on others PR)
assertEquals(note1ExpectedOutput, getExecutionStringInputTitle(notebook, NOTE1_TITLE));
assertEquals(note2ExpectedOutput, getExecutionStringInputTitle(notebook, NOTE2_TITLE));
18 (commented on others PR)
assertEquals(ViewNoteCommand.COMMAND_UNSUCCESSFUL_MESSAGE, getExecutionStringInputIndex(notebook, 5));
assertEquals(ViewNoteCommand.COMMAND_UNSUCCESSFUL_MESSAGE, getExecutionStringInputIndex(notebook, 3));
19 (commented on others PR)
assertEquals(ViewNoteCommand.COMMAND_UNSUCCESSFUL_MESSAGE, getExecutionStringInputTitle(notebook, "Title"));
assertEquals(ViewNoteCommand.COMMAND_UNSUCCESSFUL_MESSAGE, getExecutionStringInputTitle(notebook, "Random"));
20 (commented on others PR)
So it's basically to convert the event back to it's input line and stored right? E.g. add-e /t Tutorial /timing 2020-10-29 13:00 /repeat weekly /reminder 1-day. Looks great!
21 (commented on others PR)
I feel this is a great way to save and load!
22 (commented on others PR)
Was implementing this on my branch but since it's here it's great!
23 (commented on others PR)
Actually for reminder, it accepts the inputs as /remind 1-day 2-day 3-day. Not just /remind 1-day /remind 2-day
24 (commented on others PR)
eventDetails += (reminderPeriods.size() > 0) ? PrefixSyntax.PREFIX_DELIMITER + PrefixSyntax.PREFIX_REMIND : "";
for (String reminderPeriod : reminderPeriods) {
eventDetails += " " + reminderPeriod;
}
25 (commented on others PR)
Actually, what would happen if reminderPeriods that is stored was null? Should have a checker here if not a empty arraylist will be given
26 (commented on own PR)
Apologies. Automatically did it while importing through Intellij.
27 (commented on own PR)
I was considering that there should be no issues with duplicate events as they may be for future events that are named similarly. E.g I set an event but didn't know about recurring function so I created an event for every week.
28 (commented on own PR)
Noted on this point. Will make necessary changes.
29 (commented on own PR)
Thanks!
30 (commented on own PR)
Noted, will change. But it won't cause an error as JRE handles boxing and unboxing of the non-primitive types in the background.
31 (commented on own PR)
On this point, I was following the structure of prepareAddNote and how error handling was taken care of (Level of throw or at a higher level). Can confirm again if I should just throw the exception?
32 (commented on own PR)
My bad. Didn't pull a new copy yet with the changed error handling format. Mine had error handled at the problem level.
33 (commented on own PR)
Sorry! I didn't merge this branch with the upstream master. Done in the next commit.
34 (commented on own PR)
Good catch! Didn't see this
35 (commented on own PR)
Done. Thanks!
36 (commented on own PR)
I considered having a optional tag that allows to list by a certain search criteria, but I felt that in the interest of breadth-iterative development, this wasn't as key to developing recurring events as it is so I comment it out first.
37 (commented on own PR)
Done already. Thanks!
38 (commented on own PR)
Yes but in this case these are parameters not the constant so I don't think there's any coding standard violations.
39 (commented on own PR)
Apologies, forgot to refactor the names after changing it to final.
40 (commented on own PR)
Alright. I moved them from parser over to here because I thought it would be a central location + parser was getting very bulky already
41 (commented on own PR)
Alright. Apologies for the mistake. Was referring to an older version of the code base for styling and didn't change this part.
42 (commented on own PR)
I placed it here because following the rest I thought we would expect a COMMAND_UNSUCCESSFUL_MESSAGE. Can remove comment as well.
43 (commented on own PR)
I've re-worded the comment to be clearer as to what it means so it doesn't look as weird
44 (commented on own PR)
Ah didn't know this was possible!
45 (commented on own PR)
Why the whitespace? The tab itself is a whitespace
46 (commented on own PR)
I just left it in because in the future there might be need to develop looking at future reminders. But then again in the current iteration I saw no need for it / we may not develop it at all cause of limited use cases.
47 (commented on own PR)
I guess I was unclear. The input formats should be YYYY or YYYY-MM
48 (commented on own PR)
I used Object cause it was more type-safe. I was considering that when the timetable expands and has multi-year usage, we may have issues with recurring events and their reminders so I was implementing the equals function to be able to compare reminders. However, I revamped how the recurring events are displayed so this function actually has no more use.
49 (commented on own PR)
Er actually theres no significant need to do this as a class anymore. I was still learning on functional programming and functional interfaces in Java and their syntaxes so I implemented this as a stop-gap measure. Will update it.
50 (commented on own PR)
I think it's fine because even in the lecture notes they talk about assert as a error handling as well as a JUnit. It can be used for both. I implemented it here as an assert because if its not the same then there would be big problems with the entire remind functionality.
51 (commented on own PR)
Also, if there is difference in the two, it would indicate issues in the parser or implementation of the code, nothing on the user, hence exception is a less viable option.
52 (commented on own PR)
Was causing a bug with recurring values
53 (commented on own PR)
I did it this way initially but my concern with handling it in the formatter is that it breaks encapsulation and increases coupling. Violates the "tell-don't-ask" principle, but handing it to the formatter improves single-responsibility principle.
54 (commented on own PR)
What do you mean?
55 (commented on own PR)
Oh I did it as a separate function for compatability to other PR where I do listing. No point re-writing code just to iterate the same lines.
56 (commented on own PR)
My considerations are formatEvent would be heavily utilized when listing events. When listing multiple events we would most likely be listing them in the same box so it would make sense to have a separate function that formats them as a string.
57 (commented on own PR)
See above regarding formatEvent
58 (commented on own PR)
Tried this and the line got too long and unreadable.
59 (commented on own PR)
Sorry but what's the significance of doing that as opposed to +=?
60 (commented on own PR)
While possible, I'd lose the information on the name of the month and at each event, I'll have to check the month and see if it's different at each step. I'll basically be shifting the processing of each event from Event to here. Is there any significant reason why? If not I feel there's no added benefit to doing so.
61 (commented on own PR)
I'll see what I can do as I am already currently pushing in the year and month already. May be able to cut down the data struct shape
62 (commented on own PR)
Done from earlier PR
63 (commented on own PR)
Will resolve convo when confirmed after merging.
64 (commented on own PR)
I was thinking of doing this because it may have edited the data but failed the saving
65 (commented on own PR)
Nope! It'll display as Reminder: None
66 (commented on own PR)
Apologies. Didn't catch this mistake. I thought the error would be clearer because end time is not necessary by default. I wanted to have the error message to be missing end timing
67 (commented on own PR)
@R-Ramana can you check it now?
68 (commented on own PR)
Noted will do.
69 (commented on own PR)
I know just habitually typed it myself. No big issue here
70 (commented on own PR)
Oh I didn't see this. Thanks for pointing it out!
71 (other comment)
Are we done with this issue or do we close it?
72 (other comment)
Noted. So for this we should highlight it in the developer guide right?
73 (other comment)
Able to recreate bug when doing [list-e] vs [list-e ]. Spaces after list-e causes this issue.
74 (other comment)
Okay thanks for the clarification! Closing this.
75 (other comment)
Resolved.
76 (other comment)
Resolved. Will push branch together with refactor of listEventCommand.
77 (other comment)
Was not tagged with the PR that added tags on event. #136
78 (other comment)
Linked with Issue #95
79 (other comment)
Issue here is no / was provided, so the programme took the entire thing as it's infoDetails[1], thus throwing NumberFormatException and the index format error is shown.
80 (other comment)
Timetable should not be mutated in this fashion. I suspect that this is due to timetable and ListEventCommand or how StorageManager calls/saves the events.
81 (other comment)
Identified the issue to be when events are loaded. Only some of them are sorted or shifted in index.
82 (other comment)
Identified it to be loading non-recurring event first, then recurring event. Thus order will be shifted around and all recurring events will be placed last.
83 (other comment)
Waiting for PR #189 to merge first with all changes approved before this will merge.
84 (other comment)
Similarity detection was change from only same start time to when there is a clash in timing.
85 (other comment)
Ok, then I'll just close this issue
86 (other comment)
Will update Timetable class diagram to include leowxiang comments on using appendix to hide the large amount of commands, allowing the class diagram to be viewable when I have time.
87 (other comment)
Closed with PR #200
88 (other comment)
Sadly you did not face what I did which was 10-15 minutes of trying to use your User Guide on tutorial and it not working. It was phrased as a functionality bug initially before I looked at your code and found out it was a big issue in interpretation by the user using your UG.
E.g.
CLIrcuit Assistant is a Desktop App to implement and solve simple boolean and ?circuit circuits.
On the point of code. I understand when explaining your Interactive Tutorial, you meant to say tutorial type commands (tutorial circuit tutorial boolean). Like I said, it was a very large bucket where you used it to describe the first half of the command, with no indication of when does it refer to expected CLI output, or what is an example input.
Your usage of itallics on circuit tells me that it was something I should be looking out for, something technical. So when I saw the word technical in your format, I implied from your guide that I was to use that format but not that code. I implied what to be replaced with circuit was all the usage of code before this.
@keke101
(23 comments)1 (commented on others PR)
I think it would be better if you change this to plural form since it contains a list of members. Likewise for the class name.
2 (commented on others PR)
I agree, we should split them into subclasses, inheriting MemberCommand
for example. It's what the TA suggested.
3 (commented on others PR)
Yeap, Haoxiang, remove this file then commit again to the same branch, then we will merge this pull request
4 (commented on others PR)
I think it is ok, we can leave it as it is now and we will settle the package names later on
5 (commented on others PR)
I think wait for the next person to review then merge.
6 (commented on others PR)
What's the reason for using static members? This will be a problem when it comes to multi-project management.
7 (commented on others PR)
"member" can be changed to "members" which will make more sense as it is a list of members.
8 (commented on others PR)
Yeah. Since it is not static, you still need to pass the project object around to be manipulated, and that should be the way since there will be multi-project management in v2. This is because we need to determine which exact project we are manipulating.
9 (commented on others PR)
No need for new Hashtable>>();
since you are overwriting it at line 15.
10 (commented on others PR)
Should we trim the values at Parser
instead?
11 (commented on others PR)
Sorry, missed this out, this can be SLAP-ed right? So that REMOVETASK
and other actions that requires array list can use the same function.
12 (commented on others PR)
Alright
13 (commented on others PR)
I think no need to nest another try-catch
, you can just put another catch for NumberFormatException
in the other try-catch
.
14 (commented on others PR)
Got a getter for nextId
already, at line 37
15 (commented on others PR)
Can you remove this line? This is because line 34 has set exit = true
. In Duke.java
line 63, I have already added the check to check if the exit = true
. Also, the Duke.java
has to call sm.save()
before it exits.
16 (commented on others PR)
The code analysis stated this line don't need StringBuilder
since you are only appending on string. you might wanna change that.
The newline should also use %n
instead of \n
. %n
works similarly like the System.lineSeparator()
.
17 (commented on others PR)
This line is wrong, this is what I got when I run it
Project successfully created.
============================ PROJECT ============================
[ID: 1]
[Title: Scrumptious]
[Description: A java project]
[No members added]
[Project will start along with the first sprint]
[Project backlog is empty]
[There are no Sprints]
=================================================================
18 (commented on others PR)
Ran it with v2.0 jar file that's why I didn't see the change. Sorry about that. Looks good to me and can be merged.
19 (commented on others PR)
Mj, can help to correct this?
This header does not tally with the TBC
Not consistent with other headers like "Add Tasks to the Sprint"
20 (commented on others PR)
Mj, can help make this consistent?
This header does not tally with the TBC
Not consistent with other headers like "Add Tasks to the Sprint"
21 (commented on others PR)
Mj, can help make this consistent?
This header does not tally with the TBC
Not consistent with other headers like "Add Tasks to the Sprint"
22 (commented on others PR)
Since we already have a checkstyle gradle task which are the checkstyleMain
and checkstyleTest
, is this the same as those 2?
23 (commented on others PR)
Did you try re-cloning the project?
24 (commented on own PR)
@gmit22 Can I double check with you if this is supposed to be ==
or !=
?
25 (commented on own PR)
This PR added a shouldSave
boolean variable to all command classes. All command classes are required to define the shouldSave
value and I have edited all the command classes to define it. Basically, those that cause changes to the data will set shouldSave
to true. If you look at Duke.java
, it checks the shouldSave
value of the command class that has executed and invokes the save if shouldSave
is true.
In your case, the project should have been successfully created and the save happens before the crash. That is why it shows the project that was created in the first place.
26 (commented on own PR)
Yeap
27 (other comment)
Functionalities I think are good to go but I think some variable names should be changed. For example like those that contains a list of elements, the variable name should be plural.
28 (other comment)
Looks good to me, can merge imo.
29 (other comment)
Update: JSON.simple library is already approved
30 (other comment)
Looks good to me, I think can be merged.
31 (other comment)
checkStyle
is failing. You should fix them first before you make final commit.
32 (other comment)
Good to merge. However, we need more discussion of the structure of Ui
class because I feel it is too verbose. Maybe we can proceed with the commit for now then modify it later on.
33 (other comment)
Looks good, can be merged
34 (other comment)
Need to resolve the conflict first.
35 (other comment)
Duplicated issue
36 (other comment)
There's conflict that needs to be resolved.
37 (other comment)
Have you tried enabling the assertions? Link
38 (other comment)
You are talking about the Unit Test assertions is it? Those assertions are different from the normal assertions. Normal assertions are placed in the code using the assert
keyword, therefore the link I have provided only works for normal assertions. Anyway both have different purpose, so yeah.
39 (other comment)
I think we can merge this one, then you create another PR request for the JUnit.
40 (other comment)
Looks good to merge.
Thanks!
41 (other comment)
Don't merge this first, idk why got duplicated checks... Probably screwed up with the repo just now.
42 (other comment)
From what I see in your branch's Project.java
, it might be the case that toJson
did not include SprintRetrospectiveManager
data. Hence when the save
happens, nothing is saved for SprintRetrospectiveManager
and its sub-objects. So when you reload the program and try to access it, it is empty. You can verify this by inspecting data/data.json
file to see whether the data for SprintRetrospectiveManager
is inside.
You can refer to how I did it for SprintManager
, ProjectMembers
and TaskManager
. They should be similar to your class.
43 (other comment)
Close due to time constraint.
44 (other comment)
Close due to time constraint.
45 (other comment)
Close due to time constraint.
46 (other comment)
Hmm, not sure if this can be consider a legit bug, we can ask the teaching team.
47 (other comment)
Close since the PR for this issue has been merged.
48 (other comment)
Should be the parser filtering it out i think. Cos the regex detects that every tags must come with a value, if it doesn't, it will just ignore.
49 (other comment)
Is it perhaps a better idea for the storage classes to just catch Exception (i.e. all errors) instead? Otherwise looks good.
I feel that it is better that I specify the different exceptions that I am catching so that I know what type of errors surfaces and if I miss out any exceptions.
50 (other comment)
logs/scrum.log.lck
can be ignored, can you add an entry./logs/*.lck?
in.gitignore
before we merge?
alright i've added the necessary
.gitignore
changes
thanks man
51 (other comment)
Closed, I have confirmed with TA that we can consider this as not a bug. We can add info on this in the user guide.
52 (other comment)
Created another PR again because the other PR's (#190) history is quite dirty.
@Lezn0
(22 comments)1 (commented on others PR)
4 spaces instead of 8
2 (commented on others PR)
private static ArrayList<Bus> buses = new ArrayList<>();
3 (commented on others PR)
Might be better to separate i to a counter and a boolean for better clarity.
4 (commented on others PR)
Good test cases
5 (commented on others PR)
Nice! The tests account for most situations.
6 (commented on others PR)
if (info.name.equalsIgnoreCase(input)) {
7 (commented on others PR)
usage of getName function is redundant.
8 (commented on others PR)
Good test cases for the program
9 (commented on others PR)
might be better to move this to UI
10 (commented on others PR)
public static Bus selectBus(String busCode) {
11 (commented on others PR)
Is it possible to use an assert here instead of try-catch since the catch block is not doing anything? I'm not very sure
12 (commented on others PR)
Why is toLowerCase removed?
13 (commented on others PR)
ahh ok
14 (commented on others PR)
Good job changing the variables as it makes it more readable. Might be good to add a Javadoc to further explain it.
15 (commented on others PR)
Maybe you can justify why these feature are added.
16 (commented on others PR)
Github suggests for you to end with a new line.
}
17 (commented on others PR)
}
18 (commented on others PR)
what is this line for?
19 (commented on others PR)
You might want to either remove the empty sections or add something to it.
20 (commented on others PR)
This section is empty
21 (commented on others PR)
You can talk about how typing full description is not very user friendly compared to just typing out numbers. Especially how some descriptions can be longer than the command itself.
22 (commented on others PR)
Might be good to standardise using (Pull Request: ), currently some states that it is a PR while some are just # numbers.
23 (commented on own PR)
package seedu.duke;
import java.util.EnumSet;
public enum BusStops {
PGP("PGP","prince george residence"),
KENTRIDGEMRTSTATION("Kent Ridge MRT Station","mrt"),
OPPUNIVERSITYHEALTHCENTRE("Opp University Health Centre","opposite UHC, where students can get MC"),
YUSOFISHAKHOUSE("Yusof Ishak House", "Location with student service center and restaurants"),
CENTRALLIBRARY("Central Library","also known as CLB"),
KENTRIDGE("Kent Ridge","idk"),
MUSEUM("Museum", "Opposite Faculty of Engineering"),
UNIVERSITYTOWN("University Town","place full of fun"),
UNIVERSITYHEALTHCENTRE("University Health Centre","UHC, where students can get MC"),
OPPKENTRIDGEMRTSTATION("OppKentRidgeMRTstation","MRT"),
RAFFLESHALL("Raffles Hall","Hall located nearby Faculty of Engineering"),
KENTVALE("Kent Vale","somewhere"),
EA("EA","located in Faculty of Engineering"),
NUSIT("NUS IT","Opposite Central library"),
PGPR("PGPR","prince george residence");
private final String description;
private final String name;
BusStops(String name,String description) {
this.description = description;
this.name = name;
}
public String getDescription() {
return description;
}
public String getName() {
return name;
}
public static void listStops() {
for (BusStops info : EnumSet.allOf(BusStops.class)) {
System.out.println(info.name + " : " + info.description);
}
}
}
24 (commented on own PR)
Yup, only for testing.
25 (commented on own PR)
sure why not
26 (commented on own PR)
because I need the previous input to save into fav, new parser cannot save the old input
27 (commented on own PR)
it is just a random initialiser because you need a string within the parser to initialise it
28 (commented on own PR)
29 (commented on own PR)
i should remove addfav from being valid hahaha
30 (commented on own PR)
31 (commented on own PR)
yeah
32 (commented on own PR)
i forgot it updates automatically hahaha
33 (commented on own PR)
Oops, I used / instead of
34 (commented on own PR)
Oh oops I will fix it now.
35 (commented on own PR)
Up to you, I think. I only added it because I saw it on the module website
36 (commented on own PR)
Ah yes, I resolved the conflict and forgot to add in the assert.
37 (other comment)
Better skeleton bus data
38 (other comment)
we might have to implement our previous idea (isValid) @Lezn0 your thoughts?
sure.
@CookieHoodie
(20 comments)1 (commented on others PR)
I think this printSubject function should be implemented in Ui class instead of here right?
2 (commented on others PR)
Should have created new exception classes for flashcards. NoSubjectException is supposed to be used by subject commands, but I noticed that the topic commands were also using the same exceptions, so I guess we can change it later
3 (commented on others PR)
List of flashcards is not used, can be removed
4 (commented on others PR)
This method is no longer needed. I will delete it in the subsequent pr.
5 (commented on others PR)
Inside the constructor of the classes that extends Exception, it should call super(message). In this case, it should call super(printNoFlashcardsError).
6 (commented on others PR)
Personally I don't think it's a good idea to make Ui to return string the exception message in this way if no cuztomization is to be done to the message. Constants would be better in this case.
7 (commented on others PR)
We could create a method in Ui such as printError(Throwable err) and pass the error to that method for it to print out. In that way we let Ui handle all the printing and improves cohesion.
8 (commented on others PR)
For headings such as 1. Introduction, there should be a fullstop after the number iirc. For subheadings such as 4.1 Subjects they are not needed.
9 (commented on others PR)
Should have a full stop after 2, same for other headings
10 (commented on others PR)
imo note instead of warning would be better here, since nothing bad will happen even if they add extra spaces in this case
11 (commented on others PR)
Same thing as above
12 (commented on others PR)
The end of the activation bar looks kinda incomplete for both diagrams. In the second image the parse() call to TopicParser seems incomplete as well.
13 (commented on others PR)
I think the rightmost part is cut off.
14 (commented on others PR)
What is this change for?
15 (commented on others PR)
In this way help command with any arguments will execute the help command, for example help xxx
will also show the help list. If this is intended then just ignore this.
16 (commented on others PR)
I see, it makes sense.
In this case if the users type in subject
(extra spaces) I think it will go to the condition if (gotoSubject == null)
and show 'cannot find the subject'
if we change it to if (message.length > 2 || message[1].isEmpty())
, if will go in the condition and show NO_SUBJECT_EXCEPTION.
Do you think it would be better to show NO_SUBJECT_EXCEPTION or SUBJECT_NOT_FOUND_EXCEPTION in this case?
17 (commented on others PR)
Should include an explanation, such as 3.1.8 Viewing results - results
18 (commented on others PR)
Should include an explanation, such as 3.1.8 Viewing results - results
19 (commented on others PR)
The tasks should not show question mark (?).
20 (commented on others PR)
Should it be "save all the application data" instead?
21 (other comment)
necessary instances such as storage can also be passed in if they are needed in certain execute methods.
22 (other comment)
Issue is solved. Closing this issue.
23 (other comment)
Issue is solved. Closing this issue.
24 (other comment)
partially fixes #29
25 (other comment)
Partially fixes #107
26 (other comment)
The results.json are not duplicates, but rather results under subject or topic. I will change the file name to differentiate between the two to avoid confusion, and update the documentation to make it clear.
27 (other comment)
Partially fixes #107
Fixes #107 with updated documentation.
28 (other comment)
The current structure still looks a bit awkward, will make changes accordingly when see fit.
29 (other comment)
Other than 3, others are solved
30 (other comment)
This is related to the wrong encoding used when releasing the jar file, will be solved in the next release.
31 (other comment)
This is related to the wrong encoding used when releasing the jar file, will be solved in the next release.
32 (other comment)
This is related to the wrong encoding used when releasing the jar file, will be solved in the next release.
33 (other comment)
This is working as intended, as the result is only for that topic, not the subject.
34 (other comment)
This is related to the wrong encoding used when releasing the jar file, will be solved in the next release.
35 (other comment)
This is related to the wrong encoding used when releasing the jar file, will be solved in the next release.
36 (other comment)
This is intended behavior, as it only treats the first ; as the separator, others are treated as either question or answer.
37 (other comment)
Good suggestion, but probably won't make any modification in this regards in v2.1 due to time constraint.
38 (other comment)
Good point, but the users might also accidentally exit the application.
39 (other comment)
Fixed by PR #145
40 (other comment)
Duplicates of #94
41 (other comment)
The PR does not solve issue #112, as tested below.
I think it would suffice to just change the error message from "Invalid index format entered" to "Invalid index format entered - please enter a number smaller than " + Integer.MAX_INT; or something along those lines so that the user know they are entering a number that is not within the range or a wrong format.
42 (other comment)
The unimportant details are intentionally left out for better clarity.
43 (other comment)
Fixed by #88
44 (other comment)
Mostly addressed, only left the Topic level features hasn't updated the exit command.
45 (other comment)
Solved by #149
@alstontham
(20 comments)1 (commented on others PR)
Can call "ui.printList(ArrayList>Task> tasks)" and let the ui handle the printing
2 (commented on others PR)
Can call the printList() function from ui and pass it the filtered list (so tasklist will still handle the filtering)
3 (commented on others PR)
Could call ui method printTaskEdited(task) to print out the edited task to the user
4 (commented on others PR)
Could call ui method printTaskDeleted(task) to print out the deleted task here as well
5 (commented on others PR)
Can call ui method printTaskAdded(task) to let users know what task they added
6 (commented on others PR)
Can call the ui method printTaskDone(task) to let users know which task they marked as done
7 (commented on others PR)
@alstontham The timetable given to the
Ui
will be a list ofTimetableDay
objects, each containing a date and a list ofTask
s. So you can work on printing that now.
Ok! Will work on this
8 (commented on others PR)
@alstontham I think it would be good to overload the
toString
method so that we can print the object directly. You can work on printing out aDate
andTaskList
on your side first then we can move that code here later.
Or you can fetch this branch and modify it, then make a pull request to my branch.
Sure, will see what I can do
9 (commented on others PR)
would checkstyle flag this extra space?
10 (commented on others PR)
would checkstyle flag this extra space?
11 (commented on others PR)
I'm not sure if the main method is supposed to throw the exception? The exception should be handled at a "lower" method
12 (commented on others PR)
Maybe a more descriptive method name would be helpful?
13 (commented on others PR)
Can remove extra spaces here
14 (commented on others PR)
Do you want to shift the methods that print out the Timetable to Ui?
15 (commented on others PR)
Could you add a "\n" at the end to make the spacing of the Ui outputs consistent?
16 (commented on others PR)
Same here, add "\n" to making spacing of outputs consistent
17 (commented on others PR)
maybe you could add a note here mentioning that the user can view the task number by using the "list" command
18 (commented on others PR)
Same comment as for the delete command. Also, would be great to put "It must be a non-negative integer" on a separate line to remain consistent (refer to line 414 for the delete command).
19 (commented on others PR)
Nice! Perhaps you could include this line under "Example Usage" of the delete command also
20 (commented on others PR)
Would be good to keep the spacing consistent in each of the "Example usage" sections
21 (commented on own PR)
Hmm not sure why it shows up like this on github but I definitely had it on two separate lines in my IDE
22 (commented on own PR)
oops my bad
23 (commented on own PR)
Ok, I'll amend it
24 (commented on own PR)
will fix this
25 (commented on own PR)
oh this wasn't in my commit but was accidentally added onto this PR
26 (commented on own PR)
I'll change it to AddMissingRequiredParametersException
27 (commented on own PR)
This exception isn't finalized yet as I need to wait for the edit command to be fixed so I can test it.
28 (commented on own PR)
fixed!
29 (other comment)
Fixed the checkstyle issues in Ui.
30 (other comment)
Resolved in #55
31 (other comment)
I have added exceptions to handle when no index and an invalid index has been passed to delete
in #48
32 (other comment)
Yes, this PR partially addresses #73, however I have yet to properly implement exceptions for list
and edit
as I need to wait for those commands to be fixed first.
33 (other comment)
Sorry my bad, I thought I changed this in a previous commit but I think it got changed back.
34 (other comment)
I refactored the color and UI code in this PR so it can be compared with the UI information in the DG
35 (other comment)
I haven't finished editing the DG yet, will push some more commits soon!
36 (other comment)
Square brackets around t/TIME, add view command in the help method
37 (other comment)
I added an if statement to check if there is no deadline and prints the message accordingly. Addresses #159
38 (other comment)
Make the instructions in the UG more clear.
39 (other comment)
Same as #207
40 (other comment)
Closed by #238
41 (other comment)
@daniellimws would it be possible for you to take another screenshot of the help command without too much empty space by the right side? It would definitely help with making the screenshot on the UG more visible. Thanks!
42 (other comment)
I think this problem is partially fixed by #244?
43 (other comment)
Closed by #238
44 (other comment)
Should be fixed already:
45 (other comment)
Hmm maybe we can sort this out later since I have pulled the latest changes from master
@MuhammadHoze
(19 comments)1 (commented on others PR)
Just a small adjustment, maybe can just change the start date to 28 instead and end on 25 as shown in your sample output.
2 (commented on others PR)
Rest all LGTM
3 (commented on others PR)
Ahh alright i see
4 (commented on others PR)
This part, could you change it to String isReturnString = (isReturn) ? "1" : "0";
5 (commented on others PR)
should be list tasks
6 (commented on others PR)
should be done task 1
7 (commented on others PR)
Dont forget to add your photo too haha
8 (commented on others PR)
sorry what do u mean by usa?
9 (commented on others PR)
I think @Cao-Zeyu forgot to remove the extra 'h' from https://
Could you help omit the extra 'h' thanks
10 (commented on others PR)
This line not required anymore
11 (commented on others PR)
Same for this, not required anymore
12 (commented on others PR)
can omit out the whitespace
13 (commented on others PR)
Ahh alright then
14 (commented on others PR)
ohhh i see, i rephrased it to line 114 instead
15 (commented on others PR)
This .txt can be included in the .gitignore
16 (commented on others PR)
For this part, u can modify the pointers to this :
17 (commented on others PR)
Do include the >br>
if not they will be all on the same line
18 (commented on others PR)
This can put under .gitignore so it wont be uploaded
19 (commented on others PR)
for line 129, could you help to include Error at the front like the rest. thanks
20 (commented on own PR)
oops. alright thanks
21 (commented on own PR)
Alright, will make the adjustment for all
22 (commented on own PR)
what's that?
23 (commented on own PR)
removed
24 (commented on own PR)
removed
25 (commented on own PR)
yeap noted for all, removed them already as well as the Manifest file
26 (other comment)
I see, thanks for the edit!
27 (other comment)
Fixes #35
28 (other comment)
Looks good!
29 (other comment)
LGTM
30 (other comment)
Done!
31 (other comment)
for the failures in checks, go to yr project on IntelliJ and on the right side, you'll see a gradle tab, open it and then under the verification folder, run test and run check. it will show u the cases that has failed and then just edit them and re run the checks
32 (other comment)
LGTM! i'll merge this for ya
33 (other comment)
LGTM!
34 (other comment)
Will take a look at this and refactor my deleteCommand as well.
35 (other comment)
Sorry guys, accidentally created. suppose to merge into own repo.
36 (other comment)
LGTM!
37 (other comment)
yeah true, there will be a few more coming in soon. yeap sure 2.1
38 (other comment)
Thanks for pointing out! We will take note of this and make the necessary changes.
39 (other comment)
But there are actually modules with 0MC. eg. WR1401
40 (other comment)
Thanks for pointing out! We will take note of this and make the necessary changes.
41 (other comment)
Thanks for pointing out! We will take note of this and make the necessary changes.
42 (other comment)
Thanks for pointing out! We will take note of this and make the necessary changes.
43 (other comment)
Will most probably indicate in the UG that the due date will be 1 month from the loan date. As normally when u borrow a book , u can't really edit to your own preferred date. Most to most, an extension can be done.
44 (other comment)
Thanks for pointing out! We will take note of this and make the necessary changes.
45 (other comment)
Thanks for pointing out! We will take note of this and make the necessary changes.
46 (other comment)
Thanks for pointing out! We will take note of this and make the necessary changes.
47 (other comment)
Thanks for pointing out! We will take note of this and make the necessary changes.
48 (other comment)
Thanks for pointing out! We will take note of this and make the necessary changes.
49 (other comment)
Thanks for pointing out! We will take note of this and make the necessary changes.
50 (other comment)
Thanks for pointing out! We will take note of this and make the necessary changes.
51 (other comment)
Hi, this is still a work in progress, will most likely be ready in v2.1
52 (other comment)
Hi, actually if you do not input a priority, the default value of any task will be set as p:0. We will include this in the User guide so it will be clearer for users.
53 (other comment)
Thanks for pointing out! We will take note of this and make the necessary changes.
54 (other comment)
Changes LGTM
55 (other comment)
maybe can change the example to the optional/compulsory format. eg.
addr board games club p/1 c/CCA s/26-10-2020 e/27-11-2020 day/wed
56 (other comment)
u can put a flag to indicate that the order doesnt matter or just add more examples to satisfy them haha
57 (other comment)
LGTM
58 (other comment)
This is wrong PR. all new updates will be removed. DO NOT MERGE
59 (other comment)
LGTM!
60 (other comment)
Alright besides that, all LGTM!
61 (other comment)
Fixed
62 (other comment)
Fixed
63 (other comment)
Fixed
64 (other comment)
Already updated in UG on the format with flag notes.
65 (other comment)
Updated in UG about case-sensitivity
66 (other comment)
I can include this in the TAKE NOTE
section
67 (other comment)
it seems okay eh
68 (other comment)
LGTM
@EthanWong2212
(19 comments)1 (commented on others PR)
private static final String[] AA1 = {
"PGP",
"Kent Ridge MRT Station",
"Opp University Health Center",
"Yusof Ishak House",
"Central Library",
"Kent Ridge",
"Museum",
"University Town",
"University Health Centre",
"Opp Kent RIdge MRT station",
"PGPR"
};
private static final String[] AA2 = {
"PGP",
"Kent Ridge MRT Station",
"Opp University Health Centre",
"University Town",
"Raffles Hall",
"Kent Vale",
"EA",
"NUS IT",
"University Health Centre",
"Opp Kent Ridge MRT Station",
"PGPR"
};
2 (commented on others PR)
assert !locations[0].isempty() : "Location 0 is empty.";
assert !locations[1].isempty(): "Location 1 is empty.";
3 (commented on others PR)
Looks good. Can consider using .isblank()
4 (commented on others PR)
There are 7 commands you can use to get bus information from Nav@NUS
>Notes about command format:
5 (commented on others PR)
Would be good to start each section with a brief intro
6 (commented on others PR)
This following steps is a guide to start running Nav@NuUS.
1. Ensure that you have Java `11` or above installed in your computer.
7 (commented on others PR)
Would be good to start each section with a brief intro
8 (commented on others PR)
Perhaps we should add getters for faculty and info here too. Otherwise we can go ahead and merge
9 (commented on others PR)
Sure, we can add it when implementing the other features
10 (commented on others PR)
what is this for?
11 (commented on others PR)
Why use setUserInput instead of making new Parser object?
12 (commented on others PR)
I think it'd be good to refactor the lol to final dummy parameter for the sake of readability.
13 (commented on others PR)
parser = new Parser(DUMMY_PARAM);
14 (commented on others PR)
public static final String DUMMY_PARAM = "lol";
*/
15 (commented on others PR)
I think if we are going to prevent users from adding "redundant commands" that would include all fav commands.
16 (commented on others PR)
if (com.isValid()) {
First 2 conditions will be redundant as they will be handled by .isValid()
17 (commented on others PR)
do self explanatory code like this require java docs?
18 (commented on others PR)
Perhaps it will be good to add a conclusion as to why you chose alternative 1 over alternative 2?
19 (commented on others PR)
if (index.isBlank()) {
check for whether index is blank is sufficient so perhaps u can omit the isEmpty check
20 (commented on own PR)
I've removed this file. Wasn't meant to commit it to branch
21 (commented on own PR)
A dummy exception needs to be thrown to prevent an extra output on top of the similarloc output.
At the same time the dummy exception will be caught by execfav and auto clean the fauvist if a command is corrupted due to spell check
22 (commented on own PR)
things will be added in future
23 (commented on own PR)
things will be added in future
24 (commented on own PR)
good idea!
25 (commented on own PR)
styling error solved
26 (other comment)
Good point!
I think we can leave such prompts out of the output of commands?
@adhy-p
(19 comments)1 (commented on others PR)
A very minor thing but I think you missed a whitespace after the ':' in DETAILS.
2 (commented on others PR)
Whoa Theo god used assertions alrd 👍
3 (commented on others PR)
I think can change to something like this for better readability
cheatSheetFileBuild
.append(DETAILS)
.append(WHITESPACE)
.append(cheatSheet.getCheatSheetDetails());
4 (commented on others PR)
Isn't it better to just write the stuffs in storeCheatSheet() inside executeFunction() directly?
5 (commented on others PR)
Why do you replace the string with whitespace " " instead of an empty string "" (?)
6 (commented on others PR)
Will work on it 👍
7 (commented on others PR)
👍
8 (commented on others PR)
Actually for this one, do you want me to add a method to remove cheatsheet by index in addition to the current remove by name?
9 (commented on others PR)
For the next iteration, I think can move this to UI class. Not urgent tho
10 (commented on others PR)
I think this one should be done by the constructor, or at least outside the for loop.
11 (commented on others PR)
If can't find programmingLanguage and keyword, I think can just print everything (coz no filter?). What do you think?
12 (commented on others PR)
hmm for this one I think just do it similar to our IP? create a variable inside a for loop in print method then just print the variable?
13 (commented on others PR)
wow you guys so advanced.. using hashmap and stuff 💯
14 (commented on others PR)
Should we add .trim()
to avoid this?
15 (commented on others PR)
shall we change this to /s
?
16 (commented on others PR)
is the ???
intentional?
17 (commented on others PR)
I think just to keep it consistent with the delete confirmation, they should be able to type both y
and yes
, case-insensitive.
18 (commented on others PR)
I think this one should be
printer.printClearCheatSheetMessage(deletedCheatSheets - cheatSheetList.getSize())
or something equivalent since we don't really "delete" the preloaded ones.
19 (commented on others PR)
I think should be okay to delete this one
20 (commented on own PR)
Noticed this one is duplicated from getIsFavourite
21 (commented on own PR)
Currently when I tried
/delete /i 2
The description map will return
NAME -> NULL
INDEX -> 2
So without the null check, it will always try to get the cheatSheet by name even when the user tries to get it by its index
22 (commented on own PR)
ah yikes forgot about that HAHAH. thanks
23 (commented on own PR)
good point! will do
24 (other comment)
Outdated UG. Fixed.
25 (other comment)
Outdated UG. Fixed.
26 (other comment)
Outdated UG. Fixed.
27 (other comment)
Outdated UG. Fixed.
28 (other comment)
Outdated UG. Fixed.
29 (other comment)
Outdated UG. Fixed.
30 (other comment)
Outdated UG. Fixed.
31 (other comment)
Outdated UG. Fixed.
32 (other comment)
Outdated UG. Fixed.
33 (other comment)
Outdated UG. Fixed.
34 (other comment)
Outdated UG. Fixed.
35 (other comment)
Outdated UG. Fixed.
36 (other comment)
Outdated UG. Fixed.
37 (other comment)
Outdated UG. Fixed.
38 (other comment)
Outdated UG. Fixed.
39 (other comment)
Outdated UG. Fixed.
40 (other comment)
Outdated UG. Fixed.
41 (other comment)
Outdated UG. Fixed.
42 (other comment)
Outdated UG. Fixed.
43 (other comment)
Outdated UG. Fixed.
44 (other comment)
Outdated UG. Fixed.
45 (other comment)
Outdated UG. Fixed.
46 (other comment)
Outdated UG. Fixed.
47 (other comment)
Outdated UG. Fixed.
48 (other comment)
Outdated UG. Fixed.
49 (other comment)
Outdated UG. Fixed.
50 (other comment)
Outdated UG. Fixed.
51 (other comment)
Outdated UG. Fixed.
52 (other comment)
Outdated UG. Fixed.
53 (other comment)
Outdated UG. Fixed.
54 (other comment)
Outdated UG. Fixed.
55 (other comment)
Outdated UG. Fixed.
56 (other comment)
Outdated UG. Fixed.
@gmit22
(18 comments)1 (commented on others PR)
SO do we insert the code for adding and editting to project member list here?
2 (commented on others PR)
Yes so something like project member which will be handling all this?
3 (commented on others PR)
Good job, as @chocomango said we need to break commands into subclasses I think.
4 (commented on others PR)
I think here the main implementation is for parser to be used for your testing?
5 (commented on others PR)
Yes that makes more sense for setting it. Thanks
6 (commented on others PR)
change this get to getTask, so it becomes backlog.getTask(id -1 )
7 (commented on others PR)
Similar to add, maybe implement a removeTask also in the backlog task class
8 (commented on others PR)
Think remove it then
9 (commented on others PR)
Is the storage now taking care of all the details and storing it if the program crashes.
10 (commented on others PR)
Like for example I create a project with a valid command
eg: project /create -title try -desc create a trial project -sd 5 -duration 30
and then due to some reason it stops working and crashes due to an error. The next time I run the program, and put the command project /view
will it show the project created in the first place
11 (commented on others PR)
Okay, so every time something new is added to save, it will update the json file, am i correct?
12 (commented on others PR)
Expected outcome will be different right?
13 (commented on others PR)
Does this check for matching task description or only the title?
14 (commented on others PR)
Because I think it does not matter, should only check title
15 (commented on others PR)
So I think should put program terminates on another line
16 (commented on others PR)
Sure that works, you checked right?
17 (commented on others PR)
Maybe try iterating through something like for (Task task: projectmanager.getSelectedProject().getProjectBacklog()
?
18 (commented on others PR)
What is the purpose of this class?
19 (commented on own PR)
Yes i forgot to incorporate that change will do
20 (commented on own PR)
Agreed.
Okay so just public variable will be used here? Then won't we have to pass the project object in all the functions?
21 (commented on own PR)
Just to clarify:
So once project is created and thrown, the command returns the proj variable which is stored in the parser to edit?
22 (commented on own PR)
No I changed the code, so did you try running with the updated code?
23 (commented on own PR)
Yes it is, my checkstyle was not working for some reason so I had to this manually.
24 (commented on own PR)
Like deleting it and initializing it again?
I did not do that
25 (other comment)
26 (other comment)
Good to merge.
27 (other comment)
I think you'll have to pass the project since all of it will be added to the backlog attribute of it. I have implememnted the add and delete, can check from there also if needed.
28 (other comment)
Code has been changes, the parameters and all so I think you need to adjust to that. So i think need to factor that in
29 (other comment)
Suggested some changes, rest looks good to merge
30 (other comment)
Please assign appropriate labels, and everything.
31 (other comment)
Any reason for moving project in a different package?
32 (other comment)
Like add all classes which need to be stored in one package?
33 (other comment)
The structure is making it a bit confusing imo, maybe change that?
34 (other comment)
Good to merge
35 (other comment)
I meant like add all the files whose data has to be stored in the same main package. Also, can you see Duke class and remove your parser?
36 (other comment)
Done by #34
37 (other comment)
Sounds good
38 (other comment)
Resolve the conflicts, youd have to do it using cli in your own repo @e0426051
39 (other comment)
Some checks do not seem to pass
40 (other comment)
I created a flag to print this if the user input is valid, and the required message The details of the tasks are as follows:
is printed for the first task.
41 (other comment)
Creating an additional check of :
``if (sd==0)
{ throw new DukeException("Sprint Duration cannot be zero")}
``
42 (other comment)
Made changes so that:
command>task /view 0
The following task ID doesn't exist in backlog.
Please enter a valid ID.
command>task /view 100
The following task ID doesn't exist in backlog.
Please enter a valid ID.
This was done by using an additional conditional check :
if (backlogId <= proj.getProjectBacklog().getNextId() && backlogId > 0)
43 (other comment)
Good to merge
44 (other comment)
Solved with #178
45 (other comment)
Solved with #178
46 (other comment)
Solved with #178
47 (other comment)
Solved with #178
48 (other comment)
Solved with #178
49 (other comment)
Solved with #178
50 (other comment)
Solved with #178
51 (other comment)
The parser manager
is a part of the logic component and has been clearly shown in the diagram for Logic Component
.
Project Manager
is a part of the Model Component
and has already been added.
52 (other comment)
@e0426051 can you check which test cases are failing?
53 (other comment)
What is this pull request dealing with actually?
54 (other comment)
May i ask what exactly is the reason beihnd changing all the variables from backlog
to tasklist
?
@EyoWeiChin
(17 comments)1 (commented on others PR)
Thanks for refactoring out the methods!
2 (commented on others PR)
Perhaps this could be replaced with a switch statement if you feel it would be neater.
3 (commented on others PR)
This part could be changed to:
Iterator iterator = jsonList.iterator();
To remove the depreciated / unchecked warning
4 (commented on others PR)
Following the above comment, this line could be split into these 2 parts to:
//Advance the Iterator
jsonObject = (JSONObject) iterator.next();
jsonObject = (JSONObject) jsonObject.get("data");
5 (commented on others PR)
Following the above comment to remove the warning. This chunk of code can be replaced with:
for (Object genre : jsonGenre) {
animeGenre.add((String) genre);
}
6 (commented on others PR)
Thanks for making this part neater.
7 (commented on others PR)
Would this be better if it was refactored using the utility methods available in CommandParser?
8 (commented on others PR)
Is this subsection needed? I wanted to do one for mine as well, but it seems weird without another subsection or "proposed implementation" section
9 (commented on others PR)
Thanks for helping me fix the formatting for my images!
10 (commented on others PR)
Hmm okay got it! I'll make modifications to my portion in my next PR. Thank you.
11 (commented on others PR)
It seems that there is a mistake in the numbering here
12 (commented on others PR)
Thanks for implementing the badges!
13 (commented on others PR)
Could this parseInt() be replaced with the parseStringToInteger method in CommandParser?
14 (commented on others PR)
Thanks for filling up the Manual testing section!
15 (commented on others PR)
Is this constructor still needed?
16 (commented on others PR)
Since these constants are only used in this class, should this be private instead?
17 (commented on others PR)
Ah, I see, my mistake then.
18 (commented on own PR)
Ah, I left it there mistakenly. I have fixed it, thank you for pointing it out.
19 (commented on own PR)
I have extracted the searchType as a constant!
20 (commented on own PR)
I have extracted out the values as constants.
21 (commented on own PR)
I have added a newline here.
22 (commented on own PR)
I have added a newline here as well, Thank you!
23 (commented on own PR)
Got it! I have rectified the issue. Thank you
24 (commented on own PR)
I have made the changes, in all affected areas. Thank you for pointing it out.
25 (commented on own PR)
Thank you for pointing this out, I have rectified the issue, in the latest commit.
26 (commented on own PR)
Hmm, you are right, I will amend this in the next PR. Thank you!
27 (other comment)
Hi, thank you for this bug report. I have rectified the issue in the above PR.
28 (other comment)
Hi, thank you for this bug report! I have rectified the issue in the above PR.
29 (other comment)
Hi, thank you for spotting this error. I have rectified the issue in the PR mentioned above.
30 (other comment)
Hi, Thank you for reporting this issue. I have rectified it in the above PR!
31 (other comment)
Hi, thanks for reporting this minor functionality bug. I have rectified it in the above PR!
32 (other comment)
Hi, thank you for alerting me about this issue. I understand that it might be hard to find a suitable genre to search for as our current data size is limited to only 500 anime series (Given to us by AniChan) and that there are over 100+ genres available on the official site.
Having a command to print all available Genres might be too cumbersome for the user and may defeat the purpose of a search.
To rectify this issue, I have updated our User Guide to include the popular genres types that the user may be interested in finding. This genre could also help get the user started in searching for other genres as well.
Do let me know if there is more I can do to improve it, thank you once again for the feedback!
33 (other comment)
This is an update from @AY2021S1-CS2113T-F12-2/developers we have met as a team and discussed this issue. The conclusion of the discussion was that adding horizontal lines will not improve the readability, but result in the output looking messier.
To better resolve this issue, the team have decided to improve the readability of the output elsewhere, such as the printing of the command execution result. This can be seen at #255 and will be further improved in future PRs. Thank you!
@yAOwzers
(16 comments)1 (commented on others PR)
Would it be better if we used:
this.taskList.remove(index - 1);
We can also store this inside the taskList class as a method! What are you thoughts?
2 (commented on others PR)
Just to note, we can replace this magic number!
3 (commented on others PR)
We should try to remove these -1 as it's a little confusing without any context
4 (commented on others PR)
Oh like what's the significance of -1? Or its supposed to perform like if (notebookIndex > 0)
?
5 (commented on others PR)
LOL
6 (commented on others PR)
Will update on my side once we have merged this first UG
7 (commented on others PR)
YES thank you sorry was loading the JAR yesterday but I passed...
8 (commented on others PR)
So it no longer removes pages based off titles as an input?
9 (commented on others PR)
True
10 (commented on others PR)
HAHA DID YOU JUST CHANGE THE THEME BACK
11 (commented on others PR)
oh I thought the method isPersonalised() was removed?
12 (commented on others PR)
Sorry my bad, didnt completely remove all isPersonalised() Methods. Instead of calling this method under execute() in CliInterface, we decided to call the PersonalMessageGenerator in the CliMessages instead as the messages were still printing even when exceptions were caught. Might need to change this assert?
13 (commented on others PR)
Do we need the (like yourself) because not all of the users that read this might be students?
14 (commented on others PR)
nice
15 (commented on others PR)
LOL
16 (commented on others PR)
Maybe you can link like the Pull requests?
17 (commented on own PR)
Oh okay thanks! Will make edits! I think something went wrong during the merge conflict, was working fine on my end just now
18 (commented on own PR)
OMG LOL SORRY
19 (commented on own PR)
Oh even if the date formatted is wrong? I thought it needs to be in the format dd-MM-yyyy or can it be the other way around?
20 (commented on own PR)
Ohh okok will change it to just staying the notebook mode then
21 (commented on own PR)
I can include that in for the test case
22 (commented on own PR)
alrightoesss
23 (commented on own PR)
Oh shoot okay, LEMME edit
24 (commented on own PR)
Oh wait they arent doing this?
25 (commented on own PR)
Oh why thank you will do
26 (commented on own PR)
Oh yes, message
is an object. Will it be clearer if included a CliMessage
object name messages
instead?
27 (commented on own PR)
yeahhhhh
28 (commented on own PR)
OH LOL
what the hek HAHHAHA ok i go edit
29 (other comment)
Overlap with Long
30 (other comment)
Able to save the name of the user in the nameOfUser.txt file, however during the first iteration does not save the name immediately. Still currently working on it
31 (other comment)
Do y'all think it's necessary to include all the isPersonalised() and isTriggerAutoSave() methods?
32 (other comment)
Formatted the numbers
33 (other comment)
The IO test will fail now since there's a welcome message right? Or is there something wrong with my code HMM
34 (other comment)
OOOOOOOORight it was merge conflicts... lol
35 (other comment)
Ready for review
36 (other comment)
To edit the appendix F for corrupted/missing data files @yAOwzers
37 (other comment)
To edit UG: Delete the nameOfUser.txt file upon downloading, to include change of names instructions @yAOwzers
38 (other comment)
@chuckiex3 okay so we just need to reformat the help message right?
39 (other comment)
lol
40 (other comment)
Updated to be case-sensitive command words
41 (other comment)
Updated the path for the saving of the name, realised that the name data was saving and read off 2 separate files.
42 (other comment)
oh so you just removed both diagrams?
43 (other comment)
Are there any other parts where we need to add JavaDocs to LOL
44 (other comment)
Yez I harve dun it
45 (other comment)
No Assertions THo
46 (other comment)
@NeilBaner Do you need help with the UML diagrams for this?
47 (other comment)
Adjusted DG based off Rishi's comments as well. PLEASE TELL ME IF WE ARE GnA PUT THE PERSONALISED MSG IN 3.3
48 (other comment)
Ok I've removed that exception
49 (other comment)
FATS
50 (other comment)
@chuckiex3 your comments ah... really phenomenal! I've made the changes!
51 (other comment)
To update the UML diagrams for 4.2.2. markAsDone and 3.6. Storage
52 (other comment)
Updated diagrams in DG, 3.6. and 4.2.2.
53 (other comment)
Claiming code in process
@ivanderjmw
(16 comments)1 (commented on others PR)
I think the variable name userInput
is better than command
.
2 (commented on others PR)
A better exception name would be BadFormatException
.
3 (commented on others PR)
This needs to be called from Ui as well, once its implemented.
4 (commented on others PR)
userInput
will be a better variable name than command
.
5 (commented on others PR)
This shouldve been an abstract class for all the other commands.
6 (commented on others PR)
I think creating this class as a parent for everything else will solve the parser error.
7 (commented on others PR)
commands should be appended with a space character.
8 (commented on others PR)
Why is there a need for this return statement?
9 (commented on others PR)
Nice formatting, LGTM!
10 (commented on others PR)
You can use Java's smart for loop for this
11 (commented on others PR)
Is there better naming for without choice?
12 (commented on others PR)
Good use of bubble sort optimization.
13 (commented on others PR)
This will still allow empty or numerical currency abbreviation.
Can use regex to make sure it only contains uppercase alphabets.
14 (commented on others PR)
this works as well though. Nice!
15 (commented on others PR)
can be simplified using:
input.equals(input.toUpperCase())
16 (commented on others PR)
Fixes #106
17 (commented on own PR)
Unlike read command, this line is used without printing any symbols before the user input.
18 (commented on own PR)
Umm.. did I remove the lines by accident?
19 (commented on own PR)
shawn I think there are some of your changes I accidentally deleted. It's the automerge..
20 (commented on own PR)
okk
21 (commented on own PR)
No, this was changed in this commit. But we could think of this feature again. Link to commit.
22 (commented on own PR)
Thank you @felixhalim
23 (commented on own PR)
I tried to delete a directory, and output no errors if it does not exist.
24 (commented on own PR)
Simplified the if-else statement.
25 (commented on own PR)
Simple O(n) linear search, should not affect performance.
26 (other comment)
Duplicate issue
27 (other comment)
Hello Sameer,
I opened a new issue for the mismatched project requirements. Our team will update it ASAP. Please check #19
Regards,
Ivander
28 (other comment)
Todo: Fix runtest.bat (@felixhalim )
29 (other comment)
Thank you felix!
30 (other comment)
LGTM! Nice.
31 (other comment)
Fixed in #18
32 (other comment)
This MaxDay is integrated with the storage component. It will load the max day in the master file. Fixed this issue.
33 (other comment)
Thank you felix for referencing the issue.
34 (other comment)
Fix #79
35 (other comment)
This is an intended feature since one may plan out a trip across multiple countries ☺️.
36 (other comment)
We will try to elaborate on how the trip days work. We appreciate your suggestion!
37 (other comment)
@felixhalim prompt the users that the days are calculated automatically from their expenses and places, after creating a new trip.
38 (other comment)
Could be better to mention the days after the trip name
39 (other comment)
@felixhalim fix the miro diagrams. I will fix the UMLs.
40 (other comment)
Hello @ShawnTanzc ,
I was unable to reproduce this error. Could you give me a screenshot of your files inside the trippie_data
directory, as well as the contents of your trippie.txt
?
Deleting the directory might fix the problem. Update me! Will fix the typo issue though, thanks for pointing that out.
41 (other comment)
Hello Shawn!
It turns out that the problem presists in Windows due to file permission errors.
We have found this as the source of issue. https://stackoverflow.com/questions/40706380/failed-to-delete-a-file-in-windows-using-java.
Thank you for reporting this!
42 (other comment)
Fixed issue #129 and confirmed with github check.
43 (other comment)
Duplicate commits with #139
44 (other comment)
This has been resolved in #139
45 (other comment)
Nice PPP!
Checked and working mock Trippie files.
LGTM!
46 (other comment)
All checks done!
47 (other comment)
All checks done!
@Johnson-Yee
(16 comments)1 (commented on others PR)
String array declared but not used.
Could be implemented below replacing in line 46: Instead of "AA1", could add Zone_A[0] and Zone_A[1] to show a sequential approach in preparation for larger number of bus routes. Keep in view for future commits.
2 (commented on others PR)
Could refactor into a method adding all bus routes to the arraylist of bus object. For loop to run through and add the bus routes into the array list. This is to prepare for larger number of bus routes as we include other zones in our future versions. Keep in view for future commits.
busesInZoneA.add(new Bus(ZONE_A[0], AA1));
busesInZoneA.add(new Bus(ZONE_A[1], AA2));
3 (commented on others PR)
busesInZoneA.add(new Bus(ZONE_A[0], AA1));
busesInZoneA.add(new Bus(ZONE_A[1], AA2));
4 (commented on others PR)
Are you printing all buses and their specific routes together?
5 (commented on others PR)
Looks alot neater! But was just wondering what do ABC ,PQR and XYZ represent? And what about the commons component?
6 (commented on others PR)
Alright! This part looks good!
7 (commented on others PR)
Alright! This part looks good!
8 (commented on others PR)
The `ListStopsCommand#executeCommand()` method of ListStopsCommand Class executes the command in the following step:
9 (commented on others PR)
Maybe you could specify what kind of tests?
10 (commented on others PR)
* Added documentation for the features `/addfav`, `/liststops`, `/help` and `/exit`. (Pull Request: [\#88](https://github.com/AY2021S1-CS2113T-F14-3/tp/pull/88),
11 (commented on others PR)
* Added implementation details of the `/addfav` and `/liststops` features. (Pull Request: [\#113](https://github.com/AY2021S1-CS2113T-F14-3/tp/pull/113),
12 (commented on others PR)
* What it does: allows the user to view all bus stops and their descriptions.
13 (commented on others PR)
Is there supposed to be an assertEqual here?
14 (commented on others PR)
Same here, is there supposed to be an assertion here?
15 (commented on others PR)
This comment might be confusing. Could specify that it is a command that can be favourited.
16 (commented on others PR)
Could specify it as String variable
17 (commented on own PR)
Initially, I added a some string functions to edit the getCommand(). However, in hindsight, the string manipulation should not be done in the ui function and I removed them. The UiTest in this case is trivial and not needed! I will close this pull request soon.
18 (commented on own PR)
Edited it! Thank you for spotting that
19 (commented on own PR)
Thank you! I will work on that in my next commit
20 (commented on own PR)
Alright, will update the code accordingly to the most recent pull request by Yuxin.
21 (commented on own PR)
Alright! Removed, sorry bout the oversight.
22 (commented on own PR)
reafFile could throw a filenotfoundexception and that exception has to be dealt with.
We could refactor this into a method in the main function to make it look neater
23 (commented on own PR)
# IDEA files
/.idea/
/out/
/*.iml
# Gradle build files
/.gradle/
/build/
src/main/resources/docs/
# MacOS custom attributes files created by Finder
.DS_Store
*.iml
bin/
/text-ui-test/ACTUAL.txt
text-ui-test/EXPECTED-UNIX.TXT
logger.log
24 (commented on own PR)
logger.log.lck
*.log.*
logger.log.1
/logger.log.2
/logger.log.3
/logger.log.4
/logger.log.5
/logger.log.6
/logger.log.7
/logger.log.8
logger.log.1.lck
logger.log.2.lck
25 (commented on own PR)
*.log.*
logger.log.1
/logger.log.2
/logger.log.3
/logger.log.4
/logger.log.5
/logger.log.6
/logger.log.7
/logger.log.8
logger.log.1.lck
logger.log.2.lck
26 (commented on own PR)
Dine options also include BTC campus?
27 (commented on own PR)
Alright will change all mentions of Kent Ridge Campus to NUS Campus
28 (commented on own PR)
logger.log
logger.log.lck
*.log.*
logger.log.1
logger.log.2
29 (commented on own PR)
30 (commented on own PR)
/logger.log.2
/logger.log.3
/logger.log.4
/logger.log.5
/logger.log.6
/logger.log.7
/logger.log.8
logger.log.1.lck
logger.log.2.lck
31 (commented on own PR)
data/FavList.txt
META-INF/MANIFEST.MF
src/main/java/META-INF/MANIFEST.MF
32 (commented on own PR)
6. Your screen should show the start screen of Nav@NUS as seen in the figure below.<br>
33 (commented on own PR)
Alright!
34 (commented on own PR)
* Added sections on introduction and quick start. (Pull request[#142](https://github.com/AY2021S1-CS2113T-F14-3/tp/pull/142))
35 (commented on own PR)
* Updated target user profile and value proposition. (Pull request[#91](https://github.com/AY2021S1-CS2113T-F14-3/tp/pull/91))
36 (commented on own PR)
features. (Pull request [#116](https://github.com/AY2021S1-CS2113T-F14-3/tp/pull/116))
37 (commented on own PR)
* Reviewed developer guide for team DomNUS ([Click here](https://github.com/nus-cs2113-AY2021S1/tp/pull/8/files/65a23531bf8d85984e3d339cfc455cedb7e0cccc)
38 (commented on own PR)
Pull requests[\#23](https://github.com/AY2021S1-CS2113T-F14-3/tp/pull/23),
39 (commented on own PR)
Alright!
40 (commented on own PR)
OOo I get what you mean!
41 (commented on own PR)
No worries! Changed!
42 (other comment)
Looks good to merge to me!
43 (other comment)
Looks good to merge!
44 (other comment)
LGTM
45 (other comment)
Issue addressed! #78
46 (other comment)
In response to this, a initialisation of the most searched bus stop function will be included in the welcome message
47 (other comment)
Regarding the fourth comment on "The loop should be within FavList and Fav only if it doesn't interact with UI",
you can add in this line "skinparam BoxPadding 20" right after @startuml
@mxksowie
(13 comments)1 (commented on others PR)
Only fats is plural here.
Consider making all related names plural (might be more suggestive of type) or all singular.
2 (commented on others PR)
I disagree with changing this to a static method. Instantiate the FoodList object instead (or get a pointer to the object via argument parameters) to call this method.
3 (commented on others PR)
Consider writing tests for the newly added DateTime functions.
4 (commented on others PR)
Recommend splitting the class/avoiding a do-it-all class if you find this applicable.
5 (commented on others PR)
I suspect that the method called should be getPortionedFoods()
getFoods()
does not take into consideration the portion size provided by the user and it seems that you did not get and handle the portion sizes separately. Using getPortionedFoods()
will return a food item with scaled nutrional values (different from the item the user entered)
6 (commented on others PR)
Similar to the other comment. I suspect that this should be getPortionedFoodsAfterDateTime()
.
These apply throughout similar methods in this class.
7 (commented on others PR)
Consider adding tests with portion size >1. This would have caught the potential issue raised in earlier comments about portion sizing.
8 (commented on others PR)
This previously added (not within this PR) URL looks broken because of spaces.
9 (commented on others PR)
These URL links to the object diagrams are also likely broken due to the URL link containing spaces.
10 (commented on others PR)
Okay, looks like the urls work on the website but not in Github itself.
11 (commented on others PR)
Possible name typo in name?
12 (commented on others PR)
Consider adding some negative tests too: e.g. assertThrows for the exceptions
13 (commented on others PR)
Is this a necessary file duplicate?
14 (other comment)
The build tests are failing because of the dependency of the code on the Food class. Have you tested the code locally?
Possible workabouts:
Consider moving changes to a branch that targets snowbanana12345's Food class.
Otherwise, consider implementing a minimal Food class which we could also remove when merge conflicts arise later.
15 (other comment)
Changes to testing will be made in a new branch since this branch already has its core functionality. (removed fix #26)
Plan to further streamline these features by adding more FP support and reducing repetition.
16 (other comment)
I currently disagree with the proposed change in the above comment. I think that the Loader class itself should not be dependent on these other classes (Person, FoodList/Food, etc). This is to streamline dependencies. Current implementation of generic Loader looks good to me. I propose the use of class specific wrappers or child classes of Loader in future updates.
LGTM.
17 (other comment)
Resolved in PR #53 onwards
18 (other comment)
Partial fix deployed in PR #103
This fix introduced references to the FoodList object in methods that required an object instance of FoodList by accepting it as a method parameter. This might not be the intended/desirable way to setup calculator.
Calculator should be revised to either have a seperate class that interacts with FoodList, or have more ways of getting a pointer to an instance of FoodList.
19 (other comment)
Partially addressed in PR#137
Features in FoodList should now make this resolvable.
20 (other comment)
Fully addressed in PR #162 and #180
@riazaham
(13 comments)1 (commented on others PR)
Hmm then should we implement this for projects and tasks also?
2 (commented on others PR)
It is task view iirc. isProjectListView refers to project view so means not in task view
3 (commented on others PR)
yup agreed
4 (commented on others PR)
Apparently, it can't catch NullPointerException. Think you could work around it?
5 (commented on others PR)
I think the '2' is the limit for integers so in that sense I believe Shreyas' concern is valid.
I have 2 suggestions:
We loop through the inputs and extract out key-map info for multiple params
We only include 1 param type for all our commands
6 (commented on others PR)
Ok got it thanks for the clarification
7 (commented on others PR)
I believe this is not recommended (importing with *). You can just revert back to the old implementation
8 (commented on others PR)
Do we need this....?
9 (commented on others PR)
Don't need this here if it is already caught in parse(). We try not to repeat codes but do let me know if there are other reasons for this implementation
10 (commented on others PR)
just need to include the teamMembers ArrayList in signature
11 (commented on others PR)
Might have merge conflicts since "assign" is also used for project view
12 (commented on others PR)
We have not abstracted the HomeView for other commands so maybe leave the HomeView in the Parser?
13 (commented on others PR)
do you wanna change it to if-else? Just a suggestion for better readability but this works too!
14 (commented on own PR)
Yup have added a remark to throw error
15 (commented on own PR)
I think it's just for good practice
16 (commented on own PR)
true, have removed in my next commit
17 (commented on own PR)
Oh thanks for the review, just committed the changes in Home Command PR!
18 (commented on own PR)
Solved!
19 (commented on own PR)
They haven't implemented it yet so I'm not sure how to link it but yes that's the intention
20 (commented on own PR)
actually in the parse function there will be nothing to catch.
If you realise the only thing the parse function does is extract the user input.
It does not process it, so no errors thrown
21 (commented on own PR)
I think as of now that feature is not in our user guide. Like showing the list of tasks attached to members.
So since no other command uses it for now I didn't implement it.
It's a breadth first approach
22 (commented on own PR)
I think as of now that feature is not in our user guide. Like showing the list of tasks attached to members.
So since no other command uses it for now I didn't implement it.
It's a breadth first approach
23 (commented on own PR)
I have no preference, I think both make when it comes to organisation
24 (commented on own PR)
I thought of it also but I realized it's more of an improvement since as of now there isn't a need for it.
We have no feature planned that will use the enums, (e.g sort by priority).
Also, the error handling is quite tedious to implement if we use enums.
I will implement it in the final run once we're done with a working 2.0.
25 (other comment)
I need help with jUnit test for this feature.
I'm unsure about how I should test invalid project ID and deadline format since the exceptions are thrown inside Parser class and not executeCommand().
What do you mean? For JUnit tests you don't need exceptions tho. You can hardcode the error messages.
Check my JUnit tests
@theopin
(13 comments)1 (commented on others PR)
Might want to append a "Programing Language: " cos the parser currently looks out for it bfore parsing the language
2 (commented on others PR)
not sure what is this for
3 (commented on others PR)
Might want to append a "Contents: " cos the parser currently looks out for it bfore parsing the language
4 (commented on others PR)
Perhaps a a better word than pattern for the variable name?
5 (commented on others PR)
Might wanna apply slap more here since iza little arrowheaded
6 (commented on others PR)
Perhaps you could seperate each addition on a separate line for easier readibbility
7 (commented on others PR)
Perhaps you could seperate each addition on a separate line for easier readability since there quite a few of them?
8 (commented on others PR)
clear method name!
9 (commented on others PR)
Clean summary
10 (commented on others PR)
Good distinction of the settings file from the others
11 (commented on others PR)
Perhaps you could include the required params and exceptions thrown?
12 (commented on others PR)
may wanna seperate each .append() to a new line for readability
13 (commented on others PR)
Missing an asterisk here i believe
14 (commented on own PR)
Noted! Thanks for highlighting
15 (commented on own PR)
Initially did that to cover up visual bug. Resolved!
16 (commented on own PR)
Noted! Will rectify them.
17 (commented on own PR)
Alright! Thanks for the suggestion.
18 (commented on own PR)
Got notified by intelliJ to use it XD
19 (commented on own PR)
Noted!
20 (commented on own PR)
Okay
21 (commented on own PR)
XD
22 (commented on own PR)
Noted! Will do the necessary amendments
23 (commented on own PR)
From the module website it says this tho: A short overview of your product to provide some context to the reader.
24 (other comment)
Resolved!
25 (other comment)
Resolved!
@OngDeZhi
(13 comments)1 (commented on others PR)
The variable commandOption
is not used, perhaps we can use a if statement for now since there be more options later for the watchlist command.
if (commandOption.equals("-n")) {
// create watchlist code
}
2 (commented on others PR)
Do you still need this? Otherwise, it would be better to remove the old code.
3 (commented on others PR)
Capitalize the first letter, same for line 314.
4 (commented on others PR)
Is it intending to log some workspace information here after it is saved? There's a ":" at the end for line 119.
5 (commented on others PR)
I think you could consider using a constant here.
6 (commented on others PR)
Looks good!
7 (commented on others PR)
Is there a reason for the chunk of space between the end of 4.4.1 and the header of 4.4.2?
8 (commented on others PR)
Is there a reason why this is public?
9 (commented on others PR)
Isn't it better for this to be protected?
10 (commented on others PR)
Similarly here, is there a reason for these to be public?
11 (commented on others PR)
I think if that's the case we should have a class specifically for such scenario, but since huge modification at this stage is not recommended, I think it might be better to duplicate the regex in case someone decides to use this regex somewhere too and make modification to it.
12 (commented on others PR)
I think you don't need a >> inside the optional argument bracket, similarly for line 726.
13 (commented on others PR)
Great work on adding more checks but I think you might want to consider using a guard clause here instead of indenting the whole statement? Because this can become a arrowhead code if more checks are added in the future.
14 (commented on own PR)
Noted on that, I will add an extra line.
15 (commented on own PR)
Noted on that, I have updated to use a constant for it.
16 (commented on own PR)
Alright, I will add some comments to explain the numbers.
17 (commented on own PR)
Okay thanks.
18 (commented on own PR)
Ok, I have removed some redundant words in it.
19 (commented on own PR)
That's true but because it affects the data folder in the src/test too, hence I made it specific. Perhaps, we could add it back after this PR as by then, the test files required for the JUnit would be uploaded already.
20 (commented on own PR)
Yep, I think we could standardize to 2 periods, ".."?
I think we could use it during the initialization process? Seems like the only place it would fit.
21 (commented on own PR)
You are welcome 😃
22 (commented on own PR)
I think so because we are gonna have another subsection called design consideration, I guess having just current implementation should be fine!
23 (commented on own PR)
Thanks for the suggestion, I will update the link!
24 (commented on own PR)
Noted, I have resized it already. We could adjust it again if it is still too big or too small 😃
25 (other comment)
@ChanJianHao Yep, we can consider adding in future versions, it's probably not a good idea to add in new features now. Perhaps, we could indicate in our User Guide that we will add support for remembering the last accessed workspace in future implementations.
26 (other comment)
@AY2021S1-CS2113T-F12-2/developers I have assigned everyone to this issue since this is a shared problem as well. I'm thinking we could state in our UG what is considered as valid input ("1") and invalid input ("1 ").
27 (other comment)
Hello, thank you for alerting me to this issue, I have fixed the bug of not accepting file names that has spaces.
28 (other comment)
Hello, thank you for the suggestion! I'm not really able to tell what you have done in the screenshot to have caused the file to not be found, but I will take into account of what you have said.
29 (other comment)
As per was discussed, we have decided to trim inputs received by the user so extra whitespaces entered by the users by accident can be corrected, and this is also inline with what Windows has done with their commands. Hence, we have decided to follow this standard.
@Lusi711
(13 comments)1 (commented on others PR)
There is commandParams in CliCommand class. Could it be better to just utilise them?
2 (commented on others PR)
Overall well done! I like the detail you put in to splitting all the methods.
3 (commented on others PR)
Is it better to phrase this as "Switches from notebook mode (at the bookshelf level) to the timetable mode or vice versa:. Since there are no other modes currently.
4 (commented on others PR)
Missing expected output
5 (commented on others PR)
The application will not return an error for having spaces. I'm not sure whether that was intended or missed restriction.
6 (commented on others PR)
Should be tag 1 /tschoolWork
7 (commented on others PR)
Should be "tag /tschoolWork"
8 (commented on others PR)
Extra new line here
9 (commented on others PR)
>br> probably redundant
10 (commented on others PR)
Should be diagrams/class/jpeg/Storage_UML_class.jpg
11 (commented on others PR)
Include some of the PRs you reviewed and bugs you reported of a grp
12 (commented on others PR)
A bit too minimal. Maybe you could elaborate more on the Justifications and Highlights?
13 (commented on others PR)
Move this to after introducing features for flow
14 (other comment)
Section 4.3.2 done
@lingsihui
(13 comments)1 (commented on others PR)
Good Job.
2 (commented on others PR)
👍🏻
3 (commented on others PR)
You should rename your test function name in the following format!
methodUnderTest_inputGiven_ExpectedOutput
4 (commented on others PR)
Your error: java.lang.AssertionError: size should not be greater than card index at this step
I think you meant assert flashcardDeck.size() >= cardIndex
5 (commented on others PR)
good job !
6 (commented on others PR)
You can look at my RemoveLinkCommand class evaluateLinkNumber to add the exceptions!
7 (commented on others PR)
Nice !
8 (commented on others PR)
nice dg
9 (commented on others PR)
can change to ##Academic Component!
10 (commented on others PR)
nice
11 (commented on others PR)
I think Number Format Exception will be thrown if your number is greater than 100000000
12 (commented on others PR)
okay. got it thanks !
13 (commented on others PR)
Figure below!
14 (other comment)
looks good. Maybe you can rename check grade to check cap instead of check grade and list grade.
15 (other comment)
Maybe you can add a Flashcard Ui class to print out all your Ui.
16 (other comment)
Maybe you can add a constant for all your magic number to improve code quality.
17 (other comment)
Thanks for the reminder!
18 (other comment)
Okay Thank you!
19 (other comment)
Fixes #20
20 (other comment)
Fixes #62
21 (other comment)
Ganbatte
22 (other comment)
Hi please correct checkstyle error !
23 (other comment)
Fixes #115
24 (other comment)
#91
25 (other comment)
Same issue as #143
26 (other comment)
Same issue as #143
27 (other comment)
Same issue as #160
28 (other comment)
Same issue as #173
29 (other comment)
Fixes #160 as well
30 (other comment)
Thanks!
31 (other comment)
Si Hui:
Update pictures for List command
Include bm2 = bm 2 = bm 2 as a feature in user guide
Update link to different sections
32 (other comment)
Add logging for file: To see the file changes in file! If someone edited the file etc.
Add Junit test for bookmark storage, and bookmark run, assertion
@LiewWS
(12 comments)1 (commented on others PR)
Should we remove this branch since the loop will break at line 27 and update would not be called? Can probably replace it with an assert !isTerminate(command).
2 (commented on others PR)
Should we copy into the new ArrayDeque before shuffling? Do we want to keep the original order of the Deck?
3 (commented on others PR)
Idea for UG FAQ: What if my flashcard answer contains a single word "done" or "exit"?
Possible answer: Escape the command using \exit or "exit".
4 (commented on others PR)
Sorry the earlier comment wasn't very clear. What I meant was that since we have
ArrayList<FlashCard> getDeck() {
return deck;
}
then would passing the reference to the ArrayList to shuffle cause the original deck to be randomized also?
If we want to maintain the order in the original deck then perhaps a suggestion could be changing getDeck() in Deck class to
ArrayList<FlashCard> getDeck() {
return new ArrayList<>(deck);
}
so that other methods cannot modify the ArrayList
5 (commented on others PR)
Should the overview be rephrased so that it does not resemble the one that I wrote?
6 (commented on others PR)
Isn't "in the first line" correct?
7 (commented on others PR)
Do you mean "one of the" instead of "on of the"?
8 (commented on others PR)
Should it be "PowerPoint" instead of "PowrePoint"?
9 (commented on others PR)
Is there something missing in this diagram?
10 (commented on others PR)
At section 4.1:
Would the diagram be more complete if there is a lifeline for the caller of ModTracker?
11 (commented on others PR)
At section 4.5:
Should there be a ':' in front of the class name?
12 (commented on others PR)
At section 4.7:
Should :TaskList return control to :Parser instead of User since it was called by :Parser? Also I thought the Parser is called by :Ui instead of directly by User?
13 (commented on own PR)
Actually, I am not sure but I am just following the same method as the User Guide and Developer Guide since those links work on the web page.
14 (commented on own PR)
Alright added. Thanks for the suggestion.
15 (other comment)
Delete command for Normal Mode implemented by @alwaysnacy in #26.
16 (other comment)
Actually do we need JUnit tests for Help Commands?
17 (other comment)
Should we add throws Exception
to the signature of executeCommand()
in Main
also?
18 (other comment)
I will create a new PR after fixing the issues.
19 (other comment)
Moving the logic to FlashCard class instead since that is where the response strings are generated.
20 (other comment)
Discovered bug in formatting when the flashcard id has more than 1 digit. Re-opening issue as a reminder to fix it.
21 (other comment)
Updated model component as well.
22 (other comment)
Looks good to merge. @kaijiel24 what do you think?
23 (other comment)
LGTM
24 (other comment)
Also refactor pretty print method to Ui.
25 (other comment)
Should be ok now. LGTM
26 (other comment)
Also trim question and answer when adding
27 (other comment)
Add blank line between question and answer when updating.
28 (other comment)
Fix bug that allows non-alphanumeric characters when updating question and answer. User Guide updated accordingly.
29 (other comment)
That is a valid point, perhaps a target CAP of 5 is not the best example here.
However, the problem is reproducible with the following input:
Suppose I set a target CAP of 4.499999992, the following output is produced:
This is different from what is expected because getting a 'B+' for 4MC and 'A-' for the remaining MCs would allow the target CAP of 4.499999992 to be achieved.
On a side note, I expected the program to round any CAP close enough to 5 to 5.0 from the following behavior:
@Nazryl
(12 comments)1 (commented on others PR)
He haven't start on it. He created the classes as a template first I think.
2 (commented on others PR)
AddNoteCommand.getCommandUsageNote() change to AddEventCommand.getCommandUsage()?
+ AddNoteCommand.getCommandUsage() + InterfaceManager.LS + COLOR_CYAN_STRING
3 (commented on others PR)
private static final String COMMAND_USAGE = COMMAND_WORD + ": Adds a note to notebook. Parameters: "
4 (commented on others PR)
return COMMAND_USAGE;
5 (commented on others PR)
Redundant space?
6 (commented on others PR)
/**
* Based on user inputted tags, will store the respective values in an ArrayList
* E.g. if user input 2 tags, CS2113 and important, will have 2 ArrayList
* 1 for the values corresponding to CS2113 and the other for important tag
*/
7 (commented on others PR)
oops messed up the block comment.
8 (commented on others PR)
Another space
9 (commented on others PR)
Maybe can give a short comment on what's happening here.
10 (commented on others PR)
@param?
11 (commented on others PR)
@param here too
12 (commented on others PR)
Forget to remove? Or just ignore for next PR use.
13 (commented on own PR)
Already informed beforehand
14 (commented on own PR)
Already informed beforehand
15 (commented on own PR)
Dont need. I have catch possible errors before it adds.
16 (commented on own PR)
Removed throws comment
17 (commented on own PR)
Good idea. Shall implement it right away. Thank you for your suggestion.
18 (commented on own PR)
isnt final.
19 (commented on own PR)
@Chongjx Take note. Cuz it was giving me an empty space when there are no tags
20 (commented on own PR)
Junit needs input due to our plan to put get input content to AddNoteCommand class. I cannot simulate a scanner input hence I getContent first. If it is blank, user puts an input. If its not blank, it means it is from the junit class which already has the content already pre input into the note.
21 (commented on own PR)
will do it once ive merge this in. have yet to pull the new one. might have conflicts
22 (commented on own PR)
as of now no
23 (commented on own PR)
I made it loop till there is content in the input.
24 (commented on own PR)
deleteNote(index) does not return boolean, so I made it return true. Also, I cannot remove the exception, when it getNotes it will return an exception when the index is out of bounds.
25 (commented on own PR)
I didnt realise this. I followed the format from addressbook to make it tidy and easy on the eyes. Jx and I used whitespaces when implementing the classes in the first place. I think its a minor matter as long its readable.
26 (commented on own PR)
wouldnt it makes sense to break all of the note stuff in the formatter? and just pass the success parameter? since we are passing in the note too
27 (commented on own PR)
Im not the author for this function. Ill make the changes.
28 (commented on own PR)
it just means that the contents for that line is missing
29 (commented on own PR)
its not a line number. fixed it
30 (commented on own PR)
I know why already. the ide by default turns on whose whitespaces when refactoring
31 (commented on own PR)
Yes confirm. Open to changes. Both relay the same message to let the user know its pinned and archived.
32 (commented on own PR)
Ramana suggested both to be true false.
I think ill display pinned or unpinned and archived or unarchived as you suggested
33 (commented on own PR)
roger boss
34 (other comment)
Please reject this pull request, thank you
35 (other comment)
It is now ready for review.
36 (other comment)
Need help with the Gradle checks. I suspect is something to do with EXPECTED.txt
37 (other comment)
Had to remove "help" from the ui-test. Wait till @brandonywl adds in his AddEvent and DeleteEvent then can add the "help" back into the input. Issue fixed!
38 (other comment)
Created PR first. Not ready to be reviewed. Will notify.
39 (other comment)
@prachi I've helped you added some codes for pinCommand but its commented out due to your junit test failing. The codes are for the formatting that @Chongjx has done.
40 (other comment)
Its fixed on my side. I havent commited.
41 (other comment)
Settled on adding PREFIX_ARCHIVE case
42 (other comment)
- #154
- #167
- #172
If your intention was to close the issue this doesn't do it. You need to use the following format:
Closes #num1
Closes #num2
For more examples and usage of other keywords refer to the following document.
Oh I know. it just serves me as a checklist
43 (other comment)
Thanks bru! @R-Ramana
44 (other comment)
Closes #154
Closes #167
Closes #172
Closes #155
45 (other comment)
@Nazryl
Suggested fix: remove the index-- after handling the PREFIX_INDEX because there is another check for the index value after the for loop. The check is needed in case the user did not enter "/i ...."
return new EditNoteCommand(index - 1, note, addLists, editLists, deleteLists, isInput);
Thanks for the suggestion!
@luziyi9898
(10 comments)1 (commented on others PR)
LGTM
2 (commented on others PR)
Noted on these changes.
3 (commented on others PR)
😂
4 (commented on others PR)
LGTM
5 (commented on others PR)
LGTM!
6 (commented on others PR)
Thanks for standardising.
7 (commented on others PR)
Some parts of the code are still too deeply nested, and it would be good to apply better SLAP to it. But if it's unavoidable then just let it be i guess.
8 (commented on others PR)
9 (commented on others PR)
new function looks good!
10 (commented on others PR)
Neat!
11 (commented on own PR)
Alright thanks!
12 (commented on own PR)
Before I changed this part, number format exception will be thrown when a mobile number that is bigger than 2147483647(max value of int in java). So now I capped it at 100000000 so mobile numbers must be 8 digits and below.
13 (other comment)
Fixes #7 .
Fixes #8 .
14 (other comment)
Confirmed that this should be a bug on my side, just that the wrong screenshot was uploaded. This issue has been resolved.
15 (other comment)
Fixed #165
16 (other comment)
Can you add > for "warning" and "useful information" before we merge this PR
Adding now
17 (other comment)
Can you add > for "warning" and "useful information" before we merge this PR
The formatting has been updated!
@AndreWongZH
(10 comments)1 (commented on others PR)
Making the ArrayList static seems unnecessary. Maybe consider private ArrayList>Event> tests = new ArrayList>>();
2 (commented on others PR)
This method can be an instance method. Being static seems unnecessary.
3 (commented on others PR)
Maybe add spaces in between the arguments.
4 (commented on others PR)
Maybe you can extract out 1 as a named constant. For example, naming it INDEX_OFFSET
5 (commented on others PR)
Maybe convert this to named constant as well. For example, CURSOR = ">> ".
6 (commented on others PR)
Redundant spacing here.
7 (commented on others PR)
Considering adding authorship here
8 (commented on others PR)
I think there shouldnt be spaces between the authorship and the javadoc
9 (commented on others PR)
Is this import intended? Might be accidentally added in.
10 (commented on others PR)
The first word should start with an -s. Maybe use Obtains instead?
11 (commented on own PR)
This is for the unused codes, which is the done/notdone feature
12 (other comment)
Already solved
13 (other comment)
Normal calendars can also add events that are past the current time. So whats the issue here?
Closing this.
14 (other comment)
Already fixed
@Artemis-Hunt
(9 comments)1 (commented on others PR)
Can consider switching to using TablePrinter to print help in standardized table format - look at code below for example. Columns in the table are separated by semicolons
Code:
Output:
2 (commented on others PR)
Can consider changing to standardized input format, to remain consistent with the manual/auto tracker and finance tools input format.
Let's say we have CommandPacket packet = InputParser().parseInput(input)
The commandPacket will be as such:
Params can be accessed via packet.getParam("note"), for instance. This will return "skip page 70" as a String
3 (commented on others PR)
Can consider refactoring code into separate function(s), to avoid "arrowhead" code (deeply nested if-else and loops)
4 (commented on others PR)
See comment on lines +87 to +92 first before reading this comment: If goals in totalGoalList is changed to a hashMap then the goal for that month can be accessed with this.goals.get(month) in TotalGoalList.java instead of haping to use a for loop to search through all entries.
5 (commented on others PR)
Try not to have unhandled exceptions unless necessary. Do add comments to explain the scenario(s) in which the exception would be triggered
6 (commented on others PR)
Can consider changing the totalGoalList to a hashMap with key {month} and value {goal}, since we only allow them to set 1 goal for the month.
E.g.
totalGoalList
JAN: 1500
FEB: 2000
MAR: 4500
7 (commented on others PR)
Consider renaming this variable - goalSetter gives the impression that it is a class that handles setting the goal, when it is simply the goal to be set. Maybe something like goalToSet would be clearer
8 (commented on others PR)
Consider storing total monthly expenditure/income in a hashMap.
E.g.
expenditureList
JAN 1500
FEB 254
MAR 0
Increment/decrement the total amount whenever there is a change made. For instance, when a new expense of $25 is added to the ledger for June 15 2020, increment the total expenditure for June by $25. When this same expense is edited to become $45, increment June expenditure by $20. When this expense is deleted, decrement June expenditure by $45.
This way, there is no need to loop through all entries every time there is a new entry or every time you want to view the goal.
9 (commented on others PR)
Avoid calling main() over and over again - this creates a new loop. So if the user does 10 operations, this will cause 10 nested main loops to be created. Should return to the top level main loop directly (i.e. use return;
) and allow the main loop to continue
10 (other comment)
Good job
@mrwsy1
(9 comments)1 (commented on others PR)
Line47 "AA1" should be "AA2"
busesInZoneA.add(new Bus("AA2", AA2));
2 (commented on others PR)
KENTVALE("Kent Vale","Accommodation for visiting faculty guests"),
3 (commented on others PR)
UNIVERSITYTOWN("University Town","Place full of fun"),
4 (commented on others PR)
the *
5 (commented on others PR)
didnt we add these last time
6 (commented on others PR)
Should we allow users to add any fav commands to the favorite list? I have assigned isValid to false for the /descfav command
I asked ethan about this ytd, he say for all fav commands isvalid=false
7 (commented on others PR)
What is the "/" in front of the PR number for?
8 (commented on others PR)
Added bus stops enum class mentioned twice
9 (commented on others PR)
Indentation looks a little off. might wanna use "+" instead of "*" for easier indentation
10 (commented on own PR)
Yes, currently it will show
11 (commented on own PR)
might be a little weird because both AA1 and AA2 would show "PGP-> ...-> PGP" right now if that's the case, but I will take note of that for future updates
12 (commented on own PR)
i'll try that
13 (commented on own PR)
ok
14 (commented on own PR)
Can, but I was following the structure from ethan's skeleton code, the methods are all in FavList
15 (commented on own PR)
ok
16 (commented on own PR)
noted.
17 (other comment)
This command is meant to be like a search filter (the way you would search for documents in your folder), so that users do not have to look around for correct faculty names. But this may get a bit confusing for a few users. @mrwsy1 what is your take on this?
Yea maybe I'll update the UG portion to say u don't have to key in the full name of the faculty
18 (other comment)
OK will add feature to show list of faculties
19 (other comment)
Will fix. Thanks
20 (other comment)
Will take this into consideration. Thanks
21 (other comment)
Noted, thanks
22 (other comment)
Café, will take note.
23 (other comment)
ok
@ShawnTanzc
(9 comments)1 (commented on others PR)
Could consider replacing -1 with a defined phrase so it is more reader friendly
2 (commented on others PR)
@felixhalim say that we should include the space so that when user type "buys" or "buyer" it won't be detected
3 (commented on others PR)
Not recommended to use * it doesn't fit the gradle checkstyles
4 (commented on others PR)
Additional Spacing
5 (commented on others PR)
Same reason as mentioned
6 (commented on others PR)
do we need to remove spaces for this too?
7 (commented on others PR)
I did this so it gives users the flexibility or options to type in "2" or "Day 2". so I dun think we should replace it?
8 (commented on others PR)
General notes:
'convert /to'
'edit functions' (ForEx Rate, ForEx Abbreviation)
9 (commented on others PR)
include foreign currency abbreviation
10 (commented on own PR)
NullExceptionError is not fixed
11 (commented on own PR)
Roger
12 (commented on own PR)
Roger
13 (commented on own PR)
Roger
14 (other comment)
will add new PR
15 (other comment)
Fix in V2.0
16 (other comment)
Fix in V2.0
17 (other comment)
Fix in V2.0
18 (other comment)
Fix in V2.0
19 (other comment)
Fix in V2.0
20 (other comment)
Fix #102 as well
21 (other comment)
Close #102
22 (other comment)
occured -> occurred as well
23 (other comment)
Hi! Ivander,
Heres the trippie data from the initial test as the issue above
I tried to replicated the issues and typed as similar as i have tested:
Part 1:
Part 2:
Exited and Part 3:
Delete trip show the same issue as well
You can try as follows
Here is my new trippie_data, apparently it doesnt delete from here by itself so... i not sure if we can do anything about it
@hailqueenflo
(9 comments)1 (commented on others PR)
There should be a space after the # in order to display the heading properly (### 1.1 Viewing bookmarks in each category:)
2 (commented on others PR)
Remember to add an extra line after add LINK
for it to show as the next paragraph
3 (commented on others PR)
Extra line needed here too
4 (commented on others PR)
Should it be rm 1
?
5 (commented on others PR)
Should it be add LINK
?
6 (commented on others PR)
There should be a space after # so that the heading is displayed properly on GitHub
i.e. ### 3.1
7 (commented on others PR)
Is this supposed to be a bullet point? If so, an extra space is needed after *
Perhaps you can also consider putting it in under Useful information: to improve readability
8 (commented on others PR)
Remember to fix this typo
9 (commented on others PR)
Some line spaces are not properly formatted
10 (other comment)
Close #125
@joelngyx
(9 comments)1 (commented on others PR)
Good job!
2 (commented on others PR)
Good use of tests! And good formatting overall
3 (commented on others PR)
looks good
4 (commented on others PR)
Looks great!
5 (commented on others PR)
Thanks for resolving the anchors here!
6 (commented on others PR)
Changed existing interfaces into classes under 2 broad interfaces, making the code tidier. Looks great!
Though I agree with Joseph, more could be done to develop the interfaces to manipulate the lists in our program. Many of our lists have similar functions, hence we ought think of ways to better use interfaces here.
7 (commented on others PR)
Shouldn't variables be named using nouns and note with a verb? A better way of naming deleteIndex
could be indexToDelete
.
8 (commented on others PR)
Perhaps a constant could be used in place of ""
9 (commented on others PR)
Looks great! It's good that we are more specific on these instructions, so as to avoid confusion with users
10 (commented on own PR)
My apologies, I've added them back
11 (commented on own PR)
Thanks for your suggestion! Will do
12 (commented on own PR)
done!
13 (commented on own PR)
Thanks for catching the error!
14 (commented on own PR)
Good catch! Fixed it. Thanks!
15 (other comment)
Implemented
16 (other comment)
Resolved with #212
@Ang-Cheng-Jun
(8 comments)1 (commented on others PR)
I think the displayOutput should store string, then return with string is better. It will be much clearer in the implementation.
2 (commented on others PR)
So we need this.getAllAppliance() ?
3 (commented on others PR)
This command is the same as OffCommand. Can we combine it ?
4 (commented on others PR)
Yes
5 (commented on others PR)
Then i think it is fine
6 (commented on others PR)
Maybe can do the catch Exception for this part. You can see how i did for AddCommand
7 (commented on others PR)
Maybe can do the catch Exception for this part. You can see how i did for AddCommand
8 (commented on others PR)
Maybe you need an empty line here
9 (commented on own PR)
I try to be consistent in all the function
10 (commented on own PR)
As discussed, we dont need the this .
11 (commented on own PR)
As discussed, we dont need the this .
12 (other comment)
Here you go, i redownloaded it
13 (other comment)
Your UG is too hard to understand. Maybe you should make it clearly
14 (other comment)
Btw, i have ask prof. He ask me to do on fallback team already. So i cant create an issue on it.
15 (other comment)
Good Work ! I will continue from here to do the JUnitTest on removing location.
16 (other comment)
Thanks Leon, solved the issue !
17 (other comment)
Delete Pull Request
18 (other comment)
Thanks for the feedback. Most of the code is repeated one. I will place them in a private function in the class
19 (other comment)
Looks good !
20 (other comment)
Thanks for the feedback I have changed it
@farice9
(8 comments)1 (commented on others PR)
Should probably git ignore this? Or intended ya
2 (commented on others PR)
I think it'll be clearer if you put
assert cardIndex <= flashcardDeck.size() : "card index inserted should be less than size of deck at this step"
assert is used to check if the value of something is what it should actually be, in this case, you want to assert that card index is actually less than or equal to deck size.
Consider adding another check for cardIndex to be greater than 0 btw! Otherwise negative values might break the application.
3 (commented on others PR)
Just adding on, the more general alternative would be testAddCard() !
Remember to apply the renaming to delete card and write to file as well.
4 (commented on others PR)
I think need to Figure 2 instead of figure 2
5 (commented on others PR)
Same thing here
6 (commented on others PR)
Are we keeping this line?
7 (commented on others PR)
Everything else looks goood
8 (commented on others PR)
I'll merge and help edit this since I'm working on it, thanks for pointing!
9 (other comment)
User should be able to enter and exit a feature of the application
If possible, the user can jump from one feature to another without going back to the main menu
10 (other comment)
LGTM, gonna merge and refactor any parts if necessary. Noice mate.
11 (other comment)
I agree with the check cap thing Sihui mentioned, but let's leave it to v2.0
12 (other comment)
LGTM, it won't affect other parts of the code atm since it only implements list grade function. Will merge this PR!
13 (other comment)
Will link the specific PR to this issue when working on it. Thanks for creating the issue!
14 (other comment)
Nice work Florence! Functions look good.
I resolved merge conflict between this branch and the latest TP master (after merging Shiho part). Then found out there are checkstyle errors. For the interest of time, I'll merge this PR in and fix the checkstyle on my side locally.
15 (other comment)
LGTM, failed some checks due to very little checkstyle error, will fix in the upcoming PR. Merging it!
16 (other comment)
Nvm just merge first! Thankss
17 (other comment)
LGTM, thanks for the prompt addition. Merging it 😸
18 (other comment)
LGTM, merging it!
19 (other comment)
Need to implement for the bookmark and academic features. Flashcard and timetable local storages have been built by @slightlyharp and @hailqueenflo .
20 (other comment)
Thanks for adding the log!
21 (other comment)
Remember to close this issue if it's done!
22 (other comment)
end result
23 (other comment)
LGTM!
24 (other comment)
Sorry wrongly approved, wait for new push before merging
25 (other comment)
This issue has been solved by each individual working on their feature
bookmark storage -> @lingsihui
academic storage -> @luziyi9898
timetable storage -> @slightlyharp
flashcard storage -> @hailqueenflo
26 (other comment)
Closing this issue since it has been implemented
27 (other comment)
Planning to standardize UI tmr
28 (other comment)
Adding on. This is cause the file is only really created when there's data inserted. Otherwise if left blank, it won't "create" properly.
29 (other comment)
@hailqueenflo added it
30 (other comment)
@hailqueenflo added
31 (other comment)
Closing this issue as it's implemented as "highlight" function
32 (other comment)
Merging this despite failing check. The check failed due to a JUnit test from @slightlyharp .
33 (other comment)
Merging it despite failing test for the same reason as @luziyi9898 PR
34 (other comment)
@slightlyharp Can you check your JUnit test again? It's still failing. Gonna hold on to your commit until noon, alright?
35 (other comment)
Fixed! Sorry I missed it, thanks for pointing it out!
36 (other comment)
Checkstyle error!!!!
37 (other comment)
Solved at V2.0 release
38 (other comment)
Closed since it is intended! (It's a feature)
39 (other comment)
Resolved with @lingsihui . Will close in the next PR
40 (other comment)
Solving this in the next PR by changing everything "main menu" to menu
41 (other comment)
Solved by @luziyi9898
42 (other comment)
Can't reproduce this bug
43 (other comment)
Standardizing all to CAPITAL_LETTERS only!
44 (other comment)
Not adding this as a function for V2.1 after discussion with @luziyi9898
45 (other comment)
Can you add > for "warning" and "useful information" before we merge this PR
46 (other comment)
Solved
47 (other comment)
Can PR now
@dozenmatter
(8 comments)1 (commented on others PR)
I was thinking if it would be better to place quoteToPrint inside your toString() method and implement printAllQuotes() inside TextUi class instead? Then all you need is to call quoteList.toString() inside your printAllQuotes() method to print all quotes.
What do you think? 😃
2 (commented on others PR)
Why do you create a DeleteCommand inside your todo package?
3 (commented on others PR)
Likewise for this and other commands. Ideally all of our commands should be defined under the "commands" package
4 (commented on others PR)
Not sure if this line of code will fail, but I think it will be better to use information.isEmpty() or information.equals("") ?
5 (commented on others PR)
no worries I think that is not too big an issue
6 (commented on others PR)
By right execute() should take in Storage as parameter and this line of code should be storage.save() instead due to the previous commit I pushed just now. Not sure why Git did not flag this as a merge conflict though.
Can you try to pull the latest one and see if the code updates?
7 (commented on others PR)
Just to confirm, will your bookmark work if you do not 0-index this?
8 (commented on others PR)
Oh I see how your code works now. As a suggestion, it will be better to 0-index the number here, so that you will not need to -1 from other places of your code such as your delete() and findByIndex().
I will assume that your code is working and approve it.
9 (commented on own PR)
i think this could be previously from Yilun's one. Just now the log file got merge conflict so I just anyhow remove some lines haha.
10 (commented on own PR)
Yup you're right this line can be removed 👍
11 (commented on own PR)
Alright noted!
@limgl1998
(8 comments)1 (commented on others PR)
I think this line should be in one of the methods instead of being declared outside
2 (commented on others PR)
Maybe it would be clearer for the instance of ModuleList to be called modList instead? It might get confused with module.
3 (commented on others PR)
Maybe can include a file creation here so the user need not manually create one
4 (commented on others PR)
I think the address can be refactored into a constant e.g. FILE_PATH
5 (commented on others PR)
Maybe can label as a comment what the various index of the array modInfo refers to
6 (commented on others PR)
A suggestion is that this string can be set as a constant in the UI class and then you can call the constant (UI.constant name) here. If the message is changed at the other class for whatever reason then this part will automatically change also so don't really need change manually every time.
7 (commented on others PR)
Not sure if really wanna use this as this is kind of buggy. Might need to update/ tweak cmd for it to show
8 (commented on others PR)
Hmm, then for now we just use it. If it was encountered as a bug during testing then we change? Cos now this method is not tested yet right?
9 (commented on own PR)
Sounds like a good idea!
10 (commented on own PR)
Okay sure will change it back
11 (commented on own PR)
yeah should ignore
12 (other comment)
Fixes #23
13 (other comment)
Looks good to merge!
14 (other comment)
Thanks for the feedback. It could be the case where the user has spent time on the module but has forgotten to update the app. So we shouldn't assume that the user did not spend any time on the module.
@yeapcl
(7 comments)1 (commented on others PR)
Please consider using switch-case. Otherwise, the last one should be a single else-statement. (https://se-education.org/guides/conventions/java/basic.html#layout)
2 (commented on others PR)
can you probably extract the method out? Quite a number of duplications.
3 (commented on others PR)
perhaps the logic can be further improved by checking for time validity first, and if it's valid, proceed to add event. In other words, the flow shouldn't be deleting the event only after realising the time is not valid. This results in duplicated code.
4 (commented on others PR)
If the time is not valid to begin with, it should be thrown immediately and request the user to re-enter with valid timings. i.e. the case where "check for validity then add" does not need to happen, as the program will throw an exception
5 (commented on others PR)
I believe that implementing a checkTimeValidity function with throwable in line 34 would have been suffice. The invalid times would not be added to the event when the program throws an exception.
6 (commented on others PR)
Nice work, but is it possible to prompt user to enter password when removing an account? Otherwise it might result in poor security design.
7 (commented on others PR)
Maybe can add exceptions here in case user enter a command not expected by the program.
8 (other comment)
Hi Manuel and Wei Siong, I think we should define a Timetable Class and use it to create ArrayList>Timetable>. Also, it fails CI test. Can you push some changes to debug to code that cause CI to fail? Thanks.
9 (other comment)
So that I can quit the application in a manner expected by the developer. (e.g. correctly save all my class timetables in a text file)
10 (other comment)
Feature implemented
11 (other comment)
Feature fulfilled.
12 (other comment)
Feature fulfilled.
13 (other comment)
Feature fulfilled.
14 (other comment)
PR did not pass CI, please review your code again
15 (other comment)
Reopened because the bug is still not resolved.
16 (other comment)
User stories realised.
17 (other comment)
Feature achieved.
18 (other comment)
Fixed via #109
19 (other comment)
JUnit tests for EditCommand for 100% line coverage
Finally resolved windows gradlew check issue
20 (other comment)
UG has been updated to better portray the objective of WhereGotTime application.
@manuelmanuntag96
(7 comments)1 (commented on others PR)
The picture doesn't appear on the DG page
2 (commented on others PR)
The picture doesn't appear on the DG page
3 (commented on others PR)
The picture doesn't appear on the DG page
4 (commented on others PR)
The picture doesn't appear on the DG page
5 (commented on others PR)
The picture doesn't appear on the DG page
6 (commented on others PR)
The picture doesn't appear on the DG page
7 (commented on others PR)
The sequence diagram is a bit messy and complex
@QX-CHEN
(7 comments)1 (commented on others PR)
No need these.
2 (commented on others PR)
-1 later because range check is done in the later part.
3 (commented on others PR)
-1 here.
4 (commented on others PR)
Perhaps variable name change to index?
5 (commented on others PR)
Fullstop before new line.
6 (commented on others PR)
Expand out, should be highlighted in code style.
7 (commented on others PR)
specifically line 37
@1-Karthigeyan-1
(7 comments)1 (commented on others PR)
Could be more specific in naming convention. For example, "getList" or "getActivityList"
2 (commented on others PR)
Might have to SLAP this later on, once the base parser class Is up
3 (commented on others PR)
You can use the methods in findDescriptionCommand class and assert using those methods.
4 (commented on others PR)
Same as the previous comment
5 (commented on others PR)
Nice slap!!!
6 (commented on others PR)
Assertions.assertThrows() might help for exception testing
An example is given here:
https://howtodoinjava.com/junit5/expected-exception-example/
7 (commented on others PR)
Spelling error for calorie
8 (other comment)
Looks good!
9 (other comment)
Looks good!
@durianpancakes
(7 comments)1 (commented on others PR)
public String printPostQuizQuestion(int l, String correctnessLogo) {
2 (commented on others PR)
return question + correctnessLogo + "\n\n"
3 (commented on others PR)
return question + correctnessLogo + "\n\n"
4 (commented on others PR)
Add one line here:
String correctnessLogo;
5 (commented on others PR)
System.out.println(quizzes.get(quizIndexes.get(l)).printPostQuizQuestion(userAnswerManager.
getUserAnswers().get(l), correctnessLogo));
6 (commented on others PR)
Is our superclass containing the start and end time still present?
7 (commented on others PR)
Understood. Thank you!
8 (commented on own PR)
Added. Thanks for the suggestion.
9 (commented on own PR)
Added. Thanks for the suggestion.
10 (commented on own PR)
Edited. Thanks for the suggestion.
11 (commented on own PR)
Added. Thanks for the suggestion.
12 (commented on own PR)
I think "you got full marks" sounds better
13 (commented on own PR)
Added. Thanks for the suggestion.
14 (commented on own PR)
Will do. Thank you!
15 (commented on own PR)
Noted 👍
16 (other comment)
Resolves #129
17 (other comment)
Resolves #189
18 (other comment)
Prints time instead of date
19 (other comment)
Feature has been improved to be able to print events of next week in issue #280, resolved by pull request #281
20 (other comment)
The problem has been rectified.
21 (other comment)
Resolves #332
22 (other comment)
While we understand that it could be irrelevant for a user to add events in the past, but this is up to the user's choice. If the user doesn't find a need to add any events in the past, the user can choose not to.
23 (other comment)
The problem has been rectified. Thank you!
24 (other comment)
We have decided that for this iteration of the product, we will include CCAs as a form of work, as having many extra curricular activities also stress students out. We will word the prompt in a clearer way.
25 (other comment)
This clash function is for events with timing that clashes. Unfortunately, that means it may not be "repeated". Hence, we decided to keep it this way.
26 (other comment)
Partially addressed by #345
27 (other comment)
Noted.
28 (other comment)
We will update UG to inform the user to input lower case.
29 (other comment)
Resolved by Andre
30 (other comment)
Resolves #295
31 (other comment)
Resolves #362
32 (other comment)
I will handle this. Thanks for raising the issue.
33 (other comment)
Latest commit resolves #403
@domaxi
(7 comments)1 (commented on others PR)
The printing of the cheatsheet names should return a String. All the Sytem.out.println should be handled by only the UI class.
2 (commented on others PR)
^same as first comment
3 (commented on others PR)
The test is well made, but I think you can move the test into the Test package instead of putting it inside the cheatsheet list class
4 (commented on others PR)
Nice Job! Very Neat and the OOP is damn legit
5 (commented on others PR)
Legit!
6 (commented on others PR)
Looks fine to me
7 (commented on others PR)
You can separate the challenges you faced in a separate section. For example:
Highlights
... your hightlights
8 (commented on own PR)
Did you just list it one by one?
9 (other comment)
I think it is a little bit counter-intuitive because the user do not have any specific instruction in the UG or in the help page on how to add new tasks. Your add command makes it more confusing for the user to add the tasks.
10 (other comment)
I added another attribute in the cheatsheet, isFavorite. Also added a method setFavorite() in the cheatsheet class
11 (other comment)
#262
@kerct
(6 comments)1 (commented on others PR)
Why not just take in Module as an argument?
2 (commented on others PR)
Is "checkIfModuleExist" a better name?
3 (commented on others PR)
Should we change -1 into a variable called INVALID_WORKLOAD or INVALID_WEEK too?
4 (commented on others PR)
How about using COMMAND_EXIT.length() instead?
5 (commented on others PR)
Should we gitignore this file?
6 (commented on others PR)
Is it better to use the verb form "analyse" for the command instead?
7 (commented on own PR)
The file is already created when the Storage object is initialised, this part is just a check when trying to read from the Storage object.
8 (commented on own PR)
Okay!
9 (other comment)
Thanks for your suggestion! However, we feel that it will be troublesome as the user cannot delete a task in one line. 😃
10 (other comment)
Great suggestion! We thought of this too but would like to leave it to future versions due to time constraints. 😃
@tobiasceg
(6 comments)1 (commented on others PR)
Add a constant FORMAT
2 (commented on others PR)
Looks good to me, once merged I will add this into the parser
3 (commented on others PR)
Is it possible to also add a EditTaskCommand format like ur EditModuleCommand
4 (commented on others PR)
ok this will conflict with my side as my grade treats this as an exception, will edit this code portion later
5 (commented on others PR)
i think u missed out this part
6 (commented on others PR)
i guess u can say coz u arent a user and u dont need the guide 💯 😆
7 (commented on own PR)
i dont think i can abstract this switch statement due to the fact that it returns different methods based on the command_word_****? Any advice?
8 (commented on own PR)
thirded, motion granted
9 (commented on own PR)
that typo was meant for you, thank you
10 (commented on own PR)
but the locations where i have used centerstrings are actually the error messages as the catches are in execute and they return commandresult instead of incorrectcommand thus for such specific cases i have included the error headers
11 (commented on own PR)
checking if that semester they SU all the mods
12 (commented on own PR)
yes boss
13 (other comment)
Looks good to me, no issues.
Can merge
14 (other comment)
could u add, a AddCommand.FORMAT
a constant that outputs the correct format on how a addcommand will be read
15 (other comment)
looks good, thank you for solving the bug that affects me
16 (other comment)
looks good to me, once 1 or 2 more ppl look thru n approve i think can merge
i updated my textui last night also, with regards to the printing of the list
17 (other comment)
got it, fixed help command in my latest PR .
The edit command is fixed with wang qins latest PR
18 (other comment)
solved with PR df04fbc6f689c65c0dea794eeb336d41ebcd15f3, merged
19 (other comment)
Please add the diagrams into the DG and explain with reference to the diagrams
RESOLVED ALREADY THANK YOU
20 (other comment)
accidentally closed PR
21 (other comment)
Please fix failing tests before merging
PLS re-review thanks
22 (other comment)
Fixed by early PR merged
23 (other comment)
Fixed by earlier PR merge
24 (other comment)
Boss jy, is the [x] needed?
25 (other comment)
fixed by earlier PR #225
26 (other comment)
fixed by earlier PR #225
27 (other comment)
fixed by earlier PR #225
28 (other comment)
fixed by earlier PR #225
29 (other comment)
fixed by earlier PR #225
30 (other comment)
fixed by earlier PR #225
31 (other comment)
fixed by earlier PR #225
32 (other comment)
fixed by earlier PR #225
33 (other comment)
fixed by earlier PR #225
34 (other comment)
fixed by earlier PR #225
35 (other comment)
fixed by #231
36 (other comment)
fixed by #231
37 (other comment)
fixed by #231
38 (other comment)
fixed by #231
39 (other comment)
fixed by #231
40 (other comment)
fixed by #231
41 (other comment)
fixed by #231
42 (other comment)
fixed by #231
43 (other comment)
fixed by #231
44 (other comment)
fixed by #231
45 (other comment)
fixed by #231
46 (other comment)
fixed by #231
@shikai-zhou
(6 comments)1 (commented on others PR)
I think you should not put this inside the constructor
2 (commented on others PR)
Should we use break instead of return?
3 (commented on others PR)
As long as it works I guess ...
4 (commented on others PR)
Since the variables are already declared, why not pass use them? Like ShowDuration instead of Integer.parseInt(2)
5 (commented on others PR)
What if we don't know showDuration?
6 (commented on others PR)
Does this function prints out the review?
7 (commented on own PR)
I just made it so that it prints out hours and minutes. Still cannot parse yet.
8 (commented on own PR)
Ok, on it
9 (other comment)
Great job
10 (other comment)
This is done for add
11 (other comment)
add >Module Code> >1> >Number of Lectures>
Do you think the above works?
12 (other comment)
Is this done?
13 (other comment)
Done
14 (other comment)
What was the input you used, so I can replicate the problem
15 (other comment)
ok tried again and it works
16 (other comment)
Should be fixed above
17 (other comment)
May I suggest the use of backspace?
18 (other comment)
Has already been fixed in #142. Someone double check?
19 (other comment)
The overwrite function was introduced later, hence the discrepancy.
20 (other comment)
We should still catch the exception
21 (other comment)
Is this worth fixing?
22 (other comment)
Already fixed?
23 (other comment)
I've checked. Resolved in #142
24 (other comment)
Again #142
25 (other comment)
Will look into it
26 (other comment)
duplicate of #181
27 (other comment)
Time limit is not negative. The avaliable time is negative. Ergo the time limit was exceed.
28 (other comment)
Non-issue. Closed
29 (other comment)
Duplicate issue
30 (other comment)
User should not type in space
31 (other comment)
Looks like it is resolved in current version
32 (other comment)
Duplicate issue
33 (other comment)
Bug in empty add command not due to the change of data file
34 (other comment)
Fixed in #198
35 (other comment)
Will update the DG
36 (other comment)
I think misunderstanding, do not have to change if you do not want to change.
37 (other comment)
resolved
38 (other comment)
Giving options to users will require a entire rework of the edit command, so I have added examples for the user
@wgzesg
(6 comments)1 (commented on others PR)
Try use commandLibrary as well?
2 (commented on others PR)
Since it's the same we can refactor the two to a shared package then use it for all parts?
3 (commented on others PR)
Printing response can put in Ui class. Response content can be a constant
4 (commented on others PR)
Can try use/adapt the getInput method from Khoa's Ui package. That may standardise it
5 (commented on others PR)
Can create a new instance of workoutSessionUi and make the method non static. That would be more oop and better design
6 (commented on others PR)
Can try convert to throw Schwagserexceptions which can be handled by SchwasadsfgerHandler. That will help format the output which aligns with Ui output format
7 (commented on own PR)
ohh tkss. Will fix that
8 (commented on own PR)
Icic. Will check on that
9 (other comment)
Good refactoring to avoid circular dependency
10 (other comment)
good effort!
11 (other comment)
Nice refactoring
12 (other comment)
Nice work! Will follow the format
13 (other comment)
Written in UG...
14 (other comment)
The size is dynamic
15 (other comment)
standardise:
"Alright, your %s been cleared!" // "name + has/have"
16 (other comment)
Add for search; remove the sentence for list
"%d %s been found!" // (name + has/have)
17 (other comment)
"Click here to learn how to enter xxxx" -- only for diet/workout/profile menu
add back to top -- after diet/workout/profile menu
18 (other comment)
Put in UG
19 (other comment)
Missing header
20 (other comment)
rep >= 1
weight >= 0
21 (other comment)
delete support for that format
22 (other comment)
show warning
23 (other comment)
Nice refractoring
24 (other comment)
The bug is fixed. Now if the date is the wrong format, it will terminate the serach
@kaiwen98
(5 comments)1 (commented on others PR)
I think the reason why I was not able to exit your sub program is because your event loops here are slightly convoluted and possibly buggy. Please review!
2 (commented on others PR)
You can try reviewing LocalDateTime methods for better ways to parse months. Likewise, my DateTimeManager class and parseRawDateTime method in InputParser class may be helpful to you in this particular function.
3 (commented on others PR)
May want to refactor into another function
4 (commented on others PR)
So you used toString() to handle save text output. You can perhaps introduce another method to the classes, possibly with an interface, to print some kind of save statement separately. This make make your life easier when you parse.
5 (commented on others PR)
In case you cannot find a better way to deal with this, look at my previous comment
6 (other comment)
Noted. Will work on it.
7 (other comment)
Please take a screenshot, and report your input sequence.
8 (other comment)
Can you look into the following:
Your main loop do not have an exit condition. That's why you cant exit back to main menu
You are not using MenuPrinter in your feature. Hence MenuPrinter.prompt does not print error message for you.
May want to look into better presentation of error message
You may want to augment your command menu with what the user can input, I was not sure what to do
Please fix 1 and 2 then the PR will be merged. The rest LGTM.
9 (other comment)
Yo, please check out this issue: #47
Please review the changes and let me know if you feel something better can be done.
You will need to do some slight refactoring. Kindly do so then it will be good to merge.
10 (other comment)
Will merge for now to diagnose the error
11 (other comment)
Resolved with thanks.
12 (other comment)
Resolved with thanks.
13 (other comment)
Resolved with thanks.
14 (other comment)
Resolved with thanks.
15 (other comment)
Resolved with thanks.
16 (other comment)
Resolved with thanks.
17 (other comment)
Resolved with thanks.
18 (other comment)
Resolved with thanks.
19 (other comment)
Resolved with thanks.
20 (other comment)
Resolved with thanks.
21 (other comment)
Resolved with thanks.
22 (other comment)
Resolved with thanks.
23 (other comment)
Resolved with thanks.
24 (other comment)
Resolved with thanks.
25 (other comment)
Resolved with thanks.
26 (other comment)
Resolved with thanks.
27 (other comment)
Noted with thanks.
28 (other comment)
Noted with thanks.
29 (other comment)
Noted with thanks.
30 (other comment)
Noted with thanks.
31 (other comment)
Noted with thanks.
32 (other comment)
Noted with thanks.
33 (other comment)
Noted with thanks.
34 (other comment)
Noted with thanks.
35 (other comment)
Noted with thanks.
36 (other comment)
Noted with thanks.
37 (other comment)
Noted with thanks.
38 (other comment)
Noted with thanks.
39 (other comment)
Noted with thanks.
@weisiong24
(5 comments)1 (commented on others PR)
The circle highlighted portion for the sequence design is very small and hard to see the different components/operations. It would improve the visusal better if more spaces are given to the main ravi box for the sequence diagram.
2 (commented on others PR)
The above top class design is too messy with arrow and it might confused the reader. A proper arrow head would improve readibility to the readers about your application.
The circle portion of the diagram I have marked may be hard for user to get a better picture of the flow of your design.
Perharps, use straight lines or adjust the different box accordingly so that user can follow through the flow of the design
3 (commented on others PR)
The above top class design is too messy with arrow and it might confused the reader. A proper arrow head would improve readibility to the readers about your application.
The circle portion of the diagram I have marked may be hard for user to get a better picture of the flow of your design.
Perharps, use straight lines or adjust the different box accordingly so that user can follow through the flow of the design
4 (commented on others PR)
The arrow coverges too much in the circled portion and thus it is making the class diagram more complicated than it should have been. Maybe try to simplify the diagram by breaking it into portions or structure the arrows in a way that it is straight and pointing the class table more clearly.
5 (commented on others PR)
Inconsistent arrow used (dotted and solid arrow) and the arrow head in the circled area is over the box which should have only been hit the box only.
Lack of system architecture diagram to show the overall design of the program. (only uml and sequence diagram is available).
For this diagram, it is hard to interpret if it is a uml class diagram as the boxes used are wrong and format of the diagram is not consistent with the format of a standard uml class diagram.
6 (commented on own PR)
Hi, I have made the changes mentioned above and updated it. Kindly check if you can merge it. thank you!
7 (commented on own PR)
The logic is the same, E.g. if you check for validity then add and you still have to take into consideration of what happens if is invalid , keep or delete. So, if you check for invalid and remove them (not adding them) , it would be the same.
8 (commented on own PR)
its even better to check and do action to invalidity first as after you check for validity you would still need to add and then keep track of the invalid (error message)
9 (commented on own PR)
Nevermind, got it to work based on your proposed logic. Will work on it. Meanwhile can merge this first? i will do another pr after this.
10 (other comment)
To create different user acoounts :User Class- > name,password,7 Arraylist timetable (one for each day)
Inside every timetable arraylist put event class->name,location, timeStart,timeEnd
For each features:
Login feature-> create obj from user class
Add feature->similar to add event command in IP
edit ->members of event class
display->sort timetable then similar to List command in Ip
delete->similar to delete command in Ip
clear-> delete for all events in timetable arraylist
compare->linear search thru timetable arraylist
command->program to prompt user for input individually (one at a time)
11 (other comment)
Mentioned in Enhance the add verifications of Input #65
12 (other comment)
I linked it to our 2.0 for now. If v2.1 is released, we will need to update again
13 (other comment)
I have added a screenshot of the expected output in the UserGuide for the add command. Maybe the rest can do a simple screenshot?
@leonlowzd
(5 comments)1 (commented on others PR)
Should we use this.argument to indicate that we are accessing the current's object's variable? Other classes are using 'this' as well
2 (commented on others PR)
Is the argument for this parameter useful? Or can we directly declare outputResults in the function and return LINE + "All appliance in "" + argument + "" are turned on."
P.S, you're missing a full stop
3 (commented on others PR)
Should we explain what this stream does? I feel it could be hard for future developers to understand this block. Maybe in the form of comment
4 (commented on others PR)
Should we rename this to something clearer? Like toPrintLocationList or outputLocationList?
5 (commented on others PR)
same thing as the other comment: should we standardize with 'this.argument'
6 (commented on own PR)
nice catch, I missed it
7 (commented on own PR)
So you are saying:
String displayOutput = header + filterApplianceList ;
return displayOutput;
?
8 (commented on own PR)
What do you mean by combining it?
9 (commented on own PR)
I believe while they are very similar when it comes to code, they serve two different command types and hence should be separated in the spirit of OOP, what do you think?
10 (commented on own PR)
This cannot be done as displayOutput takes in a header and a ApplianceList
11 (commented on own PR)
Sure, I can add more tests on that as well.
12 (commented on own PR)
Changed!
13 (other comment)
test succeed, will close PR now.
14 (other comment)
test is done:)
15 (other comment)
Nicely done! Some methods are quite long though, maybe we can break it down further?
16 (other comment)
To state in UG that turning off program will switch off all appliances and explicitly mention it in exitmessage
17 (other comment)
To do check in LocationList as well.
18 (other comment)
KIV
19 (other comment)
KIV
20 (other comment)
change to "toilet does not have any appliances"
21 (other comment)
minor bug
22 (other comment)
Appliance was remained on when p_reset was called
23 (other comment)
mention in UG & exit message
24 (other comment)
"hundred" is a string
25 (other comment)
Update UG for better clarity
26 (other comment)
Change printout message to be more explicit
27 (other comment)
UG stated must be unique name, program works as intended
28 (other comment)
KIV
29 (other comment)
KIV
30 (other comment)
KIV
31 (other comment)
Might want to change some printout messages for ON command for better clarity, so hold on for that command first.
32 (other comment)
Ressolves #164 as well
33 (other comment)
wattage is too low, give it some time
34 (other comment)
Great way of using exception to handle the error messages. I feel it cleans up our code well for V2.1. Good job!
35 (other comment)
Nice way of doing logging, we shall follow your style!
36 (other comment)
Would you like to do Junit test for the other 2 Appliances as well?
37 (other comment)
Addresses #209
38 (other comment)
Think you can add more logging with Level.WARNING if fail to turn on or off the appliance?
You are right, I should add more for warning.
39 (other comment)
Should Logs in InvalidCommand be WARNINGS instead?
40 (other comment)
I liked how you have reduced the assertion commands, code looks much neater!
41 (other comment)
Well Done, lets merge this and complete wrap up our project soon!
42 (other comment)
This PR also solves #184
@jazhten
(5 comments)1 (commented on others PR)
No, I think break might cause the program to terminate as if a "bye" has been passed in. Not sure if it will break the outerloop in the main Duke class.
2 (commented on others PR)
is it possible to throw more than 1 exception? Does it even catch the IndexOutofBounds?
3 (commented on others PR)
well done with this part
4 (commented on others PR)
Can I just check if our code can parse hours on top of minutes?
5 (commented on others PR)
Ah okay, will raise an issue.
6 (commented on own PR)
No it's not inside the constructor, I'll move it to the bottom so it's clearer haha
7 (commented on own PR)
Just assume they know or set default.
8 (commented on own PR)
Good catch, whoever is in charge of the add command just adjust accordingly.
9 (other comment)
Additionally, fixed some bugs related to adding show (would've caused null pointer exception)
Added test methods as example for how to write tests and specifically how to reference the ShowList
10 (other comment)
Also abstracted String related commands to StringOperations class
11 (other comment)
Nevermind fixed it...
12 (other comment)
Sorry don't merge yet, there's some bug with one of the commands
13 (other comment)
Just to explain the new changes for edit commands :
getRawEpisodesForSeasons() used instead of getEpisodesForSeasons() -> this one checks array using season-1 so it'll lead to bounds errors
If numSeason increases:
- set a new array for episodes and init the new seasons with 1 episode
if numSeasons decreases:
- replace episodes with smaller sized array and delete the episodes in the later seasons
- initially episodes=[10,12] for 2 seasons, when resized to 1, episodes=[10]
14 (other comment)
Fixed issue.
15 (other comment)
Might want to try using Ui.print.... instead of just printing using System.out.println() in the individual functions.
16 (other comment)
Nice, may want to remove the empty test functions before the final release.
17 (other comment)
Good use of the Ui class!
18 (other comment)
For the date part, just raise the issue and I'll work on it later. thanks
19 (other comment)
Thanks for cleaning up.
20 (other comment)
Good cleanup.
21 (other comment)
Yea, I think we should include it in the UG so it'll be easier to use for the pitch/demo. Don't think it's necessary for the DG, maybe a quick note in the abstract or intro about the student part would be sufficient.
22 (other comment)
Good work with the review commands! Thanks Bryan.
@Colin386
(5 comments)1 (commented on others PR)
Would you like to shift this command outside the while loop? will the reminder command keep reminding for every other command we write?
2 (commented on others PR)
there are three kinds of error that can occur here it seems. The first kind occurs if the user type in the wrong type of event. The second is that the index is incorrect. The third is if the index and type is valid, but there is no notes to display for that particular event. ... perhaps the two exceptions need to be swapped
3 (commented on others PR)
Here is whree the Invalid List Exception may be thrown
4 (commented on others PR)
Here is where it can be detected if the index is incorrect or not
5 (commented on others PR)
Nice. I think this is a good feature to add to remind users about the format to use
6 (other comment)
I think its good. I like that you check for the date formats before running your code
7 (other comment)
There are no exceptions to implement for Goal
8 (other comment)
Excellent, I think the code runs very well. Most of the exceptions have been dealt with.
9 (other comment)
So far I thnk the code is good, I can see that there is a change from storing date time status structures to using entire clonable events instead. I think this will be helpful later down the line when we need to sort stuff as now to access the repeated events, they have a similar structure
10 (other comment)
Overall I think the code on the whole is good. I can see that it will filter out all events that fall on the day the program is run. I noticed that the remind command is in the while loop. I was wondering if the intention is to get the reminder to keep reminding the user everytime another command is run.
11 (other comment)
Overall I think the code looks good.
12 (other comment)
I think the overall code looks good. I will try on my end to see if I can assist with the storage formatting. I will also see if I can reduce the number of nested if statements on my end as well
13 (other comment)
Will be written that semicolon will be treated as a newline character in the user guide. Or may change character key to perhaps "'"
14 (other comment)
For the current program, the user is only allowed to set one goal. Hence, there is no goal list. However, we shall write in our UG that only one goal is allowed at one time
15 (other comment)
Hi, thanks for leting us know of the bug. May I know how did you create this error? Our team was unable to recreate it by typing the word "fancy". Thanks
16 (other comment)
I have verified the cause of the null repeat list... most likely ui printing code is trying to print the event time despite the fact that this event has no time information provided
17 (other comment)
Yep, it will override with the current state of the data stored in the program
18 (other comment)
We will close this issue. We simply need to write a message perhaps informing users to press enter to print out the entire calendar before proceeding with any other commands
19 (other comment)
Fixes #213
20 (other comment)
Fixes #162
@Lee-Juntong
(5 comments)1 (commented on others PR)
If you want to say you managed something, you may want to specify it? Otherwise, you may just delete the project management part since it's optional.
2 (commented on others PR)
Auto Clear in our product should be considered as an option that can be opened/closed by the user, so maybe this Command does not behave as what we want it to be? Perhaps you would like to consider this as a flag to be set, which will be checked every time when launching this app.
3 (commented on others PR)
This exception seems redundant if we consider auto-clear as an option that can be open or closed. In that sense, you may want to remove this exception? Since having no event happening one month ago is not really a big deal.
4 (commented on others PR)
There is no difference made even you implement this static method. It's still not OOP.
5 (commented on others PR)
This is the second time you add size into the main run(). We have discussed that, for OOP, you should not access events methods in run(). You may want to call this function in EditCommand which allows you to check the size.
6 (other comment)
syntax inferred:
edit index
the new event is entered with the same syntax as adding a new event.e.g. 'assignment xxx /t 2020-10-01 20:00 /l somewhere
7 (other comment)
in a later version, we shall allow the user to edit only one part of the event. i.e. only time or location or type or description
8 (other comment)
make sure you can pass CI. There is no bug in CI now.
9 (other comment)
coding style check failed
10 (other comment)
solved
11 (other comment)
solved
12 (other comment)
solved
13 (other comment)
solved
14 (other comment)
Improved
15 (other comment)
the format is invalid in this case because 53:40 is an invalid time.
But nonetheless, I have updated the error message in this case.
16 (other comment)
Similar to the other issue raised by this guy. Improved in the same way.
17 (other comment)
solved
18 (other comment)
seems we also can't reproduce this bug.
19 (other comment)
unable to reproduce this bug
20 (other comment)
solved
21 (other comment)
solved
22 (other comment)
this should be reflected as a documentation issue since the data folder is available in the release
23 (other comment)
But nonetheless, this should be reflected as an issue, since we should have only one jar file for people to download
24 (other comment)
solved.
delete INDEX
is the correct command to use for deleting a certain event
25 (other comment)
solved
26 (other comment)
solved
27 (other comment)
solved
28 (other comment)
solved
29 (other comment)
solved
30 (other comment)
solved
31 (other comment)
seems nothing goes wrong.
this may due to the tester uses an older jar file
32 (other comment)
the correct command for clear is clear
.
this is a documentation issue
33 (other comment)
nothing goes wrong here. This may be caused by the user uses an older jar file
34 (other comment)
nothing goes wrong here. Maybe due to the users uses an older jar file
35 (other comment)
nothing goes wrong here. Maybe due to the user uses an older jar file.
36 (other comment)
yes, you cannot add personalEvent with lower cases E. We design so.
37 (other comment)
improved
38 (other comment)
locate is not implemented properly
39 (other comment)
clear
is the correct usage
40 (other comment)
fixed
this input should throw an exception
41 (other comment)
solved
42 (other comment)
this cannot be reproduced, either there is an event labeled 1 or there isn't an event labeled 1.
43 (other comment)
Suppose the user did not enter 4 events. this is not a bug as it can not be reproduced
44 (other comment)
documentation issue
fixed
45 (other comment)
provide a screenshot
46 (other comment)
provide a screenshot
47 (other comment)
provide a screenshot
48 (other comment)
provide a screenshot
49 (other comment)
provide a screenshot
50 (other comment)
There are 2 options
other than repeat INDEX NUMBER_OF_WEEKS
, the user is also allowed to use repeat all NUMBER_OF_WEEKS
to repeat all classes in the list that happens in this week
the first option allows all types of events, the second option only repeats classes
51 (other comment)
Due to the time limit, this is given up
52 (other comment)
Due to the time limit, this is given up
53 (other comment)
Due to the time limit, this is given up
@weishuangtan
(5 comments)1 (commented on others PR)
Can consider refactoring to reduce arrowhead coding
2 (commented on others PR)
Day 0 is not allowed as well
3 (commented on others PR)
Day 0 is not allowed as well
4 (commented on others PR)
Already resolved in Issue #82, don't need to add as IndexOutOfBoundsException will already be thrown when loadCurrentTripFromFile() cannot access the index.
5 (commented on others PR)
Typo for "list".
6 (commented on own PR)
I removed it so that if it detects eg "buys" which contains "buy", it will print an error message and an example on how they can use the [buy] command, what do you all think?
7 (commented on own PR)
Added in cases for error handling, thanks!
8 (other comment)
"0 Days" can be changed to "Empty Itinerary or Expenses" and update UG documentation.
9 (other comment)
"edit trip" command to change the name of the trip, to be implemented in v2.1, stay tuned! 👍
10 (other comment)
Thank you for your feedback! We appreciate your suggestion and will consider adding it in the future.
11 (other comment)
Thank you for your suggestion! We will consider adding this feature in the future! 👍
12 (other comment)
Change to "END TIME should end after START TIME"
13 (other comment)
This is part of our values to be flexible, and to complement our user's experience. We appreciate your suggestion.
If you noticed, most planner or calendar applications also proceed with the same approach. Hence we don't think this is a bug.
Thank you! 😄
14 (other comment)
Thank you for your suggestion, we will add this into our v2.1 feature.
15 (other comment)
Thank you for your comment, it represents a percentage bar showing users what is their percentage of spending out of the budget they have keyed in. We hope this clarifies! We will try to make it clearer in Trippie v2.1.
16 (other comment)
Thank you for your suggestion, please do refer to Issue #96 for our comment. 👍
@shreytheshreyas
(5 comments)1 (commented on others PR)
Sam I think you got to make this private and make use of getters and setters, bcus i dont think it's good practice to make class members private.
2 (commented on others PR)
Sean why ah ? We making all the attributes in the other classes private anyway right
3 (commented on others PR)
Sean just one question over here ah, we will only able to accept one param over here issit? something like "select t/2". But will this block of code be able to accept a command like "deadline t/2 d/2020-10-18" where there are two params ?
4 (commented on others PR)
Dude over here we passing a string for the priority ryt, You want to change it to an enumeration??
5 (commented on others PR)
Riaz, just one doubt over here, for the priority are we using numbers, or are we gonna explicitly mention "High","Medium", Low", because in the user guide we inputted numbers for the priority.
6 (commented on own PR)
yeah i'll do that once we finalize the project name, just kept it as duke exceptions because that's the intial name we used to create the class
7 (commented on own PR)
Yes even i thought it would confusing because of the way the code is structured, but there's a reason i kept it like this, will explain it to you guys over a zoom session
8 (commented on own PR)
ok sure but in which is the case that a null pointer exception will be thrown, prof said there is no reason we should catch it in this sectoin ryt right ?
9 (other comment)
Guys tried to make the code over here look more modular using SLAP as sean suggested and implemented the commands to adhere to the user guide. lmk what u guys think
10 (other comment)
yeah dude, as for now we are using strings for the priorities ryt and I'm assuming the priorities we'll be assigning to the respective tasks will be numbers since that was how it was mentioned in the user guide. So as for now I'm just sorting the tasks by comparing their priority strings and it will arrange every task in ascending order.
11 (other comment)
tageed along with the sorting functionality
@PraveenElango
(4 comments)1 (commented on others PR)
Consider changing 'best-fit' to 'best fits'
2 (commented on others PR)
+ "\n\tDo remember though, you can calculate a variety of other effective values in the application too!",
3 (commented on others PR)
Do remember though, you can calculate a variety of other effective values in the application too!
4 (commented on others PR)
![](https://avatars1.githubusercontent.com/u/37036833?s=400&u=2c0e2ed51f01d354f32fb3efd9e51a56aa273e8f&v=4) | Praveen Elango | [Github](https://github.com/PraveenElango) | [Portfolio](team/praveenelango.md)
5 (commented on own PR)
Thank you for pointing out!
6 (commented on own PR)
Thank you for pointing out!
7 (commented on own PR)
Thank you for pointing out!
8 (commented on own PR)
Got it, thanks for pointing out Wira!
9 (commented on own PR)
I was not able to access them in the test files where I was trying to reference them. Changing from private to protected solved that problem.
10 (commented on own PR)
Oops, my bad! I'll use the pow function instead
11 (commented on own PR)
Sure, that sounds good.
12 (commented on own PR)
Got it, will rename accordingly!
13 (commented on own PR)
Right, I'll figure that out. Thanks Wira 😃
14 (commented on own PR)
Agreed, will change.
15 (commented on own PR)
Oh, but aren't we testing the getter functions inside the templates and not the components?
16 (commented on own PR)
Okay good point - I didn't consider that. I modified the declaration as per IntelliJ's suggestion because if I remember correctly, it flagged a warning (but not an error).
But like @hughjazzman pointed out, they will still work when we declare them as final
right?
17 (commented on own PR)
Right, will remove and push again. Thanks for pointing out!
18 (commented on own PR)
Sure, will remove it.
19 (commented on own PR)
Sure, will remove it.
20 (commented on own PR)
IntelliJ suggested it to me and I tried downloading it to experiment around, but I don't think it does anything particularly useful. I'll remove it now.
21 (commented on own PR)
Sure, will change it to SPACES.
22 (commented on own PR)
Sure, will remove it.
23 (commented on own PR)
Sure, will remove it.
24 (commented on own PR)
Sure, will remove it.
25 (commented on own PR)
My bad 😦
26 (commented on own PR)
Must have been by accident, I'll remove it now
27 (commented on own PR)
Okay
28 (commented on own PR)
Okay but it is already SetBooleanCommand.png
right?
29 (commented on own PR)
Sure, will do.
30 (commented on own PR)
Ah, sorry for the confusion. I changed it to SetBooleanCommand.png
already but didn't push it yet.
31 (commented on own PR)
Okay sure
32 (commented on own PR)
Oh, I was browsing through the CS2113T site today and came across this - https://nus-cs2113-ay2021s1.github.io/website/admin/tp-w10.html#4-make-the-code-reposense-compatible. It is mentioned under the RepoSense section that we can include code individually written that is not used in the final product by placing it in the unused folder.
33 (commented on own PR)
I didn't test with jar file yet but I did add tabs and spaces when the sentences were too long for those in the Boolean tutorial. I'll test in the jar file and get back to you.
34 (commented on own PR)
Changed.
35 (commented on own PR)
Okay, I have included it
36 (commented on own PR)
Sure, I have changed it 😃
37 (commented on own PR)
Okay, changed!
38 (commented on own PR)
Okay, changed.
39 (commented on own PR)
Okay, changed.
40 (other comment)
@hughjazzman Got it, thanks for the help!
@longngng
(4 comments)1 (commented on others PR)
Totally agree!
2 (commented on others PR)
Will it be a bug if the user inputs find [EMPTY_STRING] ?
3 (commented on others PR)
I thought javadoc doesn't have this extra new line at the end, but it passed the test so i guess okay hehe.
4 (commented on others PR)
Apart from this, everything looks fine
5 (commented on own PR)
Good suggestion!
6 (commented on own PR)
Sure, will add.
7 (commented on own PR)
This part I'm not sure. Could you explain how are we going to invoke the methods in this class?
8 (commented on own PR)
But the list() function needs the object as well, like listNotebooks_nsp(Notebook sampleNotebook), so I'm not sure how to code it. Also, should the List class handle input arguments like "nsp"? That doesn't seem follow the principle right?
9 (commented on own PR)
Sure!
10 (commented on own PR)
Sounds good
11 (commented on own PR)
Okay, will do
12 (commented on own PR)
I'm not sure. What do others think?
13 (commented on own PR)
That's true. Will fix it.
14 (commented on own PR)
Yep, I was looking for this 🙇
15 (commented on own PR)
Will update.
16 (other comment)
Looks good to me.
17 (other comment)
Good job! How about we implement only one help function for v1.0 first?
18 (other comment)
The changes look fine.
19 (other comment)
Close #17
20 (other comment)
I feel like we should highlight the commands only.
For example, in this pic, I think can change Timetable, task, deadline to another mark-up style, like italic.
Other than that, it looks good.
Sorry this was from Francene's commit haha.
21 (other comment)
Closes #218
@gua-guargia
(4 comments)1 (commented on others PR)
Perhaps can extract this part as an exception so that someone reading the code wouldn't get distracted by alternative paths taken when error conditions happen.
2 (commented on others PR)
Probably need to add another line of code to remove the module stored in the moduleList in the access class as well, the allModules variable seems like an instance of the moduleList stored in the access.
3 (commented on others PR)
Probably need to add another line of code to remove the chapter stored in the chapterList in the access class as well, the allChapter variable seems like an instance of the chapterList stored in the access.
4 (commented on others PR)
Perhaps can extract this part as an exception so that someone reading the code wouldn't get distracted by alternative paths taken when error conditions happen.
5 (commented on own PR)
Thank you, I have changed all the separated code into setIsModuleLevel().
6 (commented on own PR)
Thank you, I have changed the constant to all Uppercase and changed the case to relevant constant
7 (commented on own PR)
I have modified the method to return boolean instead of String because the execute method will need to print several messages for standard situation, therefore, I use boolean for convenience.
8 (commented on own PR)
Sorry, it is a bit hard to achieve for this method, because this print statement is part of the while loop, return the message or throw exception will terminate the loop. Do you have any suggestions?
9 (commented on own PR)
Thank you! Have changed it to Command
10 (other comment)
Have updated in the newest version of the user guide
11 (other comment)
Have updated in the newest version of the user guide
12 (other comment)
Have updated in the newest version of the user guide
@marcursor
(4 comments)1 (commented on others PR)
Maybe can use constants to prevent magic numbers
2 (commented on others PR)
Might want to change this comment split based on '
3 (commented on others PR)
Should these 2 exceptions be swapped
4 (commented on others PR)
extra blank line
5 (commented on own PR)
Ok thanks for the feedback!
6 (other comment)
Using \r in JUnit test only works for Windows. To make test platform independent try using StringWriter and PrintWriter.
maybe can try using System.lineSeparator() for line breaks?
7 (other comment)
Nice use of lineSeparator for cross-platform compatibility
8 (other comment)
すばらしです
9 (other comment)
Appropriate use of assert, good job
10 (other comment)
Closes #114
11 (other comment)
Resolved
12 (other comment)
If the user edited the text files this save command should overwrite them with the events currently saved in the running Scheduler right?
13 (other comment)
@matthewgani Yup, checkbox does not display on mac.
14 (other comment)
Will probably change the tick and cross to alternatives to avoid this issue.
15 (other comment)
Nice, this should prevent users from getting tripped up on different command formats.
16 (other comment)
Closes #174, fixes #179, #182, #183, #203, #209
17 (other comment)
Fixes #173
18 (other comment)
Alright, looks good, previous errors have been fixed and extra exceptions removed.
19 (other comment)
Looks like that should fix the issue, nicely done.
20 (other comment)
Adding Javadoc should make it easier to see what each method does, good job.
21 (other comment)
Logging should help to diagnose the application when running.
22 (other comment)
Y so many logging.txt
23 (other comment)
Good that you caught the potential issue with repeating unintended integers
24 (other comment)
Closes #270
@amalinasani
(4 comments)1 (commented on others PR)
Perhaps can add "streamlines information for easy viewing and management"?
2 (commented on others PR)
A little nit-picky but should it be 'read a book [x]', for continuity from "add -t" section?
3 (commented on others PR)
Again for continuity (in the case that the user follow the examples in UG), CG1111 instead?
4 (commented on others PR)
" » cap - Calculates your CAP"
after grade help message
@AliciaHo
(4 comments)1 (commented on others PR)
Shld we write no question found instead of question not found
2 (commented on others PR)
shld we add a 😦 in front?
3 (commented on others PR)
Shld it be you have gotten full marks.. instead?
4 (commented on others PR)
shld we add a 😦
5 (other comment)
Fixes #69
@yuqiaoluolong
(3 comments)1 (commented on others PR)
Good and completed assertion statements.
2 (commented on others PR)
Current commit LGTM.
3 (commented on others PR)
Is this aiming to fix the error I sent you?
4 (commented on own PR)
OK.
5 (commented on own PR)
Ok, I fixed them in v0.6
6 (commented on own PR)
Ok, I added the case where the activity level is high. I did not do so cause the paper only give suggestions for 4 activity levels.
7 (commented on own PR)
Ok, thanks for reminder.
8 (commented on own PR)
OK, I changed the corresponding methods.
9 (commented on own PR)
OK, I see.
10 (commented on own PR)
OK
11 (commented on own PR)
I deleted the changes and may create a new PR later for that.
12 (other comment)
The build tests are failing because of the dependency of the code on the Food class. Have you tested the code locally?
Possible workabouts:
- Consider moving changes to a branch that targets snowbanana12345's Food class.
- Otherwise, consider implementing a minimal Food class which we could also remove when merge conflicts arise later.
I copied and pasted the Food class into seedu.calculator package and added the JUnit test.
@kaijiel24
(3 comments)1 (commented on others PR)
I think you can add your picture here and link it.
2 (commented on others PR)
Is it possible to just link to docs/AboutUs.md
?
3 (commented on others PR)
Alright then let's go with your method.
4 (other comment)
Update #19
Added non-mode-specific printPrompt
to be used in command execution
5 (other comment)
#48 done
6 (other comment)
Approval granted.
7 (other comment)
Close #174
8 (other comment)
Will fail some flashcard test due to changes in dash line resulting in different output for test cases. Open issue #208
9 (other comment)
results in #208
10 (other comment)
fixed in #208
11 (other comment)
As the jar file should be run in a new empty folder, this should not be an issue for most users.
@michaeldinata
(3 comments)1 (commented on others PR)
Very nice example and explanation of incorrect commands here!
2 (commented on others PR)
I understand that you are trying to emphasise on the space for the 2nd one, but in pdf format I feel that it may not be very apparent. Maybe just keep one of them?
3 (commented on others PR)
Thanks for updating this part 😃
4 (commented on own PR)
The logger has been updated for all the classes that I could find it in. Thanks for pointing it out!
5 (commented on own PR)
Done! Thanks for the heads-up! 👍
6 (commented on own PR)
Yes, this constructor is needed as view command now takes in the optional parameter -v >WATCHLIST_INDEX>
, and an empty constructor is required to not assign any value to the watchlist_index in viewCommand
7 (commented on own PR)
Yes you are right, I will make amendments to that! 😃
8 (commented on own PR)
You're right. I missed that. Thanks for pointing it out!
@dorianfong98
(3 comments)1 (commented on others PR)
Good description.
2 (commented on others PR)
Perhaps it's time for a new ASCII name art? 😃
3 (commented on others PR)
nice catch
4 (commented on own PR)
Yep, just following the ToC for addressbook since their user proifle and value prop is both under product scope and only product scope is in ToC
5 (commented on own PR)
sounds good
6 (commented on own PR)
Yes because the main README is outside the directory of the tp folder hence it can't be accessed via gh pages, i've tried.
7 (commented on own PR)
apparently not
8 (commented on own PR)
ok
9 (commented on own PR)
done
10 (commented on own PR)
Changed, let me know if it's okay
11 (commented on own PR)
ohhh
12 (other comment)
LGTM
13 (other comment)
Update: completed JUnit Testing for BinaryTree
14 (other comment)
Agreed. This is a non-issue.
@nat-ho
(3 comments)1 (commented on others PR)
Nice catch!
2 (commented on others PR)
Isn't the list manager initialized before the load command is called in main?
3 (commented on others PR)
Ah okay, initialize is called again when an error has occurred during updating in the even the data was written halfway
4 (commented on own PR)
That's a good suggestion. I have updated the code to reflect the changes. Now the printing of quotes will be done with the TextUI class!
5 (commented on own PR)
Got it updated to the PR!
6 (other comment)
Tutorial testing
7 (other comment)
Looks good as a start!
8 (other comment)
Looks good!
9 (other comment)
LGTM!
10 (other comment)
LGTM!
11 (other comment)
LGTM
12 (other comment)
There was some conflicts with the quotesify logs. Resolved it and merged!
13 (other comment)
LGTM
14 (other comment)
LGTM!
15 (other comment)
LGTM!
16 (other comment)
LGTM! Thanks for adding the launch and shutdown 👍
17 (other comment)
LGTM
18 (other comment)
LGTM
19 (other comment)
LGTM
20 (other comment)
LGTM
21 (other comment)
LGTM
22 (other comment)
LGTM
23 (other comment)
LGTM
24 (other comment)
LGTM
25 (other comment)
LGTM
26 (other comment)
LGTM
27 (other comment)
LGTM
28 (other comment)
LGTM
29 (other comment)
LGTM
@n3wsoldier
(3 comments)1 (commented on others PR)
I think for command, private will be the better access modifiers, as there will not be any subclass to AddWorkspaceCommand.
2 (commented on others PR)
I think for command, private will be the better access modifiers, as there will not be any subclass to SearchCommand.
3 (commented on others PR)
This link looks nicer but would it be better to provide the link with your code contribution in the code panel.
4 (commented on own PR)
Yea I saw, but I was considering keeping my custom messages and logging.
I think I will take up your advice to keep things consistent.
5 (commented on own PR)
Thanks for the feedback.
6 (commented on own PR)
I understand the rationale with PARAMETER_NAME but I am consistent with the rest of our teammates,
7 (commented on own PR)
Oh my bad, I missed it.
8 (commented on own PR)
Thanks.
9 (commented on own PR)
I think its only checking for a single character, it would not make much difference. Thanks.
10 (commented on own PR)
Ok noted, I will make changes to it.
11 (other comment)
I understand your concerns regarding the conflict of the naming convention of AnimeList class and the array list object in the watchlist. I will take up your suggestion and rectify it to "AnimeData" to represent Animes from our offline data.
@syncode98
(3 comments)1 (commented on others PR)
Addresses the issue raised in the Pe Dry run.
2 (commented on others PR)
Adds the necessary exceptions.
3 (commented on others PR)
Delete these merge conflict resolution syntaxes.
4 (commented on own PR)
Noted
5 (commented on own PR)
Included explanation.
6 (other comment)
Completed @jialerk
7 (other comment)
Approved the merging of this pull request after looking through the code.
8 (other comment)
Successfully implemented the required features by @sugandha929
9 (other comment)
Used this issue to upload images.
@hui444
(3 comments)1 (commented on others PR)
May want to check if the number is negative or a letter in the individual method instead of using NumberFormatException, this may throw "Invalid value entered" instead of "Calories must be between 0 and 10000 (inclusive)!" if the value is too large but still a positive integer.
2 (commented on others PR)
Can check if its a letter here so the next line wont throw NumberFormatException
3 (commented on others PR)
Won't values like 1873872378291 be too large and throw NumberFormatException?
@prachi2023
(2 comments)1 (commented on others PR)
This line may not be necessary since you return in the next line. But other than that looks good to me
results.add (FILE_WRITE_UNSUCCESFUL_MESSAGE);
2 (commented on others PR)
Maybe can add a line about how it ensured that people were "liable/responsible" (I cant exactly remember the word Im looking for). But basically, the idea that everyone knows that these are their "duties"
3 (commented on own PR)
Alright, will change that before merging
4 (commented on own PR)
Thanks. Have changed it
5 (commented on own PR)
Instantiated by the parser function?
6 (commented on own PR)
Oh I added it bc otherwise, when I use the add command function, it asks for the user input for the content of the note. So when loading the files I dont want to ask for the user input, therefore check if a content file exists (aka are we loading the data) and accordingly see where to get the content from
7 (commented on own PR)
It creates an error
8 (commented on own PR)
Alright thanks will update
9 (commented on own PR)
I tried but Attribute.COLOUR_TEXT().toString() isn't a constant. So it kept giving an error
10 (commented on own PR)
Ah alright ok will fix that thanks!
11 (commented on own PR)
Yup Ive added a check for it
12 (commented on own PR)
Thanks for pointing that out. I thought it was used elsewhere as well but I realised its not so I changed it
13 (commented on own PR)
Nope I created it while setting pin for pinCommand then changed to togglePin and made sure it isn't being used anywhere else
14 (commented on own PR)
Its needed bc in the archive note command, the file gets deleted. So if there's no file instead of the actl message it'll return no file found
15 (other comment)
Can I close this, since we are using the add parser to add it?
16 (other comment)
#41
17 (other comment)
I havent been able to. im just going to close it
@WangZixin67
(2 comments)1 (commented on others PR)
I think just use the try part below is enough. Because when it equals "", it also throws NumberFormatException.
2 (commented on others PR)
The same when it is null
3 (commented on own PR)
Sorry, I commented out for testing some exceptions. Forgot to recover it.
4 (other comment)
Overall is good. Could we separate testParser into 5 parts? The method seems a little bit long.
5 (other comment)
Although I follow the step to enable assertion, I don't know why assertion is still not enabled.
6 (other comment)
fixed
7 (other comment)
fixed
8 (other comment)
fixed
9 (other comment)
fixed
10 (other comment)
Prof and admin are roles of members. We will specify it in the UG.
@brandontoh
(2 comments)1 (commented on others PR)
hmm isn't that his own functions and not the old Duke functions?
2 (commented on others PR)
Hmm I think the overview is meant to be overview of yourself instead of the program
3 (commented on own PR)
It would be best if you could add that as well
4 (commented on own PR)
Yea we will be moving the printing stuff the Ui.Printer class. For now, these are for testing
5 (commented on own PR)
hmm, I think you're right
6 (commented on own PR)
Erm we haven't insert the image number for each image, so i just put it "???" first, i'll replace it when all the images all finalised
7 (commented on own PR)
Ahh right, I didn't realise aldo did the delete part until I finish the clear part. I'll change it later
8 (commented on own PR)
Hmm true, that seems more consistent set colour portion also
9 (commented on own PR)
Oh yea, thanks for the suggestion
@chewyang
(2 comments)1 (commented on others PR)
Hi i think it would be better to merge the Activity class with the ActivityList class that i created, ie change the relevant Integer type in the activityList class to Activity class
2 (commented on others PR)
looks good!
3 (other comment)
The description is left justified. try adding more lines to the description and it will overflow properly.
@KennethEer
(2 comments)1 (commented on others PR)
I think the moduleCode should not be set as final for future extendibility, so in case if the user has already typed in the expected and actual time for a module, and after that the user realises the module code is wrong, the user can edit the module code if the module code is not final, but still retain the expected and actual time.
2 (commented on others PR)
should this be changed to checking both characters as week number can be 2 digits?
3 (commented on own PR)
The default Object.equals()
method takes in the object of Object type as the parameter and I keep this method signature to overwrite the default method.
4 (commented on own PR)
Yes, the function name is renamed to checkIfModuleExist.
5 (other comment)
Closes #37
6 (other comment)
Closed in #43 deleteMod function
7 (other comment)
Closed in #43 addMod function
8 (other comment)
Closed in #43 deleteExp function
9 (other comment)
Closed in #43 addExp function
@CFZeon
(2 comments)1 (commented on others PR)
Agreed, but I think that it would be better after all the functions are up after the first iteration.
2 (commented on others PR)
Could the logo formatting be done more coherently?
3 (commented on own PR)
will do
4 (other comment)
LGTM!
5 (other comment)
Looks good!
6 (other comment)
lgtm!
7 (other comment)
31st February input tested to work properly in diet and workout
8 (other comment)
lgtm!
9 (other comment)
lgtm!
@e0406981
(2 comments)1 (commented on others PR)
i think the flow of the 1st addmod diagram is great and easy to understand
2 (commented on others PR)
2nd addmod diagram is clean and easy to understand as well, as compared to diagrams in 4.5 & 4.6, which tend to be a little bit more cluttered
3 (other comment)
checks failed as reminder fields are empty. MH will update
@yuen-sihao
(2 comments)1 (commented on others PR)
Is the chinese because of some settings? 😃
2 (commented on others PR)
Based on what I see from the coding standard, the first word after the variable name should be capitalized. For example in this case the "user" word. This applies for param, return, throws, etc.
Also, every line of the JavaDocs should end with a period. Think you missed out some, might want to double check.
3 (commented on own PR)
Yeah, didn't notice it. Should have used information.equals("") since information is String. Thanks for spotting 😃
@chocomango
(2 comments)1 (commented on others PR)
There will be another class that runs the code so that we can lessen the code in Project class
2 (commented on others PR)
Agreed, we can remove the static keyword to allow each instances of the class to have their own variables. Just to better prepare for our v2.
3 (commented on own PR)
Updated this issue.
4 (commented on own PR)
Sure. I did a simple update on parser to facilitate this.
5 (commented on own PR)
This is just a temporary change before @homingjun make a permanent change to parser.
6 (commented on own PR)
ArrayList should be totally removed from parser.
7 (other comment)
good to merge
8 (other comment)
Good job, looks good for now. We can further break the individual command actions into classes and inherit from the parentCommand.
E.g. addMemberCommand inherit from MemberCommand
9 (other comment)
Yup sounds good, we should standardise. I also suggest we can have data package to hold all the data classes like Project, Sprint, Task.
10 (other comment)
simply to put all data classes in one package, but this is all in development, we can change when we integrate later
11 (other comment)
I don't understand what you mean by all classes in a file. Maybe we can discuss it during our meeting tonight.
12 (other comment)
Sprint object to store tasks allocated to sprint from project backlog, with start and end date.
13 (other comment)
Looks good. We can further standardise where we catch exceptions after we revamp our v1.0.
14 (other comment)
I have merged the try-catch block and removed the duplicate function from the classes.
Have you tried enabling the assertions? Link
I enabled it from settings, and also ran someone's test code which show the thing is enabled. But then like if I run "project /view" from the start it still exits with error even though got assert, then I can only fix it with try-catch block. Also if I replace the "no project" errors from try-catch to assertion then the error message prints but the task is still added. I'm not sure if this is normal behavior. Maybe assertions cannot replace try-catch?
The error was because there is no check whether there is a project before executing ViewProjectCommand. The error has already been fixed by @gmit22 in his latest PR.
15 (other comment)
Looks good. The bug seems to be fixed.
16 (other comment)
I have merged his PR, so you can do a pull on the repo and see if the error persist.
17 (other comment)
Apart from updating all the existing SprintCommands, I have changed the ProjectManager to use Hashtable to facilitate the deletion feature of projects in the future.
18 (other comment)
I have changed the command to allocate task from /assign to /allocate so that I can match the /deallocate command
19 (other comment)
Will update the user guide soon
20 (other comment)
Removing of sprint is deemed inefficient as it will produce gaps in the Sprint Manager. The user will be able to fulfil the same purpose by reallocating/removing the task and editing the Sprint goal if necessary.
@rashien3
(2 comments)1 (commented on others PR)
should the line:
Topic [TOPIC_NUMBER]
must already exist in the topic list.
be added to be consistent with the rest of the UG?
2 (commented on others PR)
Should you mention that Ui is reponsible for handling input as well?
3 (commented on own PR)
Resolved merge conflict
4 (commented on own PR)
split does not initialise message[1], so using the original method throws a IndexOutOfBoundsException while checking the if condition. The new method checks if there is only one word in fullcommand
5 (commented on own PR)
Instead, we can trim the message so it will parse as if the user did not add extra spaces.
6 (commented on own PR)
working as intended
7 (other comment)
deadline is added in the same line
8 (other comment)
changed commands to accept capital letters as well
9 (other comment)
changed the message printed to be "There are no ______ in your list!" when there are no objects in the list
10 (other comment)
changed error message to "Please enter a subject.", and fixed thrown exceptions
@jerroldlam
(2 comments)1 (commented on others PR)
Can remove this commented out line
2 (commented on others PR)
can remove this
3 (other comment)
Hashmap has been updating.
4 (other comment)
Resolved with addition of academic planner.
5 (other comment)
Resolved with addition of CAP Calculator app.
6 (other comment)
Update test for addModuleToUser
7 (other comment)
Fixed for other inputs with similar situation as well
8 (other comment)
Completed
9 (other comment)
Example when i manually edit the files
10 (other comment)
Implemented with view by semester function in academic calendar
11 (other comment)
Implemented with set SU in CAP Calculator
12 (other comment)
Implemented with storage classes, which supporting saving and loading.
13 (other comment)
Testing coverage completed satisfactorily
14 (other comment)
Edit message to show target MC cannot be 0 or less
15 (other comment)
This can happen if your academic calendar has modules and grades and if those modules do not have a cumulative GPA of 5 in the first place.
For eg, if in the first semester I scored a GPA of 4.8, even if i score CAP 5 for the remaining 7 semesters, my CAP will never be 5.0.
Please advise on the academic plan you have entered prior to this CAP Calculator set target command,
Thanks @LiewWS
16 (other comment)
Checking of pre-requisites and co-requisites is a feature slated for the future. PlanNUS is still in its early stages and we will be increasing its functionality as the development cycle goes.
17 (other comment)
As stated in the user guide, users should just enter acadplan. Refer to the command summary of our user guide for more info.
18 (other comment)
Thank you for your kind suggestion. This will be taken into consideration for future iterations
19 (other comment)
This will be looked into in the future to see how we can best increase the data integrity of the database we currently have.
20 (other comment)
duplicated with #215
21 (other comment)
Folder containing logs will be implemented in future iterations
22 (other comment)
Update messages to show which parameter was wrong
23 (other comment)
duplicated with #218
24 (other comment)
duplicated with #186
25 (other comment)
Hi @LiewWS thank you very much for this report! We will look into it! Appreciate the follow up!
26 (other comment)
Closed to make a more specific issue
27 (other comment)
This feature will be coming in future iterations. Thank you for your suggestions.
28 (other comment)
Details section added
29 (other comment)
LGTM
30 (other comment)
LGTM
31 (other comment)
LGTM
32 (other comment)
LGTM
33 (other comment)
LGTM
34 (other comment)
LGTM
35 (other comment)
LGTM
36 (other comment)
LGTM
37 (other comment)
LGTM
38 (other comment)
LGTM
39 (other comment)
LGTM
40 (other comment)
LGTM
41 (other comment)
LGTM
42 (other comment)
LGTM
43 (other comment)
LGTM
44 (other comment)
LGTM
45 (other comment)
LGTM
46 (other comment)
LGTM
47 (other comment)
LGTM
48 (other comment)
See #285
49 (other comment)
LGTM
50 (other comment)
LGTM
51 (other comment)
LGTM
52 (other comment)
LGTM
53 (other comment)
LGTM
54 (other comment)
LGTM
55 (other comment)
LGTM
@matthewgani
(2 comments)1 (commented on others PR)
Agreed! Would make things more readable/understandable
2 (commented on others PR)
nice use of assertion here!
3 (other comment)
I believe this is specific enough, it clearly says that the issue is with the time.
4 (other comment)
weird bug because this seems to be the calendar function but he calls the add function??
5 (other comment)
It was clarified with the founder of the bug that this was not a bug and our app is working as intended at https://github.com/Ang-Cheng-Jun/ped/issues/9.
6 (other comment)
@marcursor Could you check if this occurs when following our UG steps and downloading v2.0 into a new folder?
7 (other comment)
This was clarified with the founder of the bug that it was created when testing another group.
8 (other comment)
This seems to be for another group as the founder of the bug has said his 2nd bug was for another group. Our Ug also does not look like this.
9 (other comment)
My changes to the help.txt file also does not seem to be reflected in my PRs
10 (other comment)
When cmd is not full screen seems to have an extra line with list zoom too
11 (other comment)
Maybe you can close those issues regarding the tick and cross?
12 (other comment)
Good job setting up the eventlogger class
13 (other comment)
Not done
14 (other comment)
The founder of the bug entered the command in wrongly according to the user guide. We have explained it to him at https://github.com/Ang-Cheng-Jun/ped/issues/8
15 (other comment)
Fixes #122
16 (other comment)
Fixed in #250
17 (other comment)
Good job fixing the format of the note and warning boxes, it seems to be reflected properly on the user guide now at https://ay2021s1-cs2113t-t12-4.github.io/tp/UserGuide.html
18 (other comment)
Great job allowing events with date but no time to be shown!
19 (other comment)
Agreed with Qing ning above. The exception message will help the user more.
20 (other comment)
Thanks for removing the 10 logging files
21 (other comment)
Cannot replicate and placed a warning in UG in case.
22 (other comment)
Good job editing the DG
23 (other comment)
Good job fixing the diagrams
24 (other comment)
Fixed in #302
@max-wunan
(2 comments)1 (commented on others PR)
I like how you style the code into a simple and straight-forward manner, as well as the JavaDoc, with brief description and everything labelled clearly.
2 (commented on others PR)
You may consider adding zones that enable the users to view what are the buildings inside each zone or check the zone of a certain building/faculty/hostel. For now all data are within the Kent Ridge Campus, you may add in more information about the Botanic Campus (The Law School) and all that. You can also include other buildings/facilities like uhc/YIH.
3 (other comment)
added logo pictures and cover page for both user guide and developer guide
4 (other comment)
added repeat to command summary
@GuoAi
(1 comments)1 (commented on others PR)
I guess maybe can create a variable "EXCEPTION_INVALID_DONE_ARGUMENT" or anything similar in Messages to avoid "magic literals"? But like this should also be fine!
2 (commented on own PR)
Ya. Maybe we can have this command as "list tasks sorted" while keeping the original "list" command as unchanged?
3 (commented on own PR)
Thanks for pointing out! Will fix it.
4 (commented on own PR)
Sorry I did not get it. Which variable do you mean?
5 (commented on own PR)
Sure! Yes it makes sense
6 (commented on own PR)
Okay thanks!
7 (commented on own PR)
Oops I did not notice it. I just copied from ACTUAL.TXT to EXPECTED.TXT. I think I might have accidentally changed it when resolving merge conflicts. I will change it back.
8 (commented on own PR)
Sure I think assigning values in constructor makes more sense!
9 (commented on own PR)
Ah yes I think Zeyu did it in her PR.
10 (other comment)
Format category INDEX c/CATEGORY (e.g. category 1 c/academics)
11 (other comment)
Or maybe we can just have one big constructor ListCommand, i.e. ListCommand(int priority, String category, boolean isSorted) and pass these arguments in CommandCreator?
12 (other comment)
LGTM!
13 (other comment)
All commands related to expenses are added already. Ready to merge subject to review.
14 (other comment)
LGTM!
15 (other comment)
LGTM!
16 (other comment)
LGTM!
17 (other comment)
LGTM after passing the tests!
@Cao-Zeyu
(1 comments)1 (commented on others PR)
Noted. We will work on this later.
2 (commented on own PR)
Oh I didn't see this comment just now before I merge PR. I will change it later.
3 (commented on own PR)
oh! I will fix this typo. It should be "use" since I think "project" doesn't sound like a lesson.
4 (commented on own PR)
Thanks for the suggestion! I've refactored it.
5 (commented on own PR)
Sure!
6 (other comment)
Add the function of listing by category
Update User Guide
Update complete help message for listing and deleting, and update EXPECTED.txt
7 (other comment)
Yes LGTM
@zongxian-ctrl
(1 comments)1 (commented on others PR)
Minor typo errror "it isis".
2 (other comment)
Fixes #14
@t170815518
(1 comments)1 (commented on others PR)
Maybe we can separate the events and deadlines in toString
of TaskList
2 (other comment)
I merge this
3 (other comment)
A possible implementation can be to let the user add the holiday period e.g. 2020-9-30
first, and the display function will only display tasks without lesson if the queried date falls between the holiday period.
4 (other comment)
Reminder: we can edit things only when it is necessary (e.g. tedious to delete and create a new one)
5 (other comment)
I'll take a look, to see if changing time formatter will change the issue.
6 (other comment)
Some Github templates don't support TOC, hence I use the screenshot of part of TOC instead.
7 (other comment)
I have replaced the link with our tp's release link
8 (other comment)
This issue is fixed by updating UG
9 (other comment)
@t170815518 again i will remove this implementation but check if your implementation have the same issue
After constraining the module code's format, it should be solved.
10 (other comment)
This is mentioned in UG
@wangqinNick
(1 comments)1 (commented on others PR)
I think it should contain two module list, (or maps)
One module map is for storing the loaded module map from the NUSMODS
The other one is for storing the modules added by user.
2 (commented on own PR)
ok
3 (commented on own PR)
done
4 (commented on own PR)
done
5 (commented on own PR)
I deleted the exception throw. it is handled inside the func already
6 (other comment)
Seems like there's a lot of changes made... Can we get a more detailed description?
For Command part, I only added the editModuleCommand
For ModuleManager part, I only added a function to change the module code of the target module.
For Parser part, I only added a regex to match for editModuleCommand, and a prepareEditModuleCommand() to deal with user inputs
In the end, I added some Junit tests since it is the only way to test.
PS: I edited your Module class and added a module description attribute
7 (other comment)
Looks quite good. If it passes the checks, then can merge.
8 (other comment)
simple changes, can merge
I found the edit -m CS1231 CS3224 the CS3224 cannot be recognised.
9 (other comment)
Just saw it. I will look into the issue tonight.
10 (other comment)
It seems the parser cannot parse the "del -m CS1231" command
@k-walter
(1 comments)1 (commented on others PR)
Good flow! Perhaps storage should be accessible only by ItemList, since storage should only be changed when ItemList changes.
2 (other comment)
This was traditionally parsed in Command. If you want to parse in Parser, I can return an Integer but will require some refactoring.
3 (other comment)
clear -s1
is expected cli behaviour. Will update UG on standard cli practices.
4 (other comment)
Fixed in #299
@zsk612
(1 comments)1 (commented on others PR)
Good Refactor of strings
2 (commented on own PR)
not sure whether commLib will be more convenient or not if we only have "diet", "workout", "profile" and "exit" commands which don't really execute many things. Maybe a simple switch case would be clearer?
3 (other comment)
Reviewed code, good job.
4 (other comment)
Fixed list command in DietSession.
5 (other comment)
Fixed add command in DietSession.
6 (other comment)
Fixed delete command in DietSession.
7 (other comment)
Fixed list command in DietManager.
8 (other comment)
Fixed create command in DietManager.
9 (other comment)
Fixed exit command in main
10 (other comment)
Fixed exit command in DietSession.
11 (other comment)
Fix start workout session.
12 (other comment)
Fix end workout session
13 (other comment)
Fix remove workout session
14 (other comment)
Fix save diet session
15 (other comment)
Fix add workout moves
16 (other comment)
Fix list workout session
17 (other comment)
Fix delete dietSession
18 (other comment)
Add javadoc and loggings for diet
update help for diet
add diet storage and main menu in DG
19 (other comment)
hahahah
20 (other comment)
Merged with review
@EdmundEXE
(1 comments)1 (commented on others PR)
there should be a @params here i think
@BenardoTang
(1 comments)1 (commented on others PR)
Not sure but I think need to include the 'done' command also for test case
2 (other comment)
wow excellent out of this world! thanks for the help!
3 (other comment)
thanks boss
4 (other comment)
Can u add the add review feature in UG/DG? not sure how it works. thanks
5 (other comment)
On it boss
6 (other comment)
Thanks bro
7 (other comment)
should i include examples for one input commands (help,list,bye)?
the help list is already very long so not sure if i should cut down the unnecessary examples
8 (other comment)
For episode and season command, can we include a catch to make sure correct number of episodes input?
For now, i can move the episode number to 100 even tho i set the show to have only 10 episodes (same for season)
9 (other comment)
Still many many many formatting issues but looks ok to me for the most part.
feel free to change whatever errors u notice god bless
10 (other comment)
Nice work! The issue/bug also happens for season too, could i trouble u to implement the same for season?
11 (other comment)
Nice!
12 (other comment)
I think its okay to leave the time left today to be negative if the user overshot his watch time. I included a line inside (Your watch time deficit will be highlighted below 😦 ) To let the user know why there is a negative number.
13 (other comment)
Good catch - we should either include in dg or remove the function. I think it's not needed actually
14 (other comment)
Guys i think we can finish up the UG/DG soon, then i'll add the necessary page breaks. god bless
15 (other comment)
nice work sir
16 (other comment)
Sure! i changed it abit and it looks like this (not 100% sure if correct):
i'll try to merge the pr, hopefully you can access it after that
17 (other comment)
We won't be implementing this
18 (other comment)
Thanks for the heads-up @joelczk and thanks J-God @judowha
19 (other comment)
im done ah im not gonna make any more changes. just gonna wait till we release
@Bryanbeh1998
(1 comments)1 (commented on others PR)
Just assume they know. Dont set default uh
2 (other comment)
Very solid!
3 (other comment)
On it
4 (other comment)
I added into the printing list already
5 (other comment)
Done
6 (other comment)
This is fixed
@JohnNub
(1 comments)1 (commented on others PR)
Not sure why this is commented out
2 (commented on own PR)
Great suggestion. I pushed a new update to implement the change you suggested.
3 (other comment)
e a /n CS2113T Tutorial /d next fri /t 2pm
Hi john! thank you
I will like to clarify, for the above example, is there any library that i have to add to recognize "next Friday" or its just if else statements?
Look at Event.java in https://github.com/AY2021S1-CS2113T-F14-1/tp/pull/52/files it was implemented in the last PR.
4 (other comment)
Having multiple, shorter alternatives to the long command form is part of the Shorthand Command productivity & efficiency feature set and is considered intentional.
Closed, not a bug.
5 (other comment)
This is done to allow users to read the output instead of being teleported several pages down not knowing where they last were.
We will accept this bug and increase the speed to make it significantly faster.
@hungvo0603
(1 comments)1 (commented on others PR)
Hi Yuxuan should line 25 be "String[] splitInput = word[1].split("d\");" instead of "d\\"? We only use one backslash symbol.
2 (other comment)
Fixes #123
3 (other comment)
Fixed #143
4 (other comment)
Fixes #269
5 (other comment)
Fixes #254
6 (other comment)
Add help discription for remind and filter words command
@Reinbowl
(1 comments)1 (commented on others PR)
You can check this in the parse method to avoid surrounding your code with this large try catch.
2 (other comment)
Since goal extends event, goal command and goal class requires changes as well. In short a goal cant be repeated.
3 (other comment)
Do not merge yet. Once reviewed to delete old classes not used by repeat anymore.
4 (other comment)
I'll update Ui prints methods for this commands, from printing the divider line twice.
5 (other comment)
Could change the tick and crosses to "Y" and "N" or maybe simple print "done" and "not done". Resolve by updating toString method of events.
6 (other comment)
The issue here is when viewing a repeat of an event that is not repeated. The command tries to retrieve repeatlist and print it but repeatlist is null. Easily resolve to print "event does not repeat" when repeatlist is null.
7 (other comment)
Same as issue #207
8 (other comment)
Same as issue #213
9 (other comment)
To check whether listing repeat of events is properly functioning. For some reason appear to be getting a null repeatlist.
10 (other comment)
Good job easing the task of logging for the team!
11 (other comment)
Updated user guide to reflect that users can only have one goal at a time.
12 (other comment)
Good job! This helps user know the correct command arguments to execute when they enter it wrongly.
@lunzard
(1 comments)1 (commented on others PR)
Good work. I think information
as a parameter of this method is redundant as it can be accessed across the Class DeleteCommand
though
2 (commented on own PR)
I think the question mark is caused by my default language of the system (CHINESE), i will look for ways to fix that
3 (commented on own PR)
thanks for the suggestion!
4 (other comment)
HI I have specified in the User Guide that invalid format will be regarded as plain text (not LocalDate
format). So I reject this.
5 (other comment)
With previous problem fixed, I cannot get the same error in the terminal. I think this problem is solved since both my pagenum and booknum can handle format errors
6 (other comment)
reject non-senses.
@xieyaoyue
(1 comments)1 (commented on others PR)
Since validSummaryMonth, summaryYear and summary throw no exception, you can move them outside the try block.
2 (other comment)
Fixes #18, #10, #8
3 (other comment)
Fixes #74 #73
4 (other comment)
As a user ready to start using the app, I can purge all current data, so that I can get rid of sample/experimental data I used for exploring the app.
5 (other comment)
still missing clear -s and clear -r
6 (other comment)
@elizabethcwt
(1 comments)1 (commented on others PR)
Perhaps javadocs wouldn't be necessary for self-explanatory methods like this?
2 (other comment)
Already implemented in PR to fix #103
3 (other comment)
Fixed by #120
4 (other comment)
Fixed by pull request #210
5 (other comment)
Re-open issue when applicable for v2.1
@jialerk
(1 comments)1 (commented on others PR)
yea sry i changed it in my current version alr
2 (other comment)
closes #48
closes #28
3 (other comment)
Added user guide details
@snowbanana12345
(0 comments)1 (other comment)
#84
2 (other comment)
implement save load for Personal information , the class can be easily modified to include more fields
3 (other comment)
implemented method to convert data base output to String
@acyang97
(0 comments)1 (other comment)
I decided that Lesson will be a sub class of Task. Lesson objects are special in the sense that they have a frequency. For now, I only considered the case where the Lessons are held weekly. Biweekly Lessons might be harder to implement, will think through again. Adding the Lesson class and enabling it to be added to the ScheduleManager and ModuleManager was the main bulk of what I tried to implement.
I still haven't changed the Deadline and Event classes to suit our TP code, which means as of now, Deadline and Event objects cannot be added to the ScheduleManager and ModuleManager yet. I also haven't added Junit tests and update the UserGuide.
2 (other comment)
At the bottom of ModuleManager, should put all sorts of task under it - Lesson, Deadlines and Events.
At the bottom of ScheduleManager, should just put in the Deadlines - should put down deadlines today and future as well. Will think of how to implement this and update later
3 (other comment)
@t170815518 probably will just remove this and stick to your add module method to add a module.
4 (other comment)
Should we enforce users to add a module to the module manager first before allowing them to add a task?
5 (other comment)
@t170815518 I'm just going to remove my add module feature but take a look at yours to see if there is this issue too
6 (other comment)
Will just remove this implementation
7 (other comment)
@t170815518 again i will remove this implementation but check if your implementation have the same issue
8 (other comment)
I removed this feature cause I realised when clashes are allowed into the timetable, the storage function will be quite weird too when loading the tasks when the app is starting
9 (other comment)
resolved by adding another line to inform user to enter a valid time
10 (other comment)
tested out again and didnt face this issue though...
11 (other comment)
changed already
12 (other comment)
added a new exception to handle invalid date format dates
13 (other comment)
added the bye feature at the bottom
14 (other comment)
settled the minor documentation error
15 (other comment)
dk what he talking about the 25 mins, but handled the error of an invalid LocalTime.
16 (other comment)
solved and also handled case of empty description for event and lesson as well
17 (other comment)
Handled the error by handling incorrect dates
18 (other comment)
updated user guide to make it clearer
19 (other comment)
Handled by removing this feature and just not allow user to add tasks when there are clashes
20 (other comment)
will need to make UG clearer that it will only be added in dates when there is school, and no, code does not assume the lesson run every week, it has been already been made sure in the code that lessons will not be added during those days.
21 (other comment)
tested out and seems like its already been handled though
22 (other comment)
ensured that module codes for adding tasks are all caps, but have to make sure from add module side that this is enforced too
23 (other comment)
Not very viable for our app
24 (other comment)
chose not to implement in the end
25 (other comment)
deleted in the end
@teachyourselfcoding
(0 comments)1 (other comment)
fixed
2 (other comment)
Cant actually implement different message depending on whether its deleted. I will write a message asking user to check display again to see if it got deleted
@alwaysnacy
(0 comments)1 (other comment)
resolved
@yh-ng
(0 comments)1 (other comment)
"help" now gives brief description of commands". "help [command]" gives detailed description of the specific command
@tikimonarch
(0 comments)1 (commented on own PR)
Understandable but the reason for all is because all command is used so there would be like 11 import statements if i am specific? what do you think?
2 (commented on own PR)
I feel like this is super generic already because all the input are all "commands" so any typos should be safe to consider as a wrong format of command. "Something went wrong" is too vague of a message i feel? wdyt
3 (commented on own PR)
Hmm runtime error and such rite,,,, orite i will just change it to Something went wrong cos i think we will be catching most of the exceptions for commands.
4 (other comment)
Solved in merge pull request #166 .
5 (other comment)
Solved in merge pull request #166
6 (other comment)
Solved in merge pull request #166
7 (other comment)
Partially solved in merge pull request #166 . @HengFuYuen can probably add in a specific exception in ui
8 (other comment)
Solved in merge pull request #166
9 (other comment)
Solved in merge pull request #166
10 (other comment)
Solved in merge pull request #166
11 (other comment)
Solved in merge pull request #166
12 (other comment)
Solved in merge pull request #166
13 (other comment)
Solved in merge pull request #166 . 1cm technically allowed for the sake of the system. One should exercise caution when typing the height for a logical amount
14 (other comment)
Solved in merge pull request #166
15 (other comment)
Solved in merge pull request #166
16 (other comment)
Solved in merge pull request #166 . We don't discriminate numbers 😃
17 (other comment)
Solved in merge pull request #166
18 (other comment)
Solved in merge pull request #166
19 (other comment)
Solved in merge pull request #166
@scjx123
(0 comments)1 (other comment)
Add read courselist feature
2 (other comment)
Associate this issue with milestone 1
label : priority high + task
author : Rafael & Chu han
Description: recommend to split this into 2 different smaller issue as per UG. eg.
Ability to focus on todo
Ability to focus on deadline
3 (other comment)
please specify the issue.
4 (other comment)
note that if you added duplicated task, it will not be added to the list.
5 (other comment)
Here you go, i redownloaded it
1 2 is NOT referring to the task name itself. if you look at our UG, you would see that it is actually an indices. meaning, if u type list, and you see
eat food
deadline meeting (by: Dec 12 2020 19:40)
u can proceed to use this command to add the task 1 AND 2 into both module CS2113 and CS2113T
6 (other comment)
This is intended. Fixed with updating UG.
7 (other comment)
Closed with UG Diagram explanation.
8 (other comment)
Closed with UG Diagram explanation.
9 (other comment)
Closed with UG Diagram explanation.
10 (other comment)
Documentation Bug has been corrected.
11 (other comment)
Explained in UG update.
12 (other comment)
Closed with UG Diagram explanation.
13 (other comment)
Closed with UG Diagram explanation.
14 (other comment)
Closed with UG Diagram explanation.
15 (other comment)
I have amended the UG explaining this. @adinata15 this diagram only serve as building user's intuition to use our app, it is not meant to be a ppt overview of 'dynamic' list. For that matter, the user can in fact read the focus
section to see all the dynamic list we have, in which i have specified this in the UG.
@haroic1997
(0 comments)1 (other comment)
The user is able to key in addModuleCommand without the title, thus causing this bug to occur
2 (other comment)
Cleared
@johanesrafael
(0 comments)1 (other comment)
needs to resolve conflict . Otherwise, it can not be merged.
2 (other comment)
Going to merge it...
3 (other comment)
Splitted into smaller issues
4 (other comment)
please check with gradle again
checkstyleTest and checkstyleMain
5 (other comment)
We found a bug in Delete Action. delete action can not delete when focus action is also executed. No errors, however. Just nothing is changed
6 (other comment)
branch -v1.0 has issue. it can't run main(). shows errors traced back to showText() in cli
7 (other comment)
Will implement on-off reminder function!
8 (other comment)
Chuhan and I agreed to remove this function since it needs some development to finalize the expected behavior and it was not peer-reviewed last week.
@chuhann
(0 comments)1 (other comment)
As in the error msg to be more specific ?
2 (other comment)
I guess its okay since both delete and done has the same standardized error msg
@TanLeeWei
(0 comments)1 (other comment)
Would you like to do Junit test for the other 2 Appliances as well?
Yes i will do it
2 (other comment)
The Developer guide looks more consistent now after making the changes. Overall good job!
@fanceso
(0 comments)1 (other comment)
nice done
2 (other comment)
Well done on resolving the given issues. Please also note that These two type of class will be classified under "Logic" package during our next version.
3 (other comment)
Looks good, content do not have Grammar or Spelling errors and images for user guide is matched with what is stated in the instruction as well.
4 (other comment)
Well done on updating the content for Developer guide, changing Arguments to Argument will be much clearer now.
5 (other comment)
Diagrams updated with PR #222 which solves #152
@tammykoh
(0 comments)1 (other comment)
I'm going to close this issue cause I think the message is clear enough and it is consistent with the rest of the program.
@adinata15
(0 comments)1 (other comment)
Viewtrash feature removed
2 (other comment)
Function not implemented anymore.
3 (other comment)
Hmm, I cannot reproduce. It works fine now. Previously, if the tasks are already completed and we complete again it comes out that error but now no more. Can just close this issue then 👍🏻
4 (other comment)
Hmm, actually no harm keeping it there. Just that previously I thought it might be redundant.
5 (other comment)
Removed {}, now only explains []
as parameter, ()
as explanation, ...
as continuous list
@TomLBZ
(0 comments)1 (other comment)
needs to resolve conflict . Otherwise, it can not be merged.
My "Resolve conflicts" button is still greyed out...
2 (other comment)
this is done alr
3 (other comment)
No longer need a selection region. Use Focus instead. Closing this with my PR.
4 (other comment)
Back function is no longer needed. Just use focus. Closing this with my PR.
5 (other comment)
I intend to do it like:
edit [-type] [index] [field=newvalue] ...
for example:
edit -task 1 description=blahblahblah date=blabhblh
edit -mod 5 MC=4
Pre-requisites: the target item must be selected. If it is not selected, it will be automatically selected.
Related: Need to implement "unselect" and "untake". Planning to use base actions.
6 (other comment)
Also, the edit should be able to change tasks for a module:
edit -mod 5 updateTask
will set the task of module 5 to be tasks currently in the selected list.
If nothing is selected, this will clear the task for module 5.
7 (other comment)
Once Completed, the module can no longer be Taken or Untaken or Completed or Graded or Edited again, but it can still be Selected and be Found.
8 (other comment)
Once Completed, the module ceases to count in the current MC, but still counts in overall CAP calculation and overall MC.
9 (other comment)
Once completed, module should be immediately untaken.
10 (other comment)
Only taken modules can be completed
11 (other comment)
Hi.
It is expected behavior. Because you do not yet have tasks with indixes 1 and 2.
Try this:
todo myTask1
deadline myDeadline 1 /by 10 10 2020
list
you will be able to see the task list with indices.
Then you will be able to use “add” command to add tasks with indices to the modules.
Best Regards
Bozhao
Sent from Mail>https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10
From: Aldo Maximillan>mailto:notifications@github.com>
Sent: Friday, October 30, 2020 4:46 PM
To: AY2021S1-CS2113-T13-2/tp>mailto:tp@noreply.github.com>
Cc: Subscribed>mailto:subscribed@noreply.github.com>
Subject: [AY2021S1-CS2113-T13-2/tp] Unable to add to the list (#219)
[Screenshot 2020-10-30 at 4 14 18 PM]>https://user-images.githubusercontent.com/60168552/97678773-531e9e00-1acf-11eb-93f1-4ff576f28751.png>
Hi, I am trying to use your application, I followed how to use the add command, but I cannot use it
―
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub>https://github.com/AY2021S1-CS2113-T13-2/tp/issues/219>, or unsubscribe>https://github.com/notifications/unsubscribe-auth/AGNEEMKOUGEPD7WZ3JZHKMLSNJ4P5ANCNFSM4TEWVYAA>.
12 (other comment)
Hi, I am trying to use your application, I followed how to use the add command, but I cannot use it
Should you need any further clarification please do not hesitate to keep commenting on this thread.
13 (other comment)
Hi, I am trying to use your application, I followed how to use the add command, but I cannot use it
In short, you need to create tasks before trying to add tasks to modules. The program works as expected in showing "NOT FOUND" when no specified task can be found, and showing "index out of range" when your specified index is indeed out of range. Those are expected error handling behaviors.
14 (other comment)
I used the exact same command as the example, still cannot add
Hi. Would you mid providing a screenshot?
Firstly, you must indeed have tasks before you can try to add tasks to modules, otherwise of course the program need to show an error message.
Try this:
todo testTask1
todo testTask2
todo testTask3
list
Then you should be able to see that you have some tasks in the task list.
then, you can add the specified tasks to specified modules:
add -task 1 2 -mod EE2026
Should you need further clarifications, please do not hesitate to respond to this thread. Thanks!
15 (other comment)
I think it is a little bit counter-intuitive because the user do not have any specific instruction in the UG or in the help page on how to add new tasks. Your add command makes it more confusing for the user to add the tasks.
Thank you for your valuable feedback. Please report this unintuitive documentation on CATcher as a Documentation Bug. We will improve the UG in the future based on your advice. (this shows that we have not written the UG truly from a user prospective, and we will consider adding a short "usage example" session before the feature list in the next version of UG) Thanks!
16 (other comment)
Here you go, i redownloaded it
This is working perfectly fine as expected... because for your newly downloaded jar there is ZERO TASK created, and the index 1 and 2 are SURELY out of range.
You can try reading my previous reply.
For your convenience I am going to paste it here:
''''
Firstly, you must indeed have tasks before you can try to add tasks to modules, otherwise of course the program need to show an error message.
Try this:
todo testTask1
todo testTask2
todo testTask3
list
Then you should be able to see that you have some tasks in the task list.
then, you can add the specified tasks to specified modules:
add -task 1 2 -mod EE2026
Should you need further clarifications, please do not hesitate to respond to this thread. Thanks!
'''
17 (other comment)
Here you go, i redownloaded it
In other words, this is a High Severity Documentation Bug (as Prof says), because our documentation is unclear. Please report this, thanks
18 (other comment)
1 2 is NOT referring to the task name itself. if you look at our UG, you would see that it is actually an indices. meaning, if u type list, and you see
- eat food
- deadline meeting (by: Dec 12 2020 19:40)
u can proceed to use this command to add the task 1 AND 2 into both module CS2113 and CS2113T
Yes you are right. that's why its showing "Index out of range" instaed of "[NOT FOUND]".
19 (other comment)
Your UG is too hard to understand. Maybe you should make it clearly
Yes indeed, our UG is not clear. Please report it as a High Severity Documentation Bug.
20 (other comment)
Btw, i have ask prof. He ask me to do on fallback team already. So i cant create an issue on it.
It is OK, we can improve the UG to make it clearer based on your valuable feedback in this issue. Thanks! Your comments really made us understand more from the user's perspective!
21 (other comment)
fixed.
will be closed with the next pr soon.
22 (other comment)
Fixed.
Will close this in the next PR.
23 (other comment)
Please fill up the HelpText after I merge this PR. DO NOT EDIT HELPTEXT BEFORE MERGING THIS PR.
24 (other comment)
Untake with no parameters is NOT A WRONG SYNTAX. Thus no Exceptions should be thrown.
The original behaviour is correct but the text message can be improved. I will improve it in this PR.
25 (other comment)
Fixed. Will close this when merging PR.
26 (other comment)
Fixed.
Will close this in the next PR.
27 (other comment)
This issue is made up by the nus-pe-bot.
This dude provided an incomplete screenshot and magically found a bug. Well, well, well.
Will close this in the next PR.
28 (other comment)
Re-implemented CAP.
Original CAP calculator was too buggy, I just made a new one that has more homogeneous syntax and better formatting.
Will close this in next Command.
29 (other comment)
I mean PR.
30 (other comment)
Re-implemented Goal.
Original one was too buggy, made a new one with better syntax and better formatting, and better calculations.
Will close in next PR.
31 (other comment)
This bug is made up. Reminder always exists, the difference is it being on or off.
The last version did not print the message clearly, that caused the confusion.
Fixed.
Will close in next PR.
32 (other comment)
Fixed with the new version of Goal.
Will close in the next PR.
33 (other comment)
YOU DO REALIZE THAT 2020 IS EARLER THAN 2021 RIGHT?
BRO??????
LIST DATE ASC WORKS AS EXPECTED.
UI ALSO WORKS AS EXPECTED BECAUSE IT IS DESIGNED TO KEEP YOUR LAST ERROR MESSAGE SO THAT YOU CAN REFER TO IT WHEN TYPING THE NEXT COMMAND.
Anyways since the user finds the UI unintuitive I will change the UI. But the list function works as intended and need not change.
34 (other comment)
Updated.
Will close in next PR.
35 (other comment)
Works now.
Will close in next PR.
36 (other comment)
This is expected behaviour. Closing now.
37 (other comment)
Fixed. Will close in the next PR.
38 (other comment)
Fixed.
Will close in the next PR.
39 (other comment)
I cannot reproduce it.
40 (other comment)
Fixed.
Will close in the next PR.
41 (other comment)
Fixed.
Will close in next PR.
42 (other comment)
Fixed. Will close soon.
43 (other comment)
Fixed. Will close soon.
44 (other comment)
Fixed. Closing soon.
45 (other comment)
I cannot reproduce it. Can you provide more information?
46 (other comment)
No, this is incorrect. The program only maintains 2 data lists, list of tasks and list of ALL modules.
It also maintains a dynamic list, the "target" list (linked by reference to the 2 data lists).
"focus" on other apparent lists (selected, taken, completed, etc.) just applies filters to the 2 data lists and collect the results to the "target" list.
All operations are directly operating the "target" list, with their effects propogating back to the data lists.
47 (other comment)
Fixed. Closing soon
48 (other comment)
Fixed. Will close soon.
49 (other comment)
Fixed. Closing soon.
50 (other comment)
Does it cause additional errors or confusion if we keep it there?
51 (other comment)
Can anyone reproduce this? If so please tell me more about it. It looks like a serious bug but I have been unable to reproduce it for the last day.
52 (other comment)
Done. Will close soon.
53 (other comment)
Done.
Will close soon.
54 (other comment)
Added set-up documentation in UG.
Will close soon.
55 (other comment)
I am closing this as nobody seems to be able to reproduce it. If anyone can reproduce it please re-open this issue and tell me about it.
56 (other comment)
This is working correctly. Where is the bug?
57 (other comment)
I feel that "index out of range" is exactly what the problem is...
How to make it more specific? Do you have any suggestions?
58 (other comment)
OK! Thanks for testing out the program!
@zhixiangteoh
(0 comments)1 (commented on own PR)
Oh this one the idea is to make a stack of questions in jumbled order - that's why first shuffle then make a stack out of it. So it's like pre-determined order, but to the user it will be "random". Implementation-wise, it's just popping off the topmost question from the "jumbled" stack. Idk if this answers your question?
2 (commented on own PR)
^ sounds good! I think in checkAttempt() method excluding {Punc} probably already catches "", if not then we can just add that to the regex to ignore. Great idea!
3 (commented on own PR)
Oh yea definitely. I wrote this before I finalised the runGameLoop. Thanks for the great catch!
4 (commented on own PR)
^ Just checked, can confirm {Punct} regex includes "". Will add this to FAQ portion of UG!
5 (commented on own PR)
I misunderstood this question! I have since fixed the issue. Thanks!
6 (other comment)
Ignore failed text tests here; I modified Main to test Deck Commands.
7 (other comment)
A more elaborate 'game mode' will be focused on in v2, although minimal functionality for viewing flash cards will be implemented in v1.
8 (other comment)
Discussed as a team and decided not to throw exceptions within individual Command classes; instead all exception handling will be encapsulated in Normal and Deck Parser.
9 (other comment)
Suspect tests failed due to "\n" in Windows
10 (other comment)
Push to v2.0.
11 (other comment)
Game Mode:
Q: "What if my flashcard answer contains a single word 'done' or 'exit'?"
A: Escape the command using \exit or "exit".
Edit: Credit @LiewWS
12 (other comment)
Push to v2.1
13 (other comment)
Thanks for your input! Anywhere section is for generic commands that have same effect regardless of user's location within application. help
commands are unique and distinct across different modes, which explains the decision to place it within each mode, rather than within the "Anywhere" section.
14 (other comment)
https://ay2021s1-cs2113-t14-2.github.io/tp/UserGuide.html#guide-format
15 (other comment)
Push to v3.0 in prioritising a more complete and tested v2.1.
16 (other comment)
Just some comments on your DG!
- For the return line, remember to put it at the end of the bar.
- For this SD, maybe instead of overlapping the condition and the bar, maybe position the condition to the left? Also if you feel that it is too cluttered, can consider the reference frames.
overall very clean, I like it, remember to remove the names from the subheadings when you are done, as well as any other sections not used.
Thanks @JustinnT for the comments and feedback! We have changed according to your suggestions. Feel free to take a brief look if/whenever you have the time again!
@Feudalord
(0 comments)1 (other comment)
Done
2 (other comment)
Settled. Seperated exception handling and more detailed error message.
3 (other comment)
fixed
4 (other comment)
fixed
5 (other comment)
fixed
@trolommonm
(0 comments)1 (other comment)
#14
2 (other comment)
#14
3 (other comment)
#31
4 (other comment)
#48
@wangwaynesg
(0 comments)1 (commented on own PR)
Thanks for notifying! Will make changes accordingly!
2 (other comment)
@LiewWS Please help me take a look if my PPP overview is okay now and merge if its okay!
3 (other comment)
@alwaysnacy Please help me to review the changes for getTagString()
method in Deck
Class and merge if its okay.
4 (other comment)
Wait don't merge yet, I found another bug
5 (other comment)
Fixes #192
@TanJunHong
(0 comments)1 (other comment)
Looks good to merge!
2 (other comment)
All checks passed, LGTM
3 (other comment)
Checks failed. Minor edits required.
4 (other comment)
Not related
5 (other comment)
Not related
6 (other comment)
Not related
7 (other comment)
Not related
8 (other comment)
Not related
9 (other comment)
Reupload jar file that works
10 (other comment)
Long time no see Herman.
Thanks for the bug report, and sorry for the inconvenience,
Reuploaded fixed jar file.
If possible, please test the new jar file, and create another issue if it does not work.
Thank you!
11 (other comment)
Reuploaded fix jar file.
Please let me know if there are still issues.
12 (other comment)
Reuploaded fixed jar file.
Please let me know if there are any more issues.
Thank you.
13 (other comment)
Closed with #73
14 (other comment)
Fixed by #80
15 (other comment)
Fixed.
@yokemin
(0 comments)1 (other comment)
completed with #16
2 (other comment)
LGTM.
3 (other comment)
close #35
4 (other comment)
close #84, close #83, close #82, close #74, close #73, close #72, close #71
5 (other comment)
Close with #97
6 (other comment)
Closed with #97
7 (other comment)
Closed with #97
8 (other comment)
Closed with #97
9 (other comment)
Closed with #97
10 (other comment)
Closed with #97
11 (other comment)
Closed with #97
@Louis-Feng
(0 comments)1 (other comment)
update
@yellow-fellow
(0 comments)1 (other comment)
Tester did not read through UG and DG properly.
2 (other comment)
The user did not input according to UG.
3 (other comment)
Capitalization does not affect the input.
4 (other comment)
The issue is dependant on 'ADD' command, not 'COMPARE' command.
5 (other comment)
Updated.
6 (other comment)
Updated.
7 (other comment)
Updated.
8 (other comment)
Updated.
9 (other comment)
Updated UG.
10 (other comment)
Updated UG.
11 (other comment)
Updated COMPARE command UX
12 (other comment)
Updated COMPARE command UX
@JunxianAng
(0 comments)1 (other comment)
close #36
2 (other comment)
close #36
@ychong032
(0 comments)1 (other comment)
Very good!
@dmbclub
(0 comments)1 (commented on own PR)
It is trivial but i think the user may change the messages.
@judowha
(0 comments)1 (other comment)
good job
2 (other comment)
Just to explain the new changes for edit commands :
getRawEpisodesForSeasons() used instead of getEpisodesForSeasons() -> this one checks array using season-1 so it'll lead to bounds errors
- If numSeason increases:
- set a new array for episodes and init the new seasons with 1 episode
- if numSeasons decreases:
- replace episodes with smaller sized array and delete the episodes in the later seasons
- initially episodes=[10,12] for 2 seasons, when resized to 1, episodes=[10]
Understand! But we need to ensure that users give a valid input. e.g. they change the number of seasons to 0. If we assume the user input is perfect, then it will work well.
3 (other comment)
a search function has been implemented
4 (other comment)
done already
5 (other comment)
I think its okay to leave the time left today to be negative if the user overshot his watch time. I included a line inside (Your watch time deficit will be highlighted below 😦 ) To let the user know why there is a negative number.
emmmmm, that makes sense. Then we just leave it. Thanks, Benardo!
6 (other comment)
The user input two whitespaces between "season" and "fri"
7 (other comment)
Guys i think we can finish up the UG/DG soon, then i'll add the necessary page breaks. god bless
god bless
8 (other comment)
Can someone help me change the diagram format, I dont know why my intellij can not open the class diagrams
9 (other comment)
Benardo thank you so much!!!! B God!!
@JiawenLyu
(0 comments)1 (other comment)
Good to merge.
2 (other comment)
Good to merge.
3 (other comment)
Looks good.
4 (other comment)
Looks good.
@Zhu-Ze-Yu
(0 comments)1 (commented on own PR)
you mean the Storage storage?
2 (other comment)
Fixes #31
Fixes #32
3 (other comment)
Fixes #51
Fixes #52
4 (other comment)
Fixes #43
5 (other comment)
Fixes #42
6 (other comment)
Save edited chapter name and module name
Combine GoChapterCommand and GoModuleCommand
Combine BackChapterCommand and BackModuleCommand
7 (other comment)
Fixes #74
@Zhangyilin0203
(0 comments)1 (other comment)
looks good
2 (other comment)
looks good to merge
3 (other comment)
looks good
@homingjun
(0 comments)1 (commented on own PR)
Ok that makes sense
2 (commented on own PR)
Ok I've fixed the inconsistencies.
3 (commented on own PR)
Ok I've fixed the inconsistencies.
4 (commented on own PR)
Ok I've fixed the inconsistencies.
5 (other comment)
The code looks good to merge.
6 (other comment)
There's some conflicting files that needs to be fixed.
7 (other comment)
Looks good to merge
8 (other comment)
Looks good to merge.
9 (other comment)
i think so, since it does not affect the functionality of the program
10 (other comment)
Should we add like positive test cases also? Like those that successfully return the correct command classes if the parsing is successful.
yea I think it is ok to show successful cases as well
11 (other comment)
logs/scrum.log.lck
can be ignored, can you add an entry./logs/*.lck?
in.gitignore
before we merge?
alright i've added the necessary .gitignore
changes
12 (other comment)
Accidental merge conflicts
13 (other comment)
The constraints have been clearly listed out, and an example has been given. Which we believe is sufficient and clear enough.
@Khenus
(0 comments)1 (other comment)
The most fail-safe method is to create the map with the actual index of each module inside the full module list after loading. This causes an efficiency of o(n) but allows for the most robust map creation as the index in the map will always correspond to the index in the array list.
2 (other comment)
Thank you for the suggestion, we will look into this feature.
3 (other comment)
Thank you for the suggestion @Jingming517. We designed PlanNUS as a platform that provides its user with all the information needed to make the best decision. Due to this, we decided not to implement a limit for users when it comes to suggesting which modules they should SU as more information is often better in this situation. Nonetheless, we appreciate the suggestion and will look into it for future iterations of PlanNUS.
@harryleecp
(0 comments)1 (other comment)
jar file link has been amended
@slightlyharp
(0 comments)1 (other comment)
LGTM
2 (other comment)
LGTM
3 (other comment)
Repeated issue as #189
4 (other comment)
Can't see the error message tested with same input worked fun
@yujinyang1998
(0 comments)1 (commented on own PR)
oh yeah I forgot to do this function
2 (commented on own PR)
will do
3 (commented on own PR)
good call
4 (commented on own PR)
good call
5 (commented on own PR)
great idea
6 (commented on own PR)
@zsk612 @CFZeon
7 (commented on own PR)
will do
8 (commented on own PR)
Good idea
9 (commented on own PR)
will do
10 (commented on own PR)
Great catch
11 (commented on own PR)
My calls are all static tho, so printer has to be static
12 (commented on own PR)
Oh I didnt see that, thanks
13 (commented on own PR)
great catch!
14 (commented on own PR)
damn I missed alot of stuff lol
15 (other comment)
do a gradle build test on ur own system before you do pr
16 (other comment)
Looks good
17 (other comment)
Lgtm
@Darticune
(0 comments)1 (commented on own PR)
@neojiaern can be used in conjunction with my computeNewDeadline functions for revision implementation
2 (commented on own PR)
@neojiaern simplified comparing of date to: if dueBy is before or equals to todays date. Function can be used to reference for revision in card version.
3 (commented on own PR)
I cannot, because ui.showToUser enforces newline after printing string. I will use format string in the next iteration.
4 (commented on own PR)
I cannot, because ui.showToUser enforces newline after printing string. I will use format string in the next iteration.
5 (commented on own PR)
I cannot, because ui.showToUser enforces newline after printing string. I will use format string in the next iteration.
6 (other comment)
Default dates are different as the tester rated the chapters during creation. Rating of Chapters during creation shifts default dates according to the choice of rating.
7 (other comment)
Unable to duplicate bug.
In code the code under ExcludeCommand, if the module name given is invalid, Storage will throw a FileNotFoundException, which will be caught by the function shown below and the error message will be prompted, leading to the result above.
@sixletters
(0 comments)1 (commented on own PR)
Wrongly put diagram at wrong place, Changed already
2 (other comment)
has been resolved
3 (other comment)
this has been resolved
@TYS0n1
(0 comments)1 (other comment)
Dropped functionality
2 (other comment)
Merged
3 (other comment)
Merged
4 (other comment)
Failed text-ui-test, fix later merges
5 (other comment)
Need to explain "current time" and "lesson now" indicators in UG
6 (other comment)
Could you take a look at this xing rong?
7 (other comment)
UG for planner mode
8 (other comment)
Either add a warning in UG or change input code format?
9 (other comment)
Add warning in UG to follow the format.
10 (other comment)
Already working as intended of moving code to the top of screen. User prob has a large monitor screen so not enough text input to completely clear screen. ZH opinions?
11 (other comment)
I dont think screenshots are possible for these
12 (other comment)
trim?
13 (other comment)
Add warning in UG to read the command format before the features.
show monday views monday as a module declaration not a day declaration hence the error.
help is not a valid module in NUS so it errors.
Add warning in UG about appropriate MODULE names. BOLD and HIGHLIGHT so users can see
14 (other comment)
Add to UG limitations to the app?
15 (other comment)
same as issue #167
16 (other comment)
same as #159
17 (other comment)
Index error
18 (other comment)
same as another issue
19 (other comment)
Change wording of Quick Start to "You should see something similar to this Zoomaster logo indicating that you have successfully started your Zoomaster program."
20 (other comment)
Do you guys want to sort?
21 (other comment)
As per UG "The chaining of commands only performs on one module which is {MODULE}."
Add bold comment around ONE MODULE to highlight to users
22 (other comment)
same error
23 (other comment)
same error
24 (other comment)
same error
25 (other comment)
make UG more reader friendly
26 (other comment)
done by zhanhao
27 (other comment)
done by zhanhao
28 (other comment)
done by zhanhao
29 (other comment)
no screenshots
30 (other comment)
done by zhanhao
@tengkianen
(0 comments)1 (other comment)
Naming error resulting in failing Gradle checks
2 (other comment)
UI updated by other teammates
3 (other comment)
mock Trippie files caused conflicts with Junit tests
@oasisbeatle
(0 comments)1 (commented on own PR)
Should I remove the previously created LoadComponentTest class and split it into the respective component test subclasses?
2 (commented on own PR)
Yes, that's a good idea
3 (commented on own PR)
Noted, thanks!
4 (commented on own PR)
Yeah it looked redundant to me as well, will make the edits after we append the code.
5 (commented on own PR)
Noted!
6 (commented on own PR)
Updated it to cover the current implementation
7 (commented on own PR)
I'm not sure about this bit. Maybe we could remove it later.
8 (commented on own PR)
My point here is that if we did choose a linked list structure then we would have no templates so we just add the components directly to the linked list. Of course, we could block users from adding certain components by checking the components present in the linked list. For some reason, I feel like a linked list interpretation would have worked. Any specific reason why it wouldn't be able to simulate a circuit system?
9 (commented on own PR)
Strange, it seems like my fork still has this even though its been updated
10 (other comment)
Please let me know how if the way I've done LoadComponentTest so far makes sense, if it does I will extend it to cover all components
11 (other comment)
LGTM!
edit: After merge conflicts have been resolved
12 (other comment)
LBGTM! (Looks blissfully good to merge)
13 (other comment)
LGTM!
14 (other comment)
Need a review on the latest version
15 (other comment)
Update
@sevenseasofbri to do CalculateBooleanCommandTest
@oasisbeatle to do AddBooleanCommandTest
@hughjazzman to do SetBooleanCommandTest
@Promethees
(0 comments)1 (other comment)
Hi Rachel, thank you for your recommendation. I would like to clarify that in our project, the user is registered once at the beginning of every session. When the user starts creating an essay or a poem, it would be recorded as the essay or the poem written by a certain user. Hence, I think it's better for listing the name of the User as a Writing's attribute (in this case as its author)
2 (other comment)
Oh, there should be one, thank you Rachel for pointing out!
3 (other comment)
You need to type in the "type" word to decide the type of the essay (poem/ essay)
4 (other comment)
I think it's just to help the user get rid of using the tags, which lead to lengthy commands
5 (other comment)
This might be because the tester downloaded the obsolete version of the product.
6 (other comment)
user needs to type "end" on the new line to indicate the ending of the writing session, I mentioned it in the UG.
@jusufnathanael
(0 comments)1 (other comment)
Updated already
2 (other comment)
Yeah I think so.
@lhydl
(0 comments)1 (commented on own PR)
I declare outside because it is used in more than one methods.
2 (commented on own PR)
I think it is better to implement exception handling inside the respective methods. But I believe this method works for now to prevent the app from crashing first due to some weird inputs.
3 (commented on own PR)
Is there a better alternative? I used the above method as using "\u2713" and "\u2718" violates the Gradle style check.
4 (commented on own PR)
Yeah, can.
5 (other comment)
List week number, modules, expected workload and actual workload in a table.
Change the welcome screen to show a graphic of ModTracker.
6 (other comment)
Looks good to merge.
7 (other comment)
The word "valid" is defined in the preceding "notes" sub-section under the "features" section.
8 (other comment)
Looks good to merge.
@xuche123
(0 comments)1 (other comment)
Currently 3 types of sorting implemented which are:
Sort by location
Sort by time
Sort by description
2 (other comment)
Fixes #51
3 (other comment)
Issue fixed with editCommand rework.
4 (other comment)
Issue fixed with editCommand revamp
5 (other comment)
issue fixed with editCommand revamp.
6 (other comment)
issue fixed with editcommand revamp
7 (other comment)
issue fixed with editCommand revamp
8 (other comment)
issue closed with editCommand revamp
9 (other comment)
With the new implementation, fields can be left blank to represent that they are to remain unchanged.
10 (other comment)
11 (other comment)
With the new implementation, fields can be left as blank to represent that they are to remain unchanged.
12 (other comment)
With the new implementation, fields can be left as blank to represent that they are to remain unchanged.
13 (other comment)
Fixed. Function will check if event exist before asking for parameters.
14 (other comment)
Fixed. Function will check if event exist before asking for parameters.
15 (other comment)
#160
16 (other comment)
#160
@gohsonghan98
(0 comments)1 (other comment)
I think you may also consider saving and loading user configuration as txt file in your storage class.
2 (other comment)
Already implemented
@xingrong123
(0 comments)1 (other comment)
This is actually not a bug . The level of indentation is intentional but I think the user guide was not clear about what it means. I will update the UG.
2 (other comment)
perhaps be a bit more broader and specify potential causes of why Zoommaster was not able to add the slot to the timetable?
I think I will do this instead.
Another way to address this problem is to use keywords in the command is to use keywords but
3 (other comment)
There is a simple fix to this. The previous method used split(" ")
to split the words by one space. Instead I should have used split("\\s+")
. This will combine all white spaces as a delimiter.
4 (other comment)
i think can use an image or emoji on the UG that attracts the readers attention so that they read the constraints.
@ninggggx99
(0 comments)1 (commented on own PR)
It will not run for every command. I would prefer not to switch it out because there's a try catch
2 (commented on own PR)
Yes, thank you
3 (commented on own PR)
removed in the new version:)
4 (other comment)
Your dateException is failing the test. Maybe try to fix the expected output?
5 (other comment)
Excellent!
6 (other comment)
nicely done! can consider adding in comments next time 😃
7 (other comment)
Well done! 😃
8 (other comment)
Error in the ug where Save events command is written as 'events'
9 (other comment)
same as #215
10 (other comment)
good job on the logging, probably can consider gitignore the logging txt ?
11 (other comment)
PR #245 has fixed this issue by replacing ; with '
12 (other comment)
Fixed with PR #228
13 (other comment)
Fixed with PR #245
View command has been implemented
14 (other comment)
Error is caused by comparing time when it is null for events without time
15 (other comment)
Issue closed as calendar is implemented in the way of a normal 'timetable' hence events without time will not be shown. Reminder command will show the events with/without time.
16 (other comment)
Save command has been implemented by @Colin386
17 (other comment)
View command has been implemented #245
18 (other comment)
View command has been implemented in #245
19 (other comment)
Due to time constraint, we have considered this to be part of our future implementation.
20 (other comment)
View command has been implemented in #245
21 (other comment)
We decide to work on this in future implementation. However, our check command still works under the condition that the check range filled in by user is the coincide with event start time
22 (other comment)
The list command is working as intended. The suggestion will be taken into consideration for future implementation
23 (other comment)
The suggestion will be taken into consideration for future implementation
24 (other comment)
Our scheduler also take into consideration that some users might want to have coinciding events in the event that the events happening do not require their presence/attention. Hence, we do allow coinciding events for the users. The suggestion will be taken into consideration for future implementation.
25 (other comment)
junit is well done. Can include the issue created to close it. Perhaps, the exception error message is what we should follow. Eg: DateException
26 (other comment)
Fixed with PR #286
27 (other comment)
Fixed with PR #291
28 (other comment)
Good job! I think it fixes the add command 👍
@Jingming517
(0 comments)1 (other comment)
looks good
2 (other comment)
Looks ok.
3 (other comment)
I'll change the expected.txt after deciding the format of timeline.
4 (other comment)
I have fixed this bug in another issue
5 (other comment)
I've changed the explanations in UG
6 (other comment)
Solved this error in another issue
@johan9se
(0 comments)1 (commented on own PR)
Oh yes! Thanks for that reminder, I've changed it accordingly!
2 (commented on own PR)
But isn't Ui being passed into the execute method of all Command classes?
3 (other comment)
Closed by pull request #118
@killingbear999
(0 comments)1 (other comment)
rounding error
2 (other comment)
it is already in UG
3 (other comment)
rounding error
4 (other comment)
Phrasing of the UG
5 (other comment)
every 4 input spending into the list
6 (other comment)
fix #190
7 (other comment)
formatting
8 (other comment)
solved
9 (other comment)
no. 2 fixes already
@AmeliaTYR
(0 comments)1 (other comment)
closing duplicate issue
2 (other comment)
closing duplicate issue
3 (other comment)
Excess print out removed
4 (other comment)
Update bunny explanation to justify why duplicates are allowed for bunny list
5 (other comment)
Closing duplicate issue
6 (other comment)
Too unspecific. Spam issue closed
7 (other comment)
but like if there isn't any other accepted input than the word type then no need mebbe?
(also is there a way to cancel writing or does the user have to finish writing to exit this part of the app??)
8 (other comment)
ooo okie as long as the UG explains it
@yeyutong811
(0 comments)1 (other comment)
Ok!
2 (other comment)
Achieved in Branch hr ver0.1
3 (other comment)
JUnit
4 (other comment)
close # 22
5 (other comment)
Fixed the changeInfo bug here, but did not change the help message
6 (other comment)
I can't reproduce this error.
@vanessa-kang
(0 comments)1 (other comment)
still missing capcalc testing instructions
@Varsha3006
(0 comments)1 (other comment)
so that I will not forget or miss the event.
2 (other comment)
so that I can manage the schedule
3 (other comment)
so that I prevent myself from doing repetitive things
4 (other comment)
so that I can get information on events quickly
5 (other comment)
So that i will be reminded of the number of dats left
6 (other comment)
Fixed it!
7 (other comment)
Fixed
@jlifah
(0 comments)1 (other comment)
hello
2 (other comment)
looks
3 (other comment)
overall well done just that there is minor coding style errors
i feel very attacked 😦
4 (other comment)
dk why the commit for addSet not showing here but its here: https://github.com/AY2021S1-CS2113T-T09-4/tp/commit/6d3bcb6d912b28042a904fd78c4f5b31fbfcfbdf
5 (other comment)
to do: list for user profile
6 (other comment)
Accepting numbers as name, just cannot be empty
7 (other comment)
accounted for now
8 (other comment)
hello Karthig merge this already haha
9 (other comment)
unable to create error
@pinfang
(0 comments)1 (commented on own PR)
since the xxx.execute() method throws an exception, summaryYear.excecute() should be in the try block to catch exception if there is any
2 (other comment)
fix #173
3 (other comment)
if the month inputted is incorrect, summary and draw will still execute, need to fix
4 (other comment)
you will need to remove the spendingListCategorizer in the add command to display in spending item in chronological order
@jiaaaqi
(0 comments)1 (other comment)
its an error in user guide that is corrected now
2 (other comment)
problem solved by including the text file data into the code
3 (other comment)
4 (other comment)
error in user guide
5 (other comment)
removed the data files requirements
6 (other comment)
error in the user guide which is since corrected
@LIU-YiFeng-1
(0 comments)1 (other comment)
Looks good to merge.
2 (other comment)
Fix printEventsCommand and checkstyles Closes#36
3 (other comment)
Fix printEventsCommand and checkstyles Closes#36
4 (other comment)
Closes #38
5 (other comment)
already fixed. please ignore this issue.
6 (other comment)
Same issue, already fixed in PR #233.
7 (other comment)
Only available modules in NUS are allowed to be added! We will make it more clear in the UG. Thanks!
8 (other comment)
Thanks for pointing out! The same issue appeared and already fixed in PR #233.
9 (other comment)
Thanks for pointing out. Already fixed in PR #231
10 (other comment)
Just a suggestion maybe, add an indicator to show that there is additional information available.
11 (other comment)
Fixed in PR #231
12 (other comment)
Thanks for pointing out! Already fixed in PR #233
13 (other comment)
Thanks for pointing out! Already fixed in PR #231
14 (other comment)
Thanks for the feedback. We would like the user to enter any deadline (being something done in the past or something to be done in the future). We have added a due_date checker and if the deadline has already passed, it will prompt the user with the message as such "The deadline has already passed! Automatically marked as done!" and the deadline will be marked as done automatically! Thanks once again!
15 (other comment)
Thanks for the feedback. We would like the user to enter any deadline (being something done in the past or something to be done in the future). We have added a due_date checker and if the deadline has already passed, it will prompt the user with the message as such "The deadline has already passed! Automatically marked as done!" and the deadline will be marked as done automatically! Thanks once again!
16 (other comment)
Closed by PR #240
17 (other comment)
Thanks for pointing out! We have added the expected output in the UG! See PR #277
@e0426051
(0 comments)1 (commented on own PR)
ok I removed the file.
Is the scrumptious package name ok though
2 (commented on own PR)
ok. I merge? Or someone merge after checking or sth?
3 (commented on own PR)
I tried running bye and the program outputs 'bye' and exits. Is there another message it is supposed to print?
4 (commented on own PR)
My implementation currently only checks the title so I think this part's good
5 (commented on own PR)
Fixed.
6 (commented on own PR)
I have tested it works on my side, I believe it is functional
7 (commented on own PR)
This is to check February input for leap years, to allow them to enter 29 Feb for those years.
8 (commented on own PR)
Will look into this and implement if possible.
9 (commented on own PR)
Implemented.
10 (other comment)
good
11 (other comment)
sounds ok imo
12 (other comment)
Labels added and getTask() has been implemented for all applicable functions
13 (other comment)
This PR is deprecated. Task function will use Gunit's implementation.
14 (other comment)
Looks ok. I can just copy paste my part in after merging
15 (other comment)
Looks good
16 (other comment)
Looks good.
17 (other comment)
I have merged the try-catch block and removed the duplicate function from the classes.
Have you tried enabling the assertions? Link
I enabled it from settings, and also ran someone's test code which show the thing is enabled. But then like if I run "project /view" from the start it still exits with error even though got assert, then I can only fix it with try-catch block. Also if I replace the "no project" errors from try-catch to assertion then the error message prints but the task is still added. I'm not sure if this is normal behavior. Maybe assertions cannot replace try-catch?
18 (other comment)
I have merged the try-catch block and removed the duplicate function from the classes.
Have you tried enabling the assertions? Link
I enabled it from settings, and also ran someone's test code which show the thing is enabled. But then like if I run "project /view" from the start it still exits with error even though got assert, then I can only fix it with try-catch block. Also if I replace the "no project" errors from try-catch to assertion then the error message prints but the task is still added. I'm not sure if this is normal behavior. Maybe assertions cannot replace try-catch?
The error was because there is no check whether there is a project before executing ViewProjectCommand. The error has already been fixed by @gmit22 in his latest PR.
Just checked again, the code is working as expected now.
You are talking about the Unit Test assertions is it? Those assertions are different from the normal assertions. Normal assertions are placed in the code using the
assert
keyword, therefore the link I have provided only works for normal assertions. Anyway both have different purpose, so yeah.
I think the problem is I did not pull Gunit's latest code. Now everything looks good.
I made more changes regarding some commands without dashes, so maybe can review one more time before merge.
19 (other comment)
The basic functionalities are essentially complete(+added removal of corresponding retrospective if a sprint is deleted)
The operations for saving and parsing the sprint retrospective classes are missing in
Project
class. Without them, the data will always be lost after the program exits.
Thanks for the suggestion.
I have tried to implement the saving of the list into the project class, but now it will cause nullpointerexception when launching scrumptious with the presence of data.json. Any idea what issue this might be? I feel that my tojson and fromjson is very similar if not identical to the ones used in the sprint classes.
Edit: Gradle fail due to failed test classes as a result of nullpointerexception
20 (other comment)
Should we just notify the user about this in the UG?
21 (other comment)
Perhaps remind the users in UG about this, since 32th October etc. are caught.
22 (other comment)
Addition of the following feature is cancelled.
23 (other comment)
Will complete this asap
24 (other comment)
Refactor taskList back to backlog, and use taskList only for the arraylist itself
25 (other comment)
There is something similar if you type "-" into commands with no arguments at all e.g. "task /priorityview". It can filter extra stuff like "task /priorityview 2" will return error message but if you type "task /priorityview -2" the command just ignores the "-2".
26 (other comment)
Is it perhaps a better idea for the storage classes to just catch Exception (i.e. all errors) instead? Otherwise looks good.
27 (other comment)
Looks good to merge.
28 (other comment)
Adds a logger class that helps with logging and creating logs.
Please provide improvements/suggestions so that logging can be implemented application-wide.
Example of use:
import static seedu.duke.log.Logger.createLog;
import static seedu.duke.log.Logger.getAbsolutePathInString;
public class TestClass {
private static final Logger logger = Logger.getLogger(TestClass.class.getName());
public function1() {
//No log
}
public function2() {
ConsoleHandler handler = new ConsoleHandler();
Formatter formatter = new SimpleFormatter();
try {
logger.setLevel(Level.WARNING);
logger.addHandler(handler);
handler.setFormatter(formatter);
} catch (SecurityException e) {
Ui.showError("There is a security violation while logging.");
}
createLog(new File("./log/scrumptious-testclasspackage-testclass-function2.log"));
String pathInString = getAbsolutePathInString("./log/scrumptious-testclasspackage-testclass-function2.log");
try {
FileHandler fileHandler = new FileHandler(pathInString, true);
fileHandler.setFormatter(formatter);
logger.addHandler(fileHandler);
try{
//Actual function 2 stuff
} catch (Exception e) {
Ui.printError("Function 2 error.");
logger.log(Level.SEVERE, "function 2 at TestClass class", "Function 2 error.");
}
handler.close();
fileHandler.close();
return writeable.toString();
} catch (IOException e) {
Ui.showError("Logging error. function 2 will run without logging.");
return function2WithoutLogging();
}
}
public function2WithoutLogging() {
try {
//Function 2 stuff
} catch (Exception e) {
Ui.printError("Function 2 error.");
}
}
}
29 (other comment)
To implement Wei Ling's logger instead.
@imhm
(0 comments)1 (other comment)
sub task of #19
2 (other comment)
Closes #18
3 (other comment)
lgtm
4 (other comment)
Closes #85
5 (other comment)
Closes #152
6 (other comment)
Thank you for suggestion.
7 (other comment)
Thank you for your suggestion
8 (other comment)
Thank you for pointing this out. We have added a more informative error message to guide our users.
9 (other comment)
Thank you for your suggestion.
10 (other comment)
Thank you for your suggestion. We have implemented a feature to allow keywords to be case insensitive
11 (other comment)
Fixes #282
@Speedweener
(0 comments)1 (other comment)
Added in Colour and Checkstyle changes pull request
2 (other comment)
huh but then i think its obvious that the lesson now surrounds the second session 1600 to 1800?
3 (other comment)
heheh this is just printing the clear ecscape sequence, nothing i can do about it heheh. I think it serves its intended purpose of clearing the visible screen for the user though im not sure how his input bar shifted to the right
@DesmondKJL
(0 comments)1 (other comment)
Thank you for the suggestion and feedback! We will address the tweak mentioned here in issue #148. Other than that, thank you for using our app and also for the positive review!
@poonchuanan
(0 comments)1 (other comment)
Looks good!
thank you
2 (other comment)
include exception messages for find