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

Ak docs #197

Merged
merged 14 commits into from
Nov 11, 2019
16 changes: 16 additions & 0 deletions docs/DeveloperGuide.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -950,6 +950,22 @@ These instructions only provide a starting point for testers to work on; testers
.. Submit a solution with a runtime error +
Expected: The application should display the runtime error

//tag::manualtesting[]
=== Bookmarking a question / Removing bookmark for a question

. Bookmark a question

.. Bookmark any question in the question library. For example, bookmark question 3 through `bookmark 3`.
.. Navigate to the Dashboard tab, either through clicking or typing `dashboard`. +
Expected: The question you chose to bookmark should be in the list of bookmarked questions.

. Removing a bookmark

.. On the Dashboard, refer to the list of bookmarked questions and pick one question to remove the bookmark.
.. Remove the bookmark for that question. For example, `deletebookmark 3` +
Expected: The question is no longer in the list of bookmarked questions.
//end::manualtesting[]

=== Creating notes

. Creating notes
Expand Down
74 changes: 41 additions & 33 deletions docs/UserGuide.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -109,32 +109,26 @@ image::questionindex.png[width="800" align="center"]
The application is divided into 5 separate tabs, each one of them serving a specific purpose. You can toggle between the
different tabs by entering `tab` into the *CommandBox*.

=== Dashboard
The *Dashboard* tab contains an introduction of the application, and more importantly, a *Personal Dashboard* for you to keep track of your progress made in Duke Academy.
//tag::dashboard1[]
=== Dashboard Tab
The *Dashboard* allows you to keep track of your learning journey and progress made in Duke Academy.

image::dashboard.png[width="800" align="center"]
On the *Dashboard* you can:

image::homepage.png[width="800" align="center"]


. *Completion Progress* +
Displays the number of questions that you have completed and how close you are to the next skill tier
. *Currently attempting* +
Displays all the questions that you are currently attempting
. *Bookmarked questions* +
Displays all your bookmarked questions

====
*Duke Academy ranks*:

- *Novice* - 0 - 29 % {nbsp}
- *Apprentice* - 30 - 49 % {nbsp}
- *Master* 50 - 69 % {nbsp}
- *Grandmaster* - 70 - 89 % {nbsp}
- *Duke* - 90 - 100 %

====
. See the percentage of questions you completed and your current skill tier.
+
Novice 0 - 29 % {nbsp} +
Apprentice 30 - 49 % {nbsp} +
Master 50 - 69 % {nbsp} +
Grandmaster 70 - 89 % {nbsp} +
Duke 90 - 100 %
+
. Keep track of the questions that you are currently attempting.
. Keep track of the questions that you bookmarked.
//end::dashboard1[]

=== Questions
=== Questions Tab
The *Questions* tab contains a list of all the available questions and also a window to view your problem statements.

You can use commands such as `browse` and `find` to filter through the list of questions in order to find what you
Expand All @@ -148,7 +142,7 @@ image::questionspage.png[width="800" align="center"]
on the right.
====

=== Workspace
=== Workspace Tab
The workspace is where you will work on the various questions.

image::workspace.png[width="800" align="center"]
Expand All @@ -172,7 +166,7 @@ A built-in editor for you to write your code.
- To submit your attempt, enter `submit` into the *CommandBox*.
====

=== Notes
=== Notes Tab
The notes page is where you can record notes or even sketch out some of your ideas to aid your learning process.

image::notespage.png[width="800" align="center"]
Expand Down Expand Up @@ -208,8 +202,12 @@ A canvas for you to draw any ideas you may have pertaining to data structures!
//end::overview[]


=== Help
The help page is where you can get a quick summary of all of the features and commands in the application.
//tag::help1[]
=== Help Tab
The help tab is where you can get a quick overview of commands used in Duke Academy, and the URL to the official User Guide.

image::help.png[width="1000"]
//end::help1[]

