Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Epic 2.13 Notes Generator #129

Open
38 tasks
Ahmedr275 opened this issue Dec 4, 2024 · 27 comments
Open
38 tasks

Epic 2.13 Notes Generator #129

Ahmedr275 opened this issue Dec 4, 2024 · 27 comments
Labels
good first issue Good for newcomers type:new-feature For proposals or implementation of entirely new features or functionalities.

Comments

@Ahmedr275
Copy link
Contributor

Ahmedr275 commented Dec 4, 2024

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.

@Ahmedr275 Ahmedr275 added good first issue Good for newcomers type:new-feature For proposals or implementation of entirely new features or functionalities. labels Dec 4, 2024
@Ahmedr275 Ahmedr275 moved this to Todo in Issues board Dec 4, 2024
@Haryohmi
Copy link

I found this project interesting and I have started working on it. Feel free to reach out for collaboration, questions or comments.

@AaronSosaRamos
Copy link
Contributor

Hey @Haryohmi, you can definitely pick up the issue and work on it. Our process for issue assignment is focused on first to PR so multiple contributors can work on an issue and can bring in their own improvements/ideas to the issue as well. Read more here

@Haryohmi
Copy link

@AaronSosaRamos Thank you!

@AaronSosaRamos
Copy link
Contributor

#130 Needs to be checked against acceptance criteria @yunusj

@deddecco
Copy link

@Haryohmi do you want to work together?

@deddecco
Copy link

@Haryohmi I just onboarded a few days ago and found this under good first issues; I have almost no .py experience (almost all Java), so if you want to, we could work on this together, and I think it would be a great learning/collab opportunity!

@Haryohmi
Copy link

@Haryohmi I just onboarded a few days ago and found this under good first issues; I have almost no .py experience (almost all Java), so if you want to, we could work on this together, and I think it would be a great learning/collab opportunity!

Oh greet!

It's nice to have you on here. Sure we can collab and work together on it. Though, I've started working on it, nonetheless, it'll be a great opportunity to collaborate.

@SehajpSingh
Copy link

@Haryohmi I also onboarded and got only java experience, would love to collaborate since its the good first issue.
Thanks.

@AaronSosaRamos
Copy link
Contributor

Hey @SehajpSingh, I also have foundations about Java and I transitioned to Python. If you want, I can give you more guidance on that.

@Haryohmi
Copy link

Haryohmi commented Jan 3, 2025

@SehajpSingh

It's nice to know you have experience in Java. Nonetheless, I'm happy to collaborate with you for learning and development.

@HSN51
Copy link

HSN51 commented Jan 7, 2025

@Haryohmi I just onboarded a few days ago and got python experience, would love to collaborate since its the good first issue.
Thanks!

@Haryohmi
Copy link

Haryohmi commented Jan 7, 2025

@HSN51 You're most welcome, I am happy to collaborate and work with you. The you started anything yet?

@HSN51
Copy link

HSN51 commented Jan 7, 2025

@Haryohmi No, I haven't started yet.

@Haryohmi
Copy link

Haryohmi commented Jan 7, 2025

@HSN51 That's alright. Feel free to reach out to me anytime.

@HSN51
Copy link

HSN51 commented Jan 7, 2025

@Haryohmi My first experience contributing to open source projects

@HSN51
Copy link

HSN51 commented Jan 7, 2025

@Haryohmi Thanks

@AaronSosaRamos
Copy link
Contributor

Hey @HSN51, we are happy to have you here. I am the AI Lab Manager, so you can seek for more guidance or info. whenever you want 💯

@AbhinavKumar333
Copy link

Hi @AaronSosaRamos, I onboarded last week, wanted to get started with the tasks here, is this feature completed, can we connect to get more idea about the tasks here?

@aaryansingh-dev
Copy link

Hi @AaronSosaRamos, I joined last week. If this work is still in progress can we connect?

@aaryansingh-dev
Copy link

Hi @Haryohmi , I joined the last week, and am looking for some guidance to start the work around here. If possible can we connect and I can collaborate with you, if you are working on this task?

@noushinm
Copy link

Hi @AaronSosaRamos, I’m also interested in working on this issue and looking for some guidance.

@noushinm
Copy link

Hi @Haryohmi, I have some experience with Python and would like the opportunity to connect and collaborate with you.

@patteesolomon
Copy link

Ok time to do this end. Anyone with this thing already built?

@Haryohmi
Copy link

Hello everyone, Please free to reach out to me or @AaronSosaRamos for any direct conversation, support or help regarding this project.

You can check the progress of the project in my repo, branch name is "note-generator-app"

@benjamintxn
Copy link

Hello everyone, Please free to reach out to me or @AaronSosaRamos for any direct conversation, support or help regarding this project.

You can check the progress of the project in my repo, branch name is "note-generator-app"

Hi,

Reaching out as I would like to work on this issue as well.

@chang4oh
Copy link

chang4oh commented Jan 20, 2025

@AaronSosaRamos @Haryohmi
Hello, this is my first time on doing pull request and I am working on this notes generator since few days back and have done the steps for getting started, authentication setup, and docker and made baseline for marvel ai tool. I need guidance on testing and running the notes generator.

@talyakeysan
Copy link

Hello everyone, Please free to reach out to me or @AaronSosaRamos for any direct conversation, support or help regarding this project.

You can check the progress of the project in my repo, branch name is "note-generator-app"

Hello, I also would like to contribute and be a part of this project to help and learn more about Gen AI. I have experience with Python and Github projects but its my first time doing open source and pulling requests etc. so I would like to get some guidance abt the process, which part to contribute etc. as well. Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers type:new-feature For proposals or implementation of entirely new features or functionalities.
Projects
Status: Todo
Development

No branches or pull requests