A flashcard app that utilizes the power of AI to make flashcards from documents
Description
QuizWiz is a flashcard app that utilizes the power of AI to make flashcards from documents.
? Features
- 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.
? Screenshots
– |
? Packages & Technologies
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 |
? Project Structure
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.git
in your preferred directory - Run
flutter pub get
- Get an api key from Rapid API [1]
- Go to
lib/features/cards/data/data_source/remote_data_source/api_client.dart
and provide your key, (note: if you intend to publish the app make sure to store the key securely, for more information ) - Run
flutter_run
[1] 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 gptBaseUrl
, gptHeaderHost
?️ Limitations
Due to the limitations of chatgpt 3.5 turbo, the API is only able to summarize ~3 pages at a time.
? Contribution
Feel free to add/request features by making a pull request, or by reporting bugs.
?️ Roadmap
[ ] add tests
?️ License
MIT License