{"id":26400540,"url":"https://github.com/oleksiym/task-api","last_synced_at":"2026-05-10T16:14:08.016Z","repository":{"id":282756597,"uuid":"949439460","full_name":"OleksiyM/task-api","owner":"OleksiyM","description":"A RESTful API for task management with AI-powered task description generation using various AI models","archived":false,"fork":false,"pushed_at":"2025-03-26T21:20:43.000Z","size":24,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-26T21:23:18.028Z","etag":null,"topics":["anthropic-claude","gemini","go","golang","ollama","rest-api","tasks-list"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OleksiyM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-16T13:21:50.000Z","updated_at":"2025-03-26T21:20:46.000Z","dependencies_parsed_at":"2025-03-16T19:36:52.714Z","dependency_job_id":"e7b014c6-ecf0-435c-bade-9b43a7200926","html_url":"https://github.com/OleksiyM/task-api","commit_stats":null,"previous_names":["oleksiym/task-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/OleksiyM/task-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OleksiyM%2Ftask-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OleksiyM%2Ftask-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OleksiyM%2Ftask-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OleksiyM%2Ftask-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OleksiyM","download_url":"https://codeload.github.com/OleksiyM/task-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OleksiyM%2Ftask-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273124124,"owners_count":25049963,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-01T02:00:09.058Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anthropic-claude","gemini","go","golang","ollama","rest-api","tasks-list"],"created_at":"2025-03-17T14:26:43.195Z","updated_at":"2026-05-10T16:14:07.950Z","avatar_url":"https://github.com/OleksiyM.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"- [Task API](#task-api)\n  - [Features](#features)\n  - [Prerequisites](#prerequisites)\n  - [Installation \\\u0026 Setup](#installation--setup)\n    - [Using Docker (Recommended)](#using-docker-recommended)\n    - [Local Development](#local-development)\n  - [Testing with the Simple GUI](#testing-with-the-simple-gui)\n  - [API Endpoints](#api-endpoints)\n  - [Usage Examples](#usage-examples)\n    - [Create a task with Gemini description](#create-a-task-with-gemini-description)\n    - [Create a task with Ollama description](#create-a-task-with-ollama-description)\n    - [Get all tasks](#get-all-tasks)\n    - [Get a specific task](#get-a-specific-task)\n    - [Update a task](#update-a-task)\n    - [Delete a task](#delete-a-task)\n  - [Configuration](#configuration)\n    - [Claude integration](#claude-integration)\n    - [Gemini integration](#gemini-integration)\n    - [Ollama integration](#ollama-integration)\n    - [Docker volumes (persist data)](#docker-volumes-persist-data)\n  - [Notes](#notes)\n  - [License](#license)\n\n# Task API\n\nA RESTful API for task management with AI-powered task description generation using various AI models via [Ollama](https://ollama.ai/), [Anthropic](https://www.anthropic.com/), and [Google Gemini](https://developers.google.com/chat/gemini).\n\n## Features\n\n- Create, read, update, and delete tasks\n- Generate task descriptions automatically using:\n  - Anthropic's Claude API\n  - Ollama (local AI model)\n  - Google's Gemini API\n- SQLite database for persistence\n- Dockerized deployment\n\n## Prerequisites\n\n- Go 1.24+ (for local development)\n- Docker and Docker Compose (for containerized deployment)\n- Ollama running locally (for Ollama integration)\n- API keys for Anthropic Claude and/or Google Gemini (optional)\n\n## Installation \u0026 Setup\n\n### Using Docker (Recommended)\n\n1. Clone the repository\n2. Set your Gemini API key in the `.env` file or through environment variables\n   - Create a `.env` file with `GEMINI_API_KEY=your-key-here` (see `.env.example`)\n   - This is required for the Gemini integration to work in Docker\n3. Run with Docker Compose:\n\n```bash\ndocker-compose up --build\n```\n\n### Local Development\n\n1. Install Go from the [site](https://golang.org/dl/)\n2. Clone the repository\n3. Install dependencies:\n\n```bash\ngo mod download\n```\n\n4. Set environment variables:\n\n**Linux/Mac**\n\n```bash\nexport GEMINI_API_KEY=\"your-api-key-here\"\n```\n\n**Windows**\n\n```bash\nset GEMINI_API_KEY=your-api-key-here\n```\n\n5. Run the application:\n\n```bash\ngo run main.go\n```\n\n## Testing with the Simple GUI\n\nFor quick testing, you can use the included `simple-gui.html` file:\n\n1. Start the Task API using either Docker or local development method\n2. Open the `simple-gui.html` file in any web browser\n3. The GUI will allow you to perform all operations (create, read, update, delete tasks)\n4. No installation is needed - simply open the HTML file from any local location\n\n## API Endpoints\n\n| Method | Endpoint        | Description                              |\n| ------ | --------------- | ---------------------------------------- |\n| GET    | `/tasks`        | Get all tasks                            |\n| GET    | `/tasks/:id`    | Get a specific task                      |\n| POST   | `/tasks`        | Create a task with Claude AI description |\n| POST   | `/tasks/ollama` | Create a task with Ollama AI description |\n| POST   | `/tasks/gemini` | Create a task with Gemini AI description |\n| PUT    | `/tasks/:id`    | Update a task                            |\n| DELETE | `/tasks/:id`    | Delete a task                            |\n\n## Usage Examples\n\n### Create a task with Gemini description\n\n```bash\ncurl -X POST http://localhost:8080/tasks/gemini -H \"Content-Type: application/json\" -d '{\"title\": \"Write a report\"}'\n```\n\n### Create a task with Ollama description\n\n```bash\ncurl -X POST http://localhost:8080/tasks/ollama -H \"Content-Type: application/json\" -d '{\"title\": \"Prepare presentation\"}'\n```\n\n### Get all tasks\n\n```bash\ncurl http://localhost:8080/tasks\n```\n\n### Get a specific task\n\n```bash\ncurl http://localhost:8080/tasks/1\n```\n\n### Update a task\n\n```bash\ncurl -X PUT http://localhost:8080/tasks/1 -H \"Content-Type: application/json\" -d '{\"title\": \"Updated title\", \"description\": \"Updated description\"}'\n```\n\n### Delete a task\n\n```bash\ncurl -X DELETE http://localhost:8080/tasks/1\n```\n\n## Configuration\n\n### Claude integration\n\nFor Claude integration, update the API key in the `createTask` function in `main.go`:\n\n```go\nSetHeader(\"Authorization\", \"Bearer YOUR_ANTHROPIC_API_KEY\").\n```\n\n### Gemini integration\n\nFor Gemini integration, set the `GEMINI_API_KEY` environment variable.\n\n### Ollama integration\n\nFor Ollama integration, ensure Ollama is running locally on port 11434.\n\n### Docker volumes (persist data)\n\nYou can uncomment those lines\n\n```\n    #volumes:\n    #  - ./tasks.db:/app/tasks.db\n```\n\nin the `docker-compose.yml` file and will be able to save data locally from the container using Docker volumes and persist data across container restarts.\n\n## Notes\n\n- For Claude API integration, you need to replace `YOUR_ANTHROPIC_API_KEY` with a valid API key\n- The database is stored in `tasks.db` in the application directory\n- CORS is enabled for all origins for easier frontend integration\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foleksiym%2Ftask-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foleksiym%2Ftask-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foleksiym%2Ftask-api/lists"}