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.
- |
Description | Package |
---|---|
Architecture | Bloc Pattern |
State Management | flutter_bloc |
Dependency Injection | get_it |
Theming | flex_color_scheme |
Internet Connection | connectivity_plus |
Functional Programming | dartz |
database | Isar |
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
- clone the project by running
git clone https://github.com/Dev-Salem/quizwiz.git
in your preferred directory - Run
flutter pub get
- Get an api key from ChatPDF
- create .env file in the root directory and assign the key to
chatPdfApi
- Run
flutter_run
Feel free to add/request features by making a pull request, or by reporting bugs.
[✅] add widget tests
[⏳] migrate to Go_Router
[✅] use a new API (e.g ChatPDF)
MIT License