Skip to main content

Features and Requirements

Functional Requirements:

  1. User Authentication: Users should be able to sign up, log in, and log out securely.

  2. Flashcard Creation: Users can create, edit, and delete their flashcards with terms and definitions.

  3. Customization: Users can set study dates, and mark difficulty levels.

  4. Commenting: Users can add comments on a friend’s flashcard set.

  5. Quizzes/Tests: Users can create and assign quizzes or tests based on their flashcards.

  6. Social Interaction: Users can follow another users, view their' flashcards, quizzes and their total quiz attempts and average quiz score.

  7. Search and Filter: Users can filter flashcards based on difficulty.

  8. AI Features: Users have the capability to leverage artificial intelligence for the generating flashcards and quiz questions. This can be accomplished through inputting specific criteria or by uploading images.

Non-functional Requirements:

  1. Responsiveness: The application should be accessible and usable on various devices, including mobile phones, tablets, and desktops.

  2. Performance: Actions like loading flashcards, making quizzes, or adding friends should have minimal lag time.

  3. Security: User data, especially passwords, should be encrypted. The platform must also have defenses against common vulnerabilities like SQL injection or cross-site scripting.

  4. Scalability: The system should be capable of handling a large number of users and flashcards without a degradation in performance.

  5. Usability: The interface should be intuitive and user-friendly, allowing new users to easily understand and navigate the platform.

  6. Maintainability: The codebase should be well-structured, commented, and organized to allow for easy updates and bug fixes.