/SE-Project-3

Create Anki cards for your lectures

Primary LanguagePythonMIT LicenseMIT

Auto Anki

ForTheBadge built-with-love

Github Build GitHub issues GitHub closed issues

codecov PEP8 GitHub license

PRs Welcome version Test Cases Test Cases DOI

Table of Contents
  1. Why should you use Auto Anki?
  2. Check out the video!
  3. Sucessful usecases
  4. Installation
  5. Code Documentation
  6. Troubleshooting
  7. How to Contribute
  8. Contact us(Contributors)
  9. Project's Funding
  10. Acknowledgements
  11. Recommended citation

Introducing Auto Anki – Your Ultimate Flashcard Companion Powered by ChatGPT 4!

Auto Anki revolutionizes your learning experience by effortlessly transforming your lecture materials into highly accurate and effective flashcards. This version of Auto Anki incorporates the advanced capabilities of ChatGPT 4, ensuring precision and relevance in every flashcard.

Auto Anki, building upon the intelligent Anki flashcard platform Anki , generates flashcards from your lectures, making studying a breeze. It's the perfect tool for anyone who struggles to memorize class concepts, faces revision challenges, or simply prefers a more convenient note-taking approach.

Here's what Auto Anki with ChatGPT 4 can do for you:

Extract crucial concepts from your lectures and generate questions based on them. Search the web for the most relevant answers, guaranteeing the accuracy of your flashcards. Utilize Anki's robust features, allowing you to rate the difficulty level of each question, making tough concepts easier to memorize.

Why should you choose Auto Anki with ChatGPT 4?

Summarize entire lectures into flashcards, perfect for memorization. Eliminate the manual effort of creating lecture flashcards in Anki. Break down lecture PDFs into concise and effective question-and-answer pairs. Create straightforward flashcards for effortless memorization and revision. Auto Anki 4.0 is here to enhance your study experience and empower your academic success! 😊

Quick Start

Install Auto-Anki with ChatGPT, provide your study lectures or documents, and your APKG file will be ready! The flash decks will be autoloaded into your Anki application. It's quick and easy peasy!

Here's a series of pictures to demonstrate the features we've added and how to use them:

First Feature: Enhanced User Interface

We've revamped the user interface and improved the overall aesthetic of the home page. We have also added the support for viewing the application in full screen mode to provide better viewing experience. The UI also adapts to the appearance (light, dark mode) of the system.

Second Feature: Selection of multiple files

To provide more immersive experience to the application and avoiding revisits for generating flash decks for each document separately, we have added the support of generating decks for multiple files simultaneously.

Users can select all the files at once to genearate the flash decks.

Here, you can upload a single document:

You can also upload mutliple documents:

Third Feature: Generate flash decks from a website

We have added the support to generate flash decks from any website on the internet. This enhances the overall use case of the application and improves the user experience.

Just copy the URL of the website, paste it into the dedicated URL section in our application and Voila! your flash decks are ready!!

Fourth Feature: Integration with Anki Application

Previously, users had to manually load the apkg file of the flash deck into a third party application. With this feature, we enabled the auto loading of the decks into the Anki Application. Say bye to the hassle of manually importing apkgs into a third party application.

Check out the video!

Anki.v2.0.mp4

Successful usecases

🎉️ Case study : Master's Student

User: Kanchana

Background: Student majoring in Electrical and Computer Engineering

Scenario:

  • Kanchana was struggling with managing large amounts of information from complex textbooks.
  • Kanchana started using Auto-Anki with ChatGPT to extract key content from PDF textbooks and create flashcards automatically.
  • Result: Kanchana noticed a significant improvement in her ability to absorb and retain information. Kanchana achieved a good grade in her Software Engineering midterm exam and now has more free time for other activities.

🎉️ Case Study: Aspiring International Master's Student

User: Jamatis

Background: Undergraduate Engineering Student

Scenario:

  • Jamatis, an engineer from Jamaica, aimed to pursue his Masters in CS at NC State University.
  • Using Auto-Anki, he focused on creating flashcards for his TOEFL English Vocabulary test.
  • The flashcards facilitated effective revision and application of learned words in sentences.
  • Result: Jamatis successfully cleared the TOEFL test with flying colors and he secured admission to NC State University for the spring semester.

Installation

  1. Clone the repository git clone https://github.com/tran4code/auto_anki
  2. Set up a virtual environment (Optional, but highly recommended):
    • Create the virtual environment: python -m venv myenv
    • Activate the virtual environment: source myenv/bin/activate.
    • Note: In future runs, you won't need to create the virtual environment again, just activate it.
  3. Install all required packages: pip install -r requirements.txt
  4. Download a required model: python -m spacy download en_core_web_lg
  5. Install the project as a Python package: pip install .
  6. Clone the Anki library git clone https://github.com/kerrickstaley/genanki --branch 0.13.0
    • Note: Requires version 0.13.0, do not clone latest verision of genanki.
  7. Navigate into the cloned directory: cd genanki
  8. Install the Anki library python setup.py install
  9. The command to run the project is: python3 code/ui.py
  • For further help with installation, check out the documentation and requirements files, or join the community discord.

