4

GitHub - codeacme17/examor: For students, scholars, interviewees and lifelong le...

 1 year ago
source link: https://github.com/codeacme17/examor
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

A website application that allows you to take exams based on your knowledge notes. Let you really remember what you have learned and written.

product.png?raw=true

💡 Inspiration

For learners, one of the best habits should be regular self-testing - Make It Stick: The Science of Successful Learning

When I'm learning a new technology, I have the habit of taking notes and jotting down important information. It's a good habit, but I also have a bad habit of not enjoying reading the notes I've written (I'm not sure if this is the case for most people 🫣). This results in my notes becoming mere mementos without substantial use. That's why I choose to create an application that continuously prompts you with questions to review your note contents.

🏁 Start

I'm very sorry, the proxy may not be available when starting the project with docker-compose, I'll fix it as soon as possible. This problem can currently be avoided by using the developer method.

Clone this repo

git clone https://github.com/codeacme17/examor.git
cd examor

Run docker compose

docker-compose up

Please make sure Docker is installed on your local machine, and ports 51717, 51818, and 52020 are available on your local host

Open http://localhost:51818 in your browser to access Examor. (Due to optimization scheme for modules, it may be slow when loading the program or entering a certain page for the first time)

✨ Features

This project primarily focuses on question generation and answer detection based on user documentation. In the initial version, I've implemented a simplified version of the Ebbinghaus memory curve, which allows periodic reviews based on the accuracy of your answers.

Generate Issues from Documentation

When users create notes, they can upload associated documents. The application generates a set of questions from these documents, based on their content. These questions will be presented to the users in the future.

Answer Detection

After users receive daily questions, they can provide answers. GPT will score, validate, and provide the correct answers. The score is determined by evaluating the correctness of the answers and the linked document (0 ~ 10 points). This score influences the subsequent Ebbinghaus review process.

Ebbinghaus Memory

I've implemented a simplified version of Ebbinghaus memory, currently consisting of only 8 lines of code. I plan to optimize this function further in the future (v0.1).

Regarding the actual function, once GPT generates a test, the score is recorded and affects the future review date. Higher scores result in longer intervals until the next review.

Role Selection

⚠️ The feature in the current version might not be entirely stable. In the upcoming plans, I will continue to optimize this feature (v0.1).

role-en.png

Roles can provide more possibilities for question generation and assessment. You can set roles in the configuration page. For more information about various roles, it's recommended to refer to the Role Manual.

📦️ Modules

Notes Management

Notes Management is a module to oversee all uploaded documents. Within this module, you can delete or add new files to your uploaded notes. Note that deleting all documents under a note will clear the associated questions.

Random Question

Random Question is a module that randomly selects a question from the existing question bank. Implementation of this module enables this feature.

Note is a virtual module generated in your app for each note you create. In this module, you can answer questions. Question pushing is implemented according to the Ebbinghaus memory curve. You will receive three types of question data:

  • Questions for Today's Review: As the name suggests, this data pertains to questions that need review on the current day for questions answered in the past.

  • Expired Questions: These are questions not completed within the required review timeframe on the same day, resulting in this data being collected.

  • New Questions: When the user-defined daily question count is not met from the above two data sets, this supplementary data set is pushed to the user.

Examine

Examine is a central module where users answer questions, allowing GPT to score and validate answers. The module comprises three components:

  • Answer: Users enter their answers, and test content can be displayed after submission.

  • Last Record: Records the user's previous answer to the question and the detection outcome.

  • Document Content: This component displays the actual uploaded document content, serving as the basis and final answer for the question.

Contributing

Contributions to the project are welcome! If you find a bug or have an idea for a new feature, please submit an issue or pull request. See more in CONTRIBUTING.

License

AGPL-3.0 license © 2023-Present leyoonafr


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK