Giter Club home page Giter Club logo

memorize's Introduction

Memorize Icon

Memorize

Memorize is a native GNOME app that stores your flashcard sets. It enables you to create, edit, view, and study sets. Use the test mode to create preparation exams. Additionally, you can easily import existing Quizlet sets.

Screenshot

Table of Contents

Installation

The preferred way to install the Memorize app is via Flathub.

Download on Flathub

Build Flatpak Locally

You can also build the app yourself, e.g. to modify the source code.

  1. Download this repository's source code and open the folder using GNOME Builder.
  2. Build and run the project using the run button.
  3. Next to the hammer icon, in the dropdown menu, select Export and wait for the file browser to appear.
  4. Open the .flatpak file with GNOME Software and install the app.

Usage

Create a new set using the + button in the sidebar. Click the pen icon to edit the set's title and content, or to delete the set.

Import

Import Quizlet Set

If you have a Quizlet set you'd like to use, click the download icon next to Add Flashcard. Follow the tutorial here.

Study

Study Set

The study mode follows a simple principle: each flashcard starts with the same initial difficulty value. The cards will be presented in a random order. Type in the answer and press enter. If correct, the difficulty score decreases, otherwise, it increases by one. Cards with a score of zero won't appear again in this round. You can restart the study mode at any time.

Test

Test Set

A test is one page containing a specified number of random flashcards. Type in your answers and scroll down to correct and see your score. Correct your mistakes.

Export

Export Set

In the toolbar of the view for editing a set, find the button with a sharing icon in order to export the set.

Localization

Translations are welcome! You can either edit the Localized.yml file directly as YAML, or install the Localizer app and translate with a UI.

Either way, commit the changes via git and open a pull request.

Thanks

Dependencies

Other Thanks

memorize's People

Contributors

david-swift avatar konstantintutsch avatar albanobattistella avatar luiz-c-lima avatar rene-coty avatar vistaus avatar jimmac avatar

Stargazers

Evan avatar  avatar comshc avatar  avatar Senthilkumar Palani avatar Marcrus avatar Tom Brewe avatar Felix avatar Robin Cramer avatar Chris avatar Elias Jackson avatar Suraj avatar  avatar Vovkiv avatar Taylor High avatar Jonas mg avatar Lucas Barbosa avatar Jason Antwi-Appah avatar fwcd avatar Diego Iván M.E avatar Alain avatar Dmitry Petrov avatar Zhu avatar Eduardo Flores avatar  avatar a soul fragment avatar  avatar  avatar David M avatar Henrique Custódio avatar LinuxNewbie avatar  avatar Shivram Sambhus avatar  avatar Mohamed Walid avatar Sergio Varela avatar Anonymous avatar Scott Evans avatar RickBarretto avatar Brandon Evans avatar Tim Kersey avatar  avatar Mirek Mazel avatar Jakob avatar  avatar Khan Winter avatar Michael avatar Ashok Koyi avatar Wesley de Groot avatar  avatar Amadeus Paulussen avatar  avatar  avatar Dušan Simić avatar  avatar  avatar Pedro Sader Azevedo avatar Roxwize avatar Muktazam Hasbi Ashidiqi avatar CoolColby avatar  avatar Qwersyk avatar GhaniBelkhiri avatar  avatar Ivan Tkachuk avatar Jonas Heinrich avatar Berk Elyesa Yıldırım avatar Орест Смертний avatar Sébastien Monterisi avatar Yannick A. avatar

Watchers

Anonymous avatar  avatar comshc avatar

memorize's Issues

'Export' action causes crash when Set is empty

Describe the bug

Clicking the 'Export Set' button makes the app crash if there is no Flashcard in the Set.

To Reproduce

  1. Create an empty set and remove the 2 default question templates
  2. Click 'Export set'

Expected behavior

I didn't expect that button to produce anything when the set is empty anyway ^^. Nonetheless it should at least be 'greyed out'/defined as not clickable to avoid this

Move from OverlaySplitView to NavigationSplitView

I'm really enjoying the latest changes, great work! Semantically, I think it would make more sense to use a hierarchical navigation model for the main view at narrow window widths than an overlay sidebar based one, since the app has a clear top-down structure (list of sets -> set info -> study/test modes). AdwNavigationSplitView implements this hierarchical model.

Misalignment of RTL answers

Describe the bug

Hi, I'm stress-testing your UI a lil bit by using Memorize to make my English <-> Arabic flashcards. Not a big deal, but the Arabic text (written right-to-left) isn't properly centered. Stylesheet issue probably?

Thanks for the app, it's very straightforward if a bit barebones for now 👍

To Reproduce

A flashcard test you can import:

