Skip to content

Commit

Permalink
v1.1
Browse files Browse the repository at this point in the history
  • Loading branch information
DedInc committed Mar 12, 2024
1 parent 413c227 commit 6b90960
Show file tree
Hide file tree
Showing 15 changed files with 620 additions and 275 deletions.
42 changes: 31 additions & 11 deletions README.MD
Original file line number Diff line number Diff line change
@@ -1,40 +1,60 @@
# MindVault 🧠📚

<div align="center">
<div text-align="center">

Welcome to MindVault, the ultimate Java application for efficient and personalized learning! 🎉 MindVault is designed to help you maximize your learning potential while minimizing the risk of overtraining and mental fatigue.
Welcome to MindVault, the ultimate Java application for efficient and personalized learning! 🎉 MindVault is designed to
help you maximize your learning potential while minimizing the risk of overtraining and mental fatigue.

## Features ✨

- 🎯 **Eliminating "mush" in the head (overtraining)**: MindVault adapts the learning process to your individual needs, monitoring your progress and preventing excessive repetition of already learned material. This allows you to focus on new information and maintain mental clarity.
- 🧩 **Full adaptability based on the speed and correctness of your responses**: MindVault dynamically customizes the learning process based on your performance. The application takes into account the speed and accuracy of your responses when determining the difficulty and repetition rate of flashcards, ensuring an optimal learning pace that matches your ability and progress.
-**Interval repetitions to eliminate the need to decide what to repeat**: MindVault uses an interval repetition algorithm to automatically determine the optimal repetition intervals for each flashcard. The application takes your performance into account and adjusts the repetition intervals accordingly, eliminating the need for you to decide which flashcards to repeat and when, reducing the associated hassle and uncertainty.
- 🎓 **The "set and learn" concept**: MindVault follows the "set and learn" concept, allowing you to focus on the learning process without worrying about the technical details. Simply set your learning goals and let MindVault handle the rest, providing you with a seamless and efficient learning experience.
- 🎯 **Eliminating "mush" in the head (overtraining)**: MindVault adapts the learning process to your individual needs,
monitoring your progress and preventing excessive repetition of already learned material. This allows you to focus on
new information and maintain mental clarity.
- 🧩 **Full adaptability based on the speed and correctness of your responses**: MindVault dynamically customizes the
learning process based on your performance. The application takes into account the speed and accuracy of your
responses when determining the difficulty and repetition rate of flashcards, ensuring an optimal learning pace that
matches your ability and progress.
-**Interval repetitions to eliminate the need to decide what to repeat**: MindVault uses an interval repetition
algorithm to automatically determine the optimal repetition intervals for each flashcard. The application takes your
performance into account and adjusts the repetition intervals accordingly, eliminating the need for you to decide
which flashcards to repeat and when, reducing the associated hassle and uncertainty.
- 🎓 **The "set and learn" concept**: MindVault follows the "set and learn" concept, allowing you to focus on the
learning process without worrying about the technical details. Simply set your learning goals and let MindVault handle
the rest, providing you with a seamless and efficient learning experience.

## Getting Started 🚀

1. Clone the MindVault repository:
```
```sh
git clone https://github.com/DedInc/MindVault
```
2. Navigate to the project directory:
```
```sh
cd MindVault
```
3. Compile and run the application:
```
```sh
.\gradlew shadowJar
```

```sh
cd build/libs
java -jar MindVault-1.0-all.jar
```

```sh
java -jar MindVault-1.1-all.jar
```

## Screenshot 📸

![MindVault Preview](screenshot.png)
![MindVault Preview 2](screenshot2.png)
![MindVault Preview 3](screenshot3.png)

## Contributing 🤝

We welcome contributions from the community! If you have any ideas, suggestions, or bug reports, please open an issue or submit a pull request. Let's make learning even more effective together!
We welcome contributions from the community! If you have any ideas, suggestions, or bug reports, please open an issue or
submit a pull request. Let's make learning even more effective together!
## License 📄
Expand Down
3 changes: 2 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ tasks.withType(JavaCompile) {
}

group 'com.github.dedinc.mindvault'
version '1.0'
version '1.1'

repositories {
mavenCentral()
Expand All @@ -26,4 +26,5 @@ dependencies {
implementation 'org.json:json:20240303'
implementation 'com.formdev:flatlaf:3.4'
implementation 'com.formdev:flatlaf-intellij-themes:3.4'
implementation 'org.jfree:jfreechart:1.5.4'
}
Binary file modified screenshot.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 screenshot2.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 screenshot3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 0 additions & 16 deletions session.json

This file was deleted.

20 changes: 17 additions & 3 deletions src/main/java/com/github/dedinc/mindvault/App.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,26 @@
package com.github.dedinc.mindvault;

import com.github.dedinc.mindvault.ui.GUI;
import com.formdev.flatlaf.util.SystemInfo;
import com.github.dedinc.mindvault.ui.frames.MainMenuFrame;

import javax.swing.*;

public class App {
public static void main(String[] args) {
if (SystemInfo.isMacOS) {
System.setProperty("apple.laf.useScreenMenuBar", "true");
System.setProperty("apple.awt.application.name", "MindVault");
System.setProperty("apple.awt.application.appearance", "system");
}

if (SystemInfo.isLinux) {
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
}

java.awt.EventQueue.invokeLater(() -> {
GUI gui = new GUI();
gui.setVisible(true);
MainMenuFrame mainMenuFrame = new MainMenuFrame();
mainMenuFrame.setVisible(true);
});
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.github.dedinc.mindvault.core;

public class Intervals {
private static final int[] intervals = {1, 3, 7, 14, 30, 60, 120, 240};
public static final int[] intervals = {1, 3, 7, 14, 30, 60, 120, 240};

public static boolean isReviseViolated(long learnDate, long[] reviseDates) {
for (int i = 0; i < reviseDates.length; i++) {
Expand Down
19 changes: 5 additions & 14 deletions src/main/java/com/github/dedinc/mindvault/core/Session.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,16 +49,12 @@ public void removeCards(List<String> questions) {
}

public void moveCard(Card card, State newState) {
State currentState = null;
for (Map.Entry<State, List<Card>> entry : cards.entrySet()) {
if (entry.getValue().stream().anyMatch(c -> c.getQuestion().equals(card.getQuestion()))) {
currentState = entry.getKey();
break;
}
}
State currentState = card.getCategory(this);

if (currentState == newState) {
return;
}

cards.get(currentState).removeIf(c -> c.getQuestion().equals(card.getQuestion()));
cards.get(newState).add(card);
}
Expand Down Expand Up @@ -102,13 +98,8 @@ public void updateCards() {
}

public void checkCard(Card card, double grade) {
State currentState = null;
for (Map.Entry<State, List<Card>> entry : cards.entrySet()) {
if (entry.getValue().stream().anyMatch(c -> c.getQuestion().equals(card.getQuestion()))) {
currentState = entry.getKey();
break;
}
}
State currentState = card.getCategory(this);

if (currentState == State.LEARN) {
card.setLearnDate(Time.getUnix());
moveCard(card, State.WEAK);
Expand Down
214 changes: 0 additions & 214 deletions src/main/java/com/github/dedinc/mindvault/ui/GUI.java

This file was deleted.

Loading

0 comments on commit 6b90960

Please sign in to comment.