QuizWiz is a flashcard app that utilizes the power of AI to make flashcards from documents.
- Create, edit, and combine collections (deck).
- Create cards manually or by uploading pdf files/pasting materials.
- Review cards based on SM-2 algorithm
- Practice reviewed cards using multiple choice or by writing them manually.
- Light and dark themes.
📦 Packages & Technologies
lib | |_ 📁src | |__ 📁core | |__ 📁errors <- define errors and exceptions | |__ 📁router <- generated router & route names | |__ 📁services <- dependency injection & internet connection | |__ 📁theme <- define themes & dynamic theming | |__ 📁utils <- constants (enums, strings, etc..) | |__ 📁widgets <- widgets that are used in multiple screens | |__ 📁features | |__ 📁cards |__ 📁controller <- Bloc |__ 📁data <- data retrieval and caching | |__ 📁models <- business logic | |__ 📁data_source <- works with db and api | |__ 📁repository <- combine and map data |__ 📁presentation <- screens and widgets
🏃♂️ Install & Run The App
- clone the project by running
git clone https://github.com/Dev-Salem/quizwiz.gitin your preferred directory
flutter pub get
- Get an api key from Rapid API 
- Go to
lib/features/cards/data/data_source/remote_data_source/api_client.dartand provide your key, (note: if you intend to publish the app make sure to store the key securely, for more information )
 if you want to use the official chat gpt api or other wrappers, head to
lib/core/utils/network_constants.dart and change the values of
Due to the limitations of chatgpt 3.5 turbo, the API is only able to summarize ~3 pages at a time.
Feel free to add/request features by making a pull request, or by reporting bugs.
[ ] add tests