//tag::beforestart[]
[[BeforeStart]]
Expand Down Expand Up @@ -247,22 +245,26 @@ e.g. `browse [category]...` can be used as
`browse easy linkedlist hashtable recursion` (i.e. 4 entries), etc.
====

//tag::help[]
=== Access Help Tab: `help`

Navigates to the *Help* Tab.
Navigates to the *Help* Tab. +
The *Help* tab contains a quick overview of commands used in Duke Academy, and also the URL to the official User Guide.

*Format:* `help`

image::help.png[width="800" align="center"]

//tag::dashboard[]
=== Access Dashboard: `dashboard`

=== Access Home Tab: `home`

Navigates to the *Home* Tab.
Navigates to the *Dashboard* Tab. +
The Dashboard allows the user to keep track of his learning journey and progress made in Duke Academy.

*Format:* `home`
*Format:* `dashboard`

image::home.png[width="800" align="center"]
image::dashboard.png[width="1000"]
//end::dashboard[]


=== List all questions: `showall`
Expand All @@ -273,6 +275,9 @@ Navigates to the *Questions* Tab and displays all available questions.

image::listallquestions.png[width="800" align="center"]

//end::showall[]

//tag::bookmark[]
=== Adding bookmark: `bookmark`

Bookmarks a specific question.
Expand All @@ -285,7 +290,9 @@ Bookmarks a specific question.
****

image::bookmark.png[width="800" align="center"]
//end::bookmark[]

//tag::deletebookmark[]
=== Removing bookmark: `deletebookmark`

Removes the bookmark from a specific question.
Expand All @@ -296,6 +303,7 @@ Removes the bookmark from a specific question.
* The id of a question can be found next to its title.
* The question with the bookmark removed will disappear from the list of bookmarked questions located within your *Personal Dashboard*.
****
//end::deletebookmark[]

=== Find question by title : `find`

Expand Down
Binary file modified docs/images/Ui.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/ak_ppp/UiPreview.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/ak_ppp/bookmark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/ak_ppp/dashboard.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/ak_ppp/help.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/developerguide/UiClassUmlDiagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
72 changes: 0 additions & 72 deletions docs/team/alexkoh.adoc

This file was deleted.

73 changes: 73 additions & 0 deletions docs/team/alxkohh.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
= Alex Koh - Project Portfolio
:site-section: AboutUs
:imagesDir: ../images/ak_ppp
:stylesDir: ../stylesheets

== PROJECT: Duke Academy

'''

== Overview

Duke Academy is an all-in-one programming practice app targeted for students taking introductory and intermediate programming classes. While most of the user interaction happens through a CLI, the app also comes with a GUI built with JavaFX. Duke Academy was developed by a team of 4 software engineering students, and has a codebase of about 15k LOC, mostly written in Java. +

Here is a preview of Duke Academy:

image::UiPreview.png[width="1000"]

== Summary of contributions

* *Major enhancement*: Implemented the Dashboard, as well as two relevant user commands that interacts with it, namely `bookmark` `deletebookmark`.
** What it does: The Dashboard allows the user to keep track of his learning journey in Duke Academy, through three GUI components.
+
1) Gamified progress indicator, with both percentage of questions completed and a corresponding skill tier
+
2) The list of questions the user is still attempting
+
3) The list of questions specially bookmarked by the user +
+
The `bookmark` command allows the user to add a question to the list of bookmarked questions, while the `deletebookmark` command allows the user to remove any question from that list.
** Justification: The Personal Dashboard improves user experience significantly. When it comes to programming practice, there are many cases where a student wants to note down a particular question for future reference. For example, a student might find a few questions particularly challenging for him, and he wants to note down these questions for future revision. The `bookmark` command would allow him to conveniently do that, without the traditional need for pen and paper or an external notepad application. This is because the list of bookmarked questions on the Personal Dashboard would update immediately upon the bookmark command. The student is also able to remove any of the questions from the bookmarked list using the deletebookmark command. Also, the inclusion of a gamified progress indicator can actually provide many students with an extra source of motivation and interest towards the arduous and challenging activity of programming.
** Highlights: The implementation of `bookmark` command and `deletebookmark` command required a deep understanding of the Question class, because Question objects were required to be either bookmarked or not bookmarked. Also, the Personal Dashboard was developed to be able to support other commands implemented by other developers in the team, namely `attempt` and `submit`. Hence, it required strong understanding of the code written by other developers, and more importantly, effective communication with them to deliver a fully functional dashboard that can accurately support all 4 commands, `bookmark`, `deletebookmark`, `attempt` and `submit`.

* *Minor enhancement*: Added a Program Evaluation Panel that allows the user to view how well his program performed against the pre-defined test cases tied to each question.

* *Code contributed*: [https://nus-cs2103-ay1920s1.github.io/tp-dashboard/#search=alxkohh&sort=groupTitle&sortWithin=title&since=2019-09-06&timeframe=commit&mergegroup=false&groupSelect=groupByRepos&breakdown=false&tabOpen=true&tabType=authorship&tabAuthor=alxkohh&tabRepo=AY1920S1-CS2103T-F14-1%2Fmain%5Bmaster%5D[Functional code]] [https://nus-cs2103-ay1920s1.github.io/tp-dashboard/#search=alxkohh&sort=groupTitle&sortWithin=title&since=2019-09-06&timeframe=commit&mergegroup=false&groupSelect=groupByRepos&breakdown=false&tabOpen=true&tabType=authorship&tabAuthor=alxkohh&tabRepo=AY1920S1-CS2103T-F14-1%2Fmain%5Bmaster%5D[Test code]]

* *Other contributions*:

** Project management:
*** Managed releases `v1.2` - `v1.4` (3 releases) on GitHub, in terms of creation, assignment and tracking of GitHub issues, and also deadline scheduling of the version release.
** Enhancements to existing features:
*** Modified AB3's `help` command to provide user with a quick overview of all commands used in Duke Academy, through the Help Tab (https://github.com/AY1920S1-CS2103T-F14-1/main/pull/175[#175])
** Documentation:
*** Updated README Page to be aligned with the app's full release (https://github.com/AY1920S1-CS2103T-F14-1/main/pull/95[#95], https://github.com/AY1920S1-CS2103T-F14-1/main/pull/125[#125])
*** Wrote About Us Page (https://github.com/AY1920S1-CS2103T-F14-1/main/pull/14[#14], https://github.com/AY1920S1-CS2103T-F14-1/main/pull/19[#19], https://github.com/AY1920S1-CS2103T-F14-1/main/pull/96[#96], https://github.com/AY1920S1-CS2103T-F14-1/main/pull/116[#116])
*** Wrote Contact Us Page (https://github.com/AY1920S1-CS2103T-F14-1/main/pull/15[#15], https://github.com/AY1920S1-CS2103T-F14-1/main/pull/20[#20], https://github.com/AY1920S1-CS2103T-F14-1/main/pull/98[#98])
*** Contributed to the User Guide for Dashboard, Bookmark, DeleteBookmark, Help (https://github.com/AY1920S1-CS2103T-F14-1/main/pull/174[#174])
*** Contributed to the Developer Guide for Ui component, Dashboard, BookmarkCommand (https://github.com/AY1920S1-CS2103T-F14-1/main/pull/79[#79])
** Tools:
*** Provided assistance with GUI development through expertise with Gluon Scene Builder

== Contributions to the User Guide

|===
|_Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users._
|===
include::../UserGuide.adoc[tag=dashboard1]
include::../UserGuide.adoc[tag=dashboard]
include::../UserGuide.adoc[tag=bookmark]
include::../UserGuide.adoc[tag=deletebookmark]
include::../UserGuide.adoc[tag=help1]
include::../UserGuide.adoc[tag=help]


== Contributions to the Developer Guide

|===
|_Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project._
|===

include::../DeveloperGuide.adoc[tag=ui]
include::../DeveloperGuide.adoc[tag=bookmark]
include::../DeveloperGuide.adoc[tag=manualtesting]