Skip to content

A Task Management Chat Application, built for CS2103 Software Engineering.

License

Notifications You must be signed in to change notification settings

zhuhanming/duchess

 
 

Repository files navigation

Duchess

A JavaFX-Powered Task Management App

Zhu Hanming  |  A0196737L

Travis Build Status AppVeyor Build Status Coveralls Coverage Status

About Duchess

This application was written for CS2103 - Software Engineering, as part of its Individual Project. Through this project, students are expected to learn more about managing a medium-sized project and get used to SE practices.

Highlights and Features of Duchess

  1. Extensive Testing Using JUnit and Mockito

Close to 90 JUnit tests were written to test each individual part of the program, ensuring that everything operates as expected. Due to time constraints, there are still parts that are missing tests.

It was a good learning experience for me, as I had never worked with JUnit and Mockito prior to this project.

  1. Data Storage using Gson and JSON

All data exchanged in the application are properly stored in JSON format using the Gson library by Google. This data is persisted between sessions, and allow users to keep a copy of their tasks with them at all times.

This was also my first time in working with the Gson library and with JSON files in Java, and was a good experience too.

  1. Responsive JavaFX UI with Dark and Light Mode

It was also my first time using JavaFX to design user interfaces for Java. Having prior experience with UI/UX design, I sought to bring about the best design I could with my limited knowledge of JavaFX. As such, I extended on the default UI to arrive at the above app, and built a Dark Mode as well for the sake of my eyes.

The app is also fully reponsive, and supports full-screen usage.

  1. Command Line Interface for the Command Line Lovers

For those of you who love command lines and terminals, fret not - Duchess fully supports CLI usage as well! Simply run the program via CLI with the flag -mode console and you will be able to utilise the CLI version of the app!

  1. And PLENTY of features built to enhance your experience!

There are lots of features built to support your task management, which includes:

  • Undo - We all make mistakes!
  • Archive - Clean up your list of tasks without deleting these tasks completely!
  • Set Recurring Deadlines - Don't worry about ever missing your weekly lessons again!
  • Find specific tasks - Simply search for keywords to instantly find your task!
  • Statistics - Get data about how you're performing instantly!

And MORE! Get started with Duchess now to explore all of its options!

Download Link

You can download a working, cross-platform JAR file containing the application right here at the Releases page. You can launch the app by either double clicking it, or running it in the command line with the command: java -jar duke-0.2.2.jar -mode console.

Setting up

Prerequisites

  • JDK 11
  • Recommended: IntelliJ IDE
  • Fork this repo to your GitHub account and clone the fork to your computer

Importing the project into IntelliJ

  1. Open IntelliJ (if you are not in the welcome screen, click File > Close Project to close the existing project dialog first).
  2. Set up the correct JDK version.
    • Click Configure > Structure for new Projects (in older versions of Intellij:Configure > Project Defaults > Project Structure).
    • If JDK 11 is listed in the drop down, select it. If it is not, click New... and select the directory where you installed JDK 11.
    • Click OK.
  3. Click Import Project.
  4. Locate the project directory and click OK.
  5. Select Create project from existing sources and click Next.
  6. Rename the project if you want. Click Next.
  7. Ensure that your src folder is checked. Keep clicking Next.
  8. Click Finish.

Tutorials

Duke Increment Tutorial
A-Gradle Gradle Tutorial
A-TextUiTesting Text UI Testing Tutorial
Level-10 JavaFX tutorials:
Part 1: Introduction to JavaFX
Part 2: Creating a GUI for Duke
Part 3: Interacting with the user
Part 4: Introduction to FXML

Feedback, Bug Reports

Acknowledgements

External Packages Used

Other Licenses

All images used in this project have been properly licensed for use. The photos are namely:

The photos have all been licensed under the Envato Elements License for CS2103 usage.

About

A Task Management Chat Application, built for CS2103 Software Engineering.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 98.9%
  • Other 1.1%