Code Documentation

Documentation of the entire codebase is generated using Pycco. You can find the documentation here.

If you are a developer, and want to update documentation:

  • Install Pycco pip install pycco
  • Use Pycco to generate docs. pycco auto_anki/**/*.py -p

Code Coverage

For checking code coverage,

  • Install Coverage (https://pypi.org/project/coverage/) pip install coverage
  • For generating the report run coverage run user_cli.py
  • For viewing the report run coverage report
Name Stmts Miss Cover
anki.py 14 3 83%
extract_sizes.py 55 6 89%
google_search.py 13 2 87%
user_cli.py 53 7 87%
wordprocessing.py 125 23 81%
TOTAL 260 57 85%

Troubleshooting

  • Check the version of genanki (should be 0.13.0), will encounter errors otherwise
  • Check that the Python version is at least 3.10.0
  • If you continue to encounter errors, check out the Requirements file and join the community discord for assistance.

How to Contribute

We would be happy to receive contributions! If you'd like to, please go through our CONTRIBUTING.md.

For any feedback, issues, or bug reports, please create an issue here.

Contact us(Contributors):

We are here to support you. Feel free to email us with any question or bug reports. We try our best to reply as soon as possible.

Community Support

Join our Discord server to connect with the Auto-Anki community. This is the place for discussions, support, and collaboration.

Discord Server Information

Channels

  • #general: General discussion about Auto-Anki.
  • #support: Get help and support from the community.
  • #development: Discussions about project development and code.
  • #feedback: Share your feedback, ideas, or suggestions.
  • #announcements: Important announcements and updates.

Rules

  1. Be respectful: Treat others with respect and kindness.
  2. Stay on topic: Keep discussions relevant to Auto-Anki.
  3. No spamming or self-promotion: Avoid excessive promotion or spam.
  4. Follow Discord's Terms of Service: Abide by Discord's community guidelines.

Roles

  • User: Default role for community members.
  • Developer: Granted to contributors with significant code contributions.
  • Contributor: Granted to contributors with valuable contributions.
  • Moderator: Discord moderators responsible for enforcing rules.

Support Email

Auto-Anki Support Email - 📧 Support Email: autoankisuppport@gmail.com

Have a question, feedback, or need personalized assistance with Auto-Anki? We're here to help! Our dedicated support email, autoankisuppport@gmail.com, is your direct line to the Auto-Anki team. Here's what you can expect:

What We Can Assist With:

  • Technical Issues: Encountering bugs, errors, or technical glitches? Share the details, and we'll work to find a solution.
  • Usage Guidance: Need help navigating Auto-Anki's features? Ask for guidance on how to make the most of your learning experience.
  • Feedback and Suggestions: Your thoughts matter! Share your feedback, suggestions, or ideas for improving Auto-Anki. We value your input.
  • General Inquiries: Whether it's about the installation process, specific functionalities, or any other general inquiry, drop us a line.
  • Contributor Queries: If you're interested in contributing to Auto-Anki or have questions about the development process, feel free to reach out.

How to Reach Us:

  • Compose an Email: Craft an email detailing your query or concern and send it to autoankisuppport@gmail.com.
  • Subject Line: For efficient handling, include a brief but descriptive subject line related to your inquiry.
  • Include Details: Provide as much detail as possible about the issue or question you're facing. Attach relevant screenshots if applicable.
  • Response Time: Our team is dedicated to responding promptly. While response times may vary, be assured that we're working to address your queries in a timely manner.

We're Here to Assist You:

  • Team Members: The Auto-Anki support team comprises individuals passionate about providing excellent user experiences.
  • Collaborative Approach: We believe in a collaborative approach to problem-solving. Your insights and experiences contribute to the ongoing improvement of Auto-Anki.
  • Community Support: The support email isn't just for individual queries; it's a space for community support. If multiple users face similar challenges, we may address common themes in broader communications.

Project's funding

Our project is currently not funded, and we operate on a volunteer and open-source basis , and currently,improvement of the project solely relies on the dedication of our team and contributions from the open-source community.

Acknowledgements

We have built this code on top of the stack from the project https://github.com/tran4code/auto_anki

We have built the new features on top of the existing work developed by Keith Tran et al. [https://github.com/tran4code/auto_anki]

Recommended citation

You can cite us like this:

Auto-Anki with ChatGPT. Version 2.0.