This project is a smart flashcards learning application designed to help users study more efficiently. Traditional studying methods often require a lot of time and lead to fast forgetting, so the system uses artificial intelligence and spaced repetition to improve memory retention and learning speed. The main idea is to convert study material into question and answer flashcards automatically, then help users review them at the right time while focusing more on weak areas. The application is built using Flutter for the frontend, where users can enter text, upload files such as PDFs and slides, view flashcards, and take quizzes. The app uses Provider for state management to handle data and user interactions smoothly. The backend is built using FastAPI. It receives text or uploaded files from the user, extracts content from PDFs and PowerPoint slides, and prepares the text to be processed by the AI model. The system integrates with an AI model through the Gemini API, which generates flashcards by converting the input text into structured question and answer pairs while maintaining the same language as the original content. All generated flashcards are stored locally on the device using Hive. Each card contains the question, answer, review timing, and difficulty level, allowing the app to work efficiently even offline. The system works by taking user input, sending it to the backend, extracting and cleaning the text, generating flashcards using AI, and returning them to the app. The app then stores the flashcards and allows the user to study them. As the user interacts with the cards, the system tracks performance and updates difficulty levels. The application includes features such as automatic flashcard generation, support for text and file inputs, spaced repetition, quiz mode, weak area tracking based on difficulty, deck organization, and the ability to edit or delete flashcards. The spaced repetition system adjusts how often flashcards appear based on user performance. Cards answered correctly appear less frequently, while cards answered incorrectly appear more often, helping the user focus on weaker areas. This project solves the problem of time-consuming manual flashcard creation and inefficient study methods. It improves memory retention, saves time, and provides a more personalized learning experience. Overall, the project demonstrates how artificial intelligence can be combined with learning techniques to create a simple, effective, and intelligent study tool that helps users learn faster and retain information better.
مشاريع مقترحة