Giter VIP home page Giter VIP logo

rmit2023a-cosc2658-group-project's Introduction

COSC2658 Data Structures and Algorithms - Group Project

For problem description, see Assessment Details.


Contribution

Student Name Student ID Contribution Score
Do Le Long An S-3963207 3
Nguyen Nguyen Khuong S-3924577 3
Vo Tuong Minh S-3877562 3
Tran Ly The Quang S-3878707 3

Project Structure

.
├── notebooks/
│   ├── images/
│   └── Analysis.ipynb
├── src/
│   ├── main/java/vn/rmit/cosc2658
│   │   ├── development/
│   │   │   ├── InteractiveApp.java
│   │   │   ├── SecretKey.java
│   │   │   └── SecretKeyGuesser.java
│   │   ├── SecretKey.java
│   │   └── SecretKeyGuesser.java
│   └── test/java/vn/rmit/cosc2658/development
│       └── SecretKeyGuesserTest.java
├── test-data/
├── AssessmentDetails.md
├── README.md
├── LICENSE
├── pom.xml
└── requirements.txt
  1. notebooks/: This folder contains all the images and data analysis with Jupyter Notebook based on different performance parameters
    • images/: This folder contains all the results of data visualization.
    • Analysis.ipynb: The Jupyter Notebook for plotting and visualizing data.
  2. src/: This folder contains two sub-folders:
    • main/java/vn/rmit/cosc2658: This folder contains the final guessing algorithm and the development Java package.
      • development/: This Java package folder contains two classes that support our development and testing phase.
      • SecretKey.java: The initial provided class from the Assessment Details.
      • SecretKeyGuesser.java: The final key guessing algorithm implementation.
    • test/: This folder contains all test cases (using JUnit) for various test secret keys.
  3. test-data/: This folder contains all test results from JUnit tests in .csv format.
  4. README.md: A text file containing useful reference information about this project, including how to run the algorithm.
  5. LICENSE: MIT
  6. pom.xml: XML file used in Maven-based Java projects for building automation and dependency management tool
  7. requirements.txt: Text file for pip installation of necessary packages for our data visualization and analysis in notebooks.

Development Environment

Global Requirements

Requirement Version
Git latest
Maven 4.0.0
OpenJDK 17.0.2
Python 3.11

Note: For this project, we are using Python virtual environment to keep it light. However, feel free to use Anaconda if it is more convenient.

VSCode Requirements

Extension requirements for building and running Java classes:

Requirement Version
Extension Pack for Java latest
Test Runner for Java latest

Additional extensions for viewing data visualization in notebooks:

Requirement Version
Python latest
Jupyter latest

To properly setup Java and Python development environment for our project, refer to the following documentation:

To run tests, you need to install JUnit Maven dependency:

$ mvn install

If you are viewing and running Python scripts in notebooks, install the required Python packages:

$ pip install -r ./requirements.txt

IntelliJ IDEA

Requirement Version
Python Plugin for IntelliJ IDEA latest

Note: The above requirement is needed only for viewing data visualization in notebooks. All Java functionalities and toolchain integrations are IDE's built-ins, so no other plugins are required.

To properly setup OpenJDK 17 to work with IntelliJ IDEA toolchain, refer to this documentation: IntelliJ IDEA - SDKs.

To run tests, you need to install JUnit:

$ mvn install

To enable and run Python functionality within IntelliJ IDEA, refer to the following documentation: Python in IntelliJ IDEA.

If you are viewing and running Python scripts in notebooks, install the required Python packages:

$ pip install -r ./requirements.txt

Refer to IntelliJ IDEA - Getting Started to learn about building, executing, debugging, and testing with IntelliJ IDEA and its Maven toolchain integration.

Build and Execution

  • A console applet is available for you to manually play with guessing a random secret key. Edit line 7 to use any positive non-zero key length of choice.
  • Our final solution can be run by calling vn.rmit.cosc2658.SecretKey.main().
  • All tests are in vn.rmit.cosc2658.development.SecretKeyGuesserTest.

Video Demonstration

Video available on YouTube: Link.

rmit2023a-cosc2658-group-project's People

Contributors

laansdole avatar miketvo avatar nguyennguyenkhuong1212 avatar s3878707 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.