Midday	ظَهيرة
Night	لَيلةٌ
Star	نَجمة

The result:
image

Expected behavior

Well-centered questions and answers.

Additional context

No response

Add tooltips to the UI

Most of the buttons lack 'tooltips' to indicate what they trigger, which makes understanding the app's features (sometimes) not evident…
E.g. I was confused by the button that allows importing from Quizlet/Anki, thinking it created a backup of my Flashcards set; same for the 'export' button next to the 'delete' one 😅

Support Anki import

Is your feature request related to a problem? Please describe.

No response

Describe the solution you'd like

It'd be great if Flashcards allowed importing Anki files.

Describe alternatives you've considered

I suppose Anki could gain support for export to Flashcards instead, but Anki is the more common format here.

Additional context

Anki is probably the most commonly-used free and open-source flashcard app. As such, there's a lot of Anki decks being shared around and it'd be great to be able to use them inside Flashcards.

Add po for translations.

Hi,

this app is really nice!
Could you please provide the po for translations?
Thank you.
Regards.
A

The Set is created even if the user cancels the operation

Describe the bug

clicking on the "add a set" button and pressing the ESC key does not prevent the set from being created

To Reproduce

click on the "add set" button and press ESC

Expected behavior

the set should not be created

Additional context

I think we could prevent this with the user being forced to put a name on the set

Ability to set custom font and font size

Is your feature request related to a problem? Please describe.

I use Memorize to study Thai Script and the default font for Thai Script in GNOME is hard to read.

Describe the solution you'd like

It would be great if one could define font, font size and color for questions and answers individually.

Describe alternatives you've considered

It would already be helpful if the font and font size could be set globally (for questions and answers combined).

Additional context

Screenshot from 2024-03-08 20-56-37

Add images to cards

Is your feature request related to a problem? Please describe.

No response

Describe the solution you'd like

@wada3n reported in #1 that it would make sense to add an image to a flashcard. I would add another button to a flashcard's toolbar (maybe make it one media button together with #3) for the image. Similarly to #3, this would be hidden by default and displayed in a popover in all the views.

Describe alternatives you've considered

One might also display the image in the flashcard next to the text (on the top), and in the study and test view to the question, but this solution is not ideal as an image can illustrate the question as well as the answer.

Additional context

This problem has been reported by @wada3n in #1.

Too long tag names make the pop-up scrollable

Describe the bug

When there is a long tag name, it will be displayed with scrollbars in the appearing pop-up instead of being cleanly cut-off, which spoils the aesthetics of the app (and makes navigating through tags a bit unpleasant)

To Reproduce

  1. Create a long Tag name (e.g. something in French 😇)
  2. Click the Tag button next to a FlashCard
  3. Tag name is partially hidden, with scrollbars appearing

Expected behavior

I don't really expect the pop-up to exactly fit the size of the tag (it could be too long), but a more clean solution would be to make it a bit adaptive, with a maximum size beyond which the words are simply cut with '…'

Additional context

Capture d’écran du 2024-02-25 19-31-32

CSV import and export

Is your feature request related to a problem? Please describe.

I have stockpiled a lot of these old csv flashcard sets from various flashcards sites (i.e. quizlet, omniset, brainscape, etc) and would like to import them to Memorize

Describe the solution you'd like

  1. the ability to import csv flashcards directly to Memorize.
  2. the ability to export csv flashcards directly from Memorize.

Describe alternatives you've considered

  • Some of these files are no longer available online so it is impossible to re-export them into another format.
  • While I have been manually converting some these csv flashcards myself, it has become tedious and tiresome.

Additional context

Most of these files follows the standard question/answer structure

HEADER1,HEADER2
Question1,Answer1
Question2,Answer2

Making the app fully adaptive

Is your feature request related to a problem? Please describe.

The app currently isn't fully adaptive (scalable down to 360px*296px in all states).

Describe the solution you'd like

Since the layout already utilizes multiple adaptive widgets, we could get most of the way there by adding some breakpoints. There might be some layout changes required, but it shouldn't be too hard.

Describe alternatives you've considered

N/A

Additional context

The app can scale down enough when the sidebar isn't shown, but when the sidebar is open, the minimum width gets too big to fit on mobile.

Reorganizing header bar buttons in "main" flash card view

One last design suggestion: With the design suggested in #24, there would be some leftover space in the header bar of the main "flash card" view of sets. Since deleting and exporting a set aren't really actions that edit the set, I think it would make sense to move them out into the header bar there instead. The edit button could also be moved there, to make it clear that it edits the whole set, not just the name:

Skjermbilde fra 2024-03-18 22-38-02

In addition to being semantically better, this would make it a lot quicker to delete unwanted sets.

If more actions that apply to the entire set are added in the future, we could group them together with deleting and exporting in a three-dot popover menu instead.

Making the metainfo file translatable

Apps usually have translatable metainfo files. I'm not quite sure how this would work with the Localized.yml file, but it's something that happens at built time, at least.

Add audio to cards

Is your feature request related to a problem? Please describe.

No response

Describe the solution you'd like

@wada3n had the idea of recording and adding audio to cards (see #1), since this would be great for language learning. We can add a third button to every flashcard's toolbar (next to tags and delete) that opens a popover for recording audio, and then a button on the flashcard next to the star (if enabled, maybe in another corner) for playing the audio. In the study view, we could add it to the question and solution, and in the test view to the question.

Additional context

This problem has been reported by @wada3n in #1.

Replacing the view switcher in sets with "Study" and "Test" buttons

The current set layout uses a view switcher with 3 options: "Overview", "Study" and "Test". When "Study" or "Test" is chosen, the sidebar hides. This setup leads to some problems:

  • The sidebar hiding behavior is confusing. If you're not aware of how it works, it may come as a surprise, and you might end up struggling to get it back again.
  • It's possible to navigate directly from tests and study sessions to other parts of the app, without interrupting the current test/study session. This allows for "cheating" by peeking at the flash cards and going straight back to the test, and removes the feeling of being in a focused "session" of anything at all.
  • The way tests and study sessions are cancelled is ambiguous.

To solve this, we could e.g. make the study and test modes available through buttons that open dedicated views with back buttons:

Skjermbilde fra 2024-03-18 22-20-35

This is a cleaner navigation model that would solve the problems above and make the relationship between the different app states clearer. It would also easen the process of making the app adaptive.

'Copy' action needs a toast

Describe the bug

The 'Copy' action in the 'Export' dialog doesn't give any feedback to the user - whether content was actually copied to the clipboard as intended.

To Reproduce

  1. Edit/create a Set and select 'Export' and click 'Copy'
  2. The 'Export' dialog will immediatly close (the content of the Set has been copied to your clipboard but there is no way to know it unless you verify it)

Expected behavior

A little toast notification at the end of the second step (when the 'Export' dialog is closed) would be great to inform the user it was correctly copied to the clipboard :)
E.g.: something like "The contents/items of [Set name] have been copied to the clipboard"

Additional context

No response

Esc key should close search bar

Describe the bug

When using the search button on the main page and in the edit view (see additional context below), it's not possible to close the search field/action by pressing the Esc key - which is the usual (and most practical) way to do it. You have to click manually on the search button to deactivate search.

To Reproduce

  1. Click 'Search' in the app menu
  2. Try pressing Esc key to close the search action/field : nothing happens

Expected behavior

Esc key should terminate/escape the search action

Additional context

Capture d’écran du 2024-04-17 23-01-17
Capture d’écran du 2024-04-17 23-02-00

Cannot edit flashcard contents

Describe the bug

When editing the back of the flashcard, the front is cleared and the back is distorted.

Screencast.from.2024-04-16.23-46-10.webm

To Reproduce

  1. Create new set
  2. Click on 'Edit set'
  3. Create a new card (or edit an existing one).
  4. Modify the "back" of the card
  5. Witness the front side clear, and the back mutilated

Expected behavior

Editing one field does not change other fields, and it shows exactly what I type in the order I typed it.

Additional context

Version 0.2.1 on Arch.

Hide sidebar in initial state

Is your feature request related to a problem? Please describe.-

The initial state of the app looks awkward, with a completely empty sidebar

Describe the solution you'd like

When there are no flash card sets, the app should only display a status page with a pill button to create a set (e.g. the current status page, but without the sidebar, and with a button underneath the description instead of the + icon in the corner. See Image Viewer for reference).

Describe alternatives you've considered

  • Open the app directly into set creation on first launch: could work, but a status page serves as a welcoming introduction of the app and provides some breathing space

Additional context

Current state:

Skjermbilde fra 2024-03-08 17-16-12

Image viewer (proposed source of insipiration):

Skjermbilde fra 2024-03-08 17-21-52

New name

Is your feature request related to a problem? Please describe.

There is already a project called "Flash Cards" in the GNOME world.

Describe the solution you'd like

Rename the app. Here is a list of ideas by @wada3n in #1:

-    Memorize
-    Learner
-    Savoir
-    RectoVerso
-    FlashMemo
-    Brain Booster
-    Memoria
-    Learnify

The new name should follow the GNOME HIG.

Describe alternatives you've considered

"Flash Cards" hasn't been updated for 7 months, so maybe it is dead and there's no need for renaming.

Additional context

This problem has been reported by @wada3n in #1.
The other GNOME app "Flash Cards" is here.

Move sets and flashcards to SQLite

Is your feature request related to a problem? Please describe.

Managing large sets is slow and causes instabilities. A database would resolve these issues.

Describe the solution you'd like

  1. If sets.json exists
    • Convert to sets.db
    • Move to sets.json.bak
  2. Access sets.db with SQLite.swift

Describe alternatives you've considered

Optimization of procedures related to editing sets

Additional context

Instabilities: crashes, freezes

More colorful brand colors

Is your feature request related to a problem? Please describe.

The current brand colors are monochrome.

Describe the solution you'd like

It's recommended to use brand colors that are actually colorful. We know the guidelines are not complete yet in this regard, but we're learning as we go and this will be updated :)

Example for colors that would work here:

  • light: #9fe38c
  • dark: #49823d

image

Describe alternatives you've considered

n/a

Additional context

n/a

Ability to import and export CSV with tags included

Is your feature request related to a problem? Please describe.

yes, when importing a csv file you have to apply the tags manually

Describe the solution you'd like

Ability to import and export CSV with tags included

Describe alternatives you've considered

none

Additional context

I'm creating a set of multiplication tables and I would like to divide it into tags for different numbers

Pressing Enter should create a tag directly from the entry field

Describe the bug

Pressing the Enter key should create a Tag directly from the input field filled in by the user, without having to search for another interface button to save it.

To Reproduce

Currently you have to tap the + button once, then type and press the + button again, which is not very intuitive (and creates another tag)…

Expected behavior

When creating a Tag, you should only have to tap the + button once, then type and press Enter

Additional context

Capture d’écran du 2024-02-25 14-21-19

New name! & Add image + audio to cards

Hi @david-swift ,

I just wanted to reach out and say thank you for the FlashCards app. It's a great tool,
I really appreciate how simple and elegant the app is. It's easy to use and navigate, and it's clear that a lot of thought went into the design.

I have a few suggestions for improvement, if you're open to them.

New Name

First, there is already a gnome project called flashcards. Here are a few other names that I think would be more descriptive and memorable:

  • Memorize
  • Learner
  • Savoir
  • RectoVerso
  • FlashMemo
  • Brain Booster
  • Memoria
  • Learnify

I believe there may be other names that deserve consideration more than my simple suggestions.

Add image and audio to cards

Second, I would love to see the ability to add images to cards. This would be a great way to help people remember information, especially for visual learners.

Third, it would be great if users could record audio for their cards. This would be a great way to practice pronunciation and listening comprehension, it would be awesome if users could listen to the audio for their cards while they're flipping through them.

I know you're probably busy, but I think these changes would make the app even more useful and enjoyable.

Thanks for your time and consideration.

Remember window size

Describe the bug

Each time the app is reopened it will default to a fixed size, which is not always convenient

To Reproduce

  1. Adjust the window to a custom size
  2. Quit
  3. Re-open

Expected behavior

I would expect the app to remember its last size. Otherwise it can be frustrating when you have long Sets names which will end up being cut-off everytime you restart the app (see screenshot below)

Additional context

Capture d’écran du 2024-02-25 19-51-44

Ability to apply tags to multiple flashcards at once

Is your feature request related to a problem? Please describe.

Yes, I want to apply a tag to several flashcards but the current workflow doesn't help much

Describe the solution you'd like

a more practical and easy way to select multiple flashcards and apply a tag or several tags

Describe alternatives you've considered

none

Additional context

the way it currently works, you waste a lot of time using the mouse scroll and selecting which tag you want to apply to the chosen flashcard

Polish app icon

Describe the bug

App icons with baked-in shadows are a problem in app store UIs because you end up with double shadows when the programmatic shadows are added. See the Flathub guidelines for more detail: https://docs.flathub.org/docs/for-app-authors/appdata-guidelines/quality-guidelines

You could probably just mask the shadows in this case so only the part overlaying the bottom card is visible (this is what some other icons do). If you need help with this or any other icon design stuff, feel free to file an issue against app-icon-requests, or ask on Matrix in #appicondesign:gnome.org

To Reproduce

  • Open Flathub home/category/app page
  • There's a double shadow on the icon

Expected behavior

No double shadow :)

Additional context

No response

Ability to move Flashcards Sets up and down

Describe the solution you'd like

It would be great to be able to move flashcard Sets up and down in the left panel, so the user is able to reorder his work at any time…
e.g.: something like what NewsFlash offers for RSS feeds / feed categories (see screencast below)

Additional context

Capture.video.du.2024-02-27.08-50-24.webm

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.