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
DescriptionPackageArchitectureBloc PatternState Managementflutter_blocDependency Injectionget_itThemingflex_color_schemeInternet Connectionconnectivity_plusFunctional ProgrammingdartzdatabaseIsar
🩻 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