Files
math-problems-structure/README.md
2026-05-26 15:04:24 -04:00

2.1 KiB

math-problems-structure

This repository provides functions for generating all types of math problems, ranging from graphical exercises to text-based ones.

Installation

This project uses uv for dependency management. To set up the environment, run the following command in your terminal:

uv sync

Usage

Run the backend server using the following command:

uv run uvicorn main:app --reload

This will start the server, and you can access the API documentation at http://localhost:8000/docs to explore the available endpoints for generating math problems.

Each grade has its images_for_reference folder, which contains the images that were used to create the structure of the problems.

API Endpoints

The API is organized by grade level and problem type. For example, to generate a grade 1 problem that involves joining pictures with quantities, you can send a POST request to the following endpoint:

curl -X POST "http://127.0.0.1:8000/math/grade_1/join_pictures_with_quantity" \
  -H "Content-Type: application/json" \
  -d '{
    "available_pictures": [
      {"id": "picture-1", "name": "Apple", "image_path": "/images/apple.png"},
      {"id": "picture-2", "name": "Banana", "image_path": "/images/banana.png"},
      {"id": "picture-3", "name": "Car", "image_path": "/images/car.png"},
      {"id": "picture-4", "name": "Dog", "image_path": "/images/dog.png"},
      {"id": "picture-5", "name": "Elephant", "image_path": "/images/elephant.png"},
      {"id": "picture-6", "name": "Fish", "image_path": "/images/fish.png"},
      {"id": "picture-7", "name": "Grape", "image_path": "/images/grape.png"},
      {"id": "picture-8", "name": "Hat", "image_path": "/images/hat.png"},
      {"id": "picture-9", "name": "Ice Cream", "image_path": "/images/ice-cream.png"},
      {"id": "picture-10", "name": "Juice", "image_path": "/images/juice.png"}
    ],
    "container_count_per_side": 5,
    "min_quantity": 1,
    "max_quantity": 10,
    "seed": 1
  }'

To see more examples, look at this file.

Test

To run the tests, use the following command:

uv run python -m unittest