Skip to content

Epic 2.13 Notes Generator #129

@Ahmedr275

Description

@Ahmedr275

Develop Notes Generator Tool

Description

As an educator, I want to generate concise, structured notes from various types of input so that I can save time and provide students with clear, summarized learning materials. This tool will help streamline the process of breaking down lengthy content into actionable and digestible notes.

The tool should allow users to:

  • Input content directly or upload files to generate notes.
  • Provide a focus or topic for the notes to tailor the generated output.
  • Accept file uploads (one file per prompt) in supported formats:
    • Upload: CSV, PDF, DOCX, PPT, Plain Text
    • URLs: YouTube Video, Website, Google Sheets
  • Generate structured notes based on the input, organized into bullet points, paragraphs, or tables.
  • Export notes in formats such as plain text, DOCX, or PDF.

Design

Notes Generator
Notes Generator-1
Notes Generator-2
Generated Output

Acceptance Criteria

Feature Requirements

Input Handling

  • Users can input content directly into a text box.
  • Users can upload files (one file per prompt) in the following formats:
    • Upload: CSV, PDF, DOCX, PPT, Plain Text
    • URLs: YouTube Video, Website, Google Sheets
  • Users can specify a focus or topic for the notes to tailor the output.

Notes Generation Logic

  • The tool generates notes based on:
    • Input content (text or file).
    • Specified focus or topic.
  • The notes are clear, concise, and structured into:
    • Bullet points.
    • Paragraphs.
    • Tables (optional).

Output Format

  • Users can view the generated notes in a clear, editable format.
  • Users can export the notes in the following formats:
    • Plain Text
    • DOCX
    • PDF

Technical Implementation

Folder Structure

  • Create a new folder within app/features/ named notes_generator.

Core Development

  • Implement the executor function in core.py with input parameters matching the tool's functionality, including type hints.
  • Use tools.py for abstractions and helper functions to keep core.py clean and maintainable.
  • Include a metadata.json file defining the input parameters for proper validation.
  • Utilize a prompt/ folder for AI-driven generation prompts if necessary.
  • Implement logging and error handling as per platform standards.

Unit Tests

  • Write unit tests for all functions and classes in core.py and tools.py using PyTest.
    • Tests cover:
      • Normal operation with valid inputs.
      • Edge cases and invalid inputs.
      • Error handling and exceptions.

Code Quality and Documentation

  • Ensure code follows best practices for readability and maintainability.
    • Use consistent naming conventions.
    • Include type hints for all functions and methods.
    • Avoid redundant or unnecessary code.
  • Add docstrings to all functions and classes explaining their purpose and usage.
  • Provide comments within the code where necessary to explain complex logic.

Integration and Testing

  • Ensure the feature integrates seamlessly with the existing Marvel AI platform.
    • The executor function is compatible with the router.py layer for request handling.
    • Inputs are validated as per the platform's requirements.
  • Test the entire feature from input handling to output generation.
    • Verify that users can input their data and receive the expected outputs without errors.

Sample Input and Output

Input

Content:
"Photosynthesis is a process used by plants to convert sunlight into energy. It involves the use of carbon dioxide and water to produce glucose and oxygen."

Focus:

  • Summarize the key steps of photosynthesis.

Output

Generated Notes:

  • Photosynthesis Overview:
    • Plants use sunlight to produce energy.
    • Inputs: Carbon dioxide and water.
    • Outputs: Glucose and oxygen.
  • Key Steps:
    • Sunlight absorbed by chlorophyll.
    • Water split into oxygen and hydrogen.
    • Carbon dioxide converted into glucose.

Resources

  1. Design Mockup
  2. How to Create your Marvel AI Tool
  3. Developing Educator Tools for the Marvel AI Backend: A Step-By-Step Guide (VIDEO)
  4. Marvel AI Document Loader: Multi-File Quiz Generation Explained

Please ensure that each of these criteria is fulfilled for the issue to be considered complete.

Metadata

Metadata

Assignees

No one assigned

    Labels

    good first issueGood for newcomerstype:new-featureFor proposals or implementation of entirely new features or functionalities.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions