Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[Wang Guanlin] iP #468

Open
wants to merge 86 commits into
base: master
Choose a base branch
from

Conversation

WangGLJoseph
Copy link

@WangGLJoseph WangGLJoseph commented Aug 26, 2021

Duke v0.9.0

"Be not afraid of growing slowly, be afraid of standing still." - Chinese proverb

Duke offers you a:

  • Hassle free
  • Text based
  • Minimalist
    and completely offline experience of planning your tasks!

Duke's features

  • Adding and saving tasks
  • GUI (coming soon!)
  • Mystery features 😜

Setting up Duke

  1. Download it here
  2. Double-click to run it
  3. Add your tasks
  4. Enjoy mastery over your tasks 😆

A snippet of the workings of controlling your tasks. Behold, you've got the power!

 public String finishTask(int index) throws DukeException {
     if (index > taskArrayList.size()) {
         throw new DukeException("This task index is not in the task list!");
     }
     taskArrayList.get(index - 1).markAsDone();
     return (sandwich("Congratulations! You have finished this task: "
             + taskArrayList.get(index - 1).toString()));
 }

damithc and others added 30 commits July 29, 2021 20:30
WangGLJoseph and others added 30 commits September 7, 2021 00:28
* branch-Level-10:
  Level-10: Add GUI for Duke
  Create new package for controllers
  Extract GUI logic out of Duke and into Main
  Add DukeLauncher as part of JavaFX basics
The addTask method implements the addition of
multiple types of tasks (i.e. ToDo, Deadline, Event).

This violates the Single Level of Abstraction principle and
makes the code difficult to understand or debug.

Implementing the add task methods separately allows us to call different
methods when adding a task of a particular type (e.g. addTodo).

Let's implement addTodo, addDeadline, and addEvent as separate methods.

This reduces the risk of calling the wrong add task method.
The parse method implements the parsing of all data from duke.txt into
an ArrayList. The method handles the parsing of all types of tasks.

This violates the Single Level of Abstraction principle and
makes the code difficult to understand or debug.

Implementing each parse task methods separately allows us to
call different methods when parsing one type of task (e.g. addTodo).

Let's implement parseTodo, parseDeadline, and parseEvent
as separate methods.

This reduces the risk of calling the wrong parse task method.
Add assertions for key assumptions in the code
* 'master' of https://github.com/WangGLJoseph/ip:
  Add assertions for key assumptions in the code
* master:
  Add assertions for key assumptions in the code
Apply SLAP to TaskList and DukeParser
* 'master' of https://github.com/WangGLJoseph/ip:
  DukeParser class: Apply SLAP to shorten methods of parsing data
  Remove data within data/duke.txt
  Update .gitignore to ignore data/duke.txt
  TaskList class: Apply SLAP to shorten methods of adding tasks
  Update DialogBox to display more text
  Update method header comments to follow the coding standard
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants