This changelog follows the semantic versioning standard(https://semver.org)
-Loading animations for preview flashcard and all cards mode
- Fixed issue where updating flashcards would reset all review progress
- Fixed handling of review status preservation for existing cards
- Updated documentation and added latest videos
- Added spacing between the label (
Paragraph
) and input fields usingmarginRight
. - Introduced
marginBottom
to create spacing between the two input containers. - Added Placeholder text in both input containers.
- Ensured both input fields have equal width and alignment.
- Adjusted label spacing to maintain a consistent layout.
- Updated the input container layout for better readability and structure.
- Changed the new flashcard title from 'Choose a folder' to 'Choose a location'.
- Completed the FAQ section of the landing page
- Made user's name right aligned in left menu
- Created a Tutorials section in the documentation.
- Added Frontend page.
- Added Backend** page.
- Added Unit Tests page.
- Added Introduction page to help contributors navigate the tutorials.
- Fixed sign in errors on new landing page.
- Fixed responsive design in the landing page (by adding the useEffect that listens to screen width changes)
- Fixed dimensions and object fit issues with the landing page coffee/table image
- Extracted sign in button + related functionality to separate SignInButton component
- The email address in the landing page footer section is now constructed programatically to stop web crawlers from spamming the email (good practice)
- When the email displayed in the landing page footer is clicked, your emails open
- Sign in button component now uses flex-box and the contents are justified as "flex-start"
- Added a DevSection component as a new version for the Open Source component on the landing page (previous DeveloperSection still exists as it is used by SignIn page)
- Added a LandingPageFooter component used at the bottom of the landing page
- Added a Logos folder (componments/Logos) that contains a DolphinLogo and a DolphinTitleLogo to reduce repeated code
- Added ProjectProgress component (hidden on mobile)
- Display the 404 PageNotFound page for error URL routes, EVEN IF the user is not signed in (PageNotFound design might need rework?)
- Updated landing page to match new figma design
- If the user has no JWT, display the LandingPage instead of the old landing page located in the SignIn component
- Modified GridContainer component so it accepts optional styles
- Modified Image component so it accepts optional styles
- Extracted the Mailchimp Input component into a separate file/component so mailchimp input can be reused without using the widget
- Redirect user to LandingPage instead of SignIn page, if they are not signed in, on the MainPage component
- Removed all 4 margins from .input class
- Added community page
- Users can now save flashcards made by others, and edit their local versions
- Added new API routes to handle the above
- BREAKING:
/api/get-user
has now been renamed/api/get-user-from-jwt
- BREAKING: New route
/api/get-user
has now been added, which fetches user data from just the user ID (and no JWT token)
- Refactored Backend Tests
- Tests work separately
- Added abilty to search for flashcards
- Improved documentation
- Added mintlify documentation
- Removed deprecated endpoint, /api/calculate-card-stats, from the documentation
- Fixed issue in the card review algorithm
- Released the Alpha
- Adjusted CONTRIBUTING.md to give more detail
- Solve bug in server and added sign-in method
- Fixed bug where JWT_PRIVATE_KEY was not successfully stored in docker
- Rewrote spaced repetition algorithm to improve it and make it more flexible
- New backend methods and frontend components to allow folders to be renamed and deleted
- Added new 404 error page
- Added new ErrorBoundary component to show when there is a Frontend React error
- Added checking to see if the user is signed in for all pages
- Added ability to sign out
- Added ability to delete flashcards
- BREAKING: Changed get-flashcards so it reads flashcard data from your own flashcard data list. It now needs the user ID in the API request
- Made disabled buttons unclickable
- A valid access link is required to sign in to the frontend
- Issue where the XP, streak and heatmap were not updated when a user revised cards
- BREAKING: jwtToken (the json web token provided by create-account) is now passed instead of userID to all functions, allowing for greater security
- Flashcards can now be renamed - this includes a new backend API route and a new front end component
- Flashcards can be deleted - this includes new frontend code and a new backend component
- Also test_update_goal_status is commented out for now - the unit tests keep failing due to minor changes in generated output. I need to work out how to solve this
- The study button next to the folder now allows you to study all cards in the folder
- This is version
4.0.0
because 3.5.0 included breaking API changes, so the version should have been MAJOR
- /delete-goal now gives an error message if the goal does not exist
- Added a new view flashcards page
- Turned the edit flashcard popup into a WYSIWYG editor
- Fixed some issues in pipelines
- Implemented edit flashcard page and created components for rendering flashcards
- Fixed unit tests
- Added ability to create a folder
- Added new API endpoint to create folder
- Added unit tests for
create-folder
endpoint
- New
CreateFlashcardSetDialogue
modal to handle creating a flashcard set - Added a basic edit-flashcard page with most features and API calls unimplemented which the
CreateFlashcardSetDialogue
modal takes the user to when a flashcard is created. The page can be passednewSet
, which if true, won't request flashcard data from the server. When implementing the edit-flashcard page fully, the page should use the API to read flashcard details whennewSet
is not true - Added basic
CreateFolderDialogue
modal, which does not work yet
- Updated
CONTRIBUTING.md
to reflect the latest database changes
- Improved documentation for goals.py
- Seperated concrete database implementation classes from api methods to seperate classes in
database/handlers
- Added much more unit tests, and made the pipeline run all unit tests
- Added methods to help with unit tests like /api/get-user-stats
- Switched to Firebase Firestore instead of Firebase Database to allow referencing data, not just embedding - leading to greater scaliability
- Changed frontend to interact with the new database
- Deprecated /api/calculate-card-stats - this will now be done by the client to improve speed
- Deprecated /api/get-weekly-xp and /api/get-total-xp - the frontend calculates them at the same time, so it makes sense to use /api/get-user-stats to pull this data instead
- Added NewGoalForm file
- Refactored NewGoalPopup in frontend
- Refactored code by adding more folders to more easily manage componments
- Removed unneeded files
- Fixed workflow bug which meant environment variable was not read properly
- Solved an issue where jsonp was not downloaded
Mailchimp
andMailChimpWidget
to allow signing into the mailchimp newsletter- The new untracked file
frontend/src/api/secretKeys.js
stores theaction
part of the mailchimp form, including a secret API key. This must be supplied to use mailchimp, otherwise an error will be shown in the console - The
mailChimpApiKey
key stored infrontend/src/api/secretKeys.js
can be easily regenerated from mailchimp if forgotten - Added workflow stage to check config files are corrrect
- Added an untested workflow command to store the
MAILCHIMP_API_KEY
variable into the filefrontend/src/api/secretKeys.js
on docker image build
- Added animations throughout site
- Made the flashcards page render better on mobile
- Changed modal overlays to better render on mobile
- Added flashcards page
- Added backend method to move a flashcard set to a different folder
- The create-flashcard endpoint now must also be passed
folder
, which allows flashcards to be placed in folders. (Set to""
if the fashcard has no parent folders). This is a breaking change
- Added get_weekly_xp and get_total_xp methods to API
- Added proper responsiveness for mobile and tablet devices on dashboard page
- Edited README.md
- N/A
- Added workflow files to allow better handling of tagging and versions
- Edited bump_version.sh to give recomendations on whether software is versioned correctly, rather than actually changing it