{"id":26555324,"url":"https://github.com/fialex1212/fastapi-react-todo","last_synced_at":"2026-06-13T03:08:05.300Z","repository":{"id":257159479,"uuid":"850505061","full_name":"Fialex1212/fastapi-react-todo","owner":"Fialex1212","description":"✅✅✅ | A simple Todo application using React(vite) and FastAPI for task management. It allows you to add, edit, and delete tasks, as well as mark them as completed.","archived":false,"fork":false,"pushed_at":"2025-05-15T20:59:00.000Z","size":255,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-03T14:32:48.740Z","etag":null,"topics":["fastapi","react","sqlite","vite","zustand"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Fialex1212.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-09-01T00:54:07.000Z","updated_at":"2025-05-15T21:10:11.000Z","dependencies_parsed_at":"2024-09-15T04:33:22.702Z","dependency_job_id":"18a2521c-87b8-4ccc-b84f-64c583dd9bc5","html_url":"https://github.com/Fialex1212/fastapi-react-todo","commit_stats":null,"previous_names":["fialex1212/react-fastapi-todo","fialex1212/fastapi-react-todo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Fialex1212/fastapi-react-todo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fialex1212%2Ffastapi-react-todo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fialex1212%2Ffastapi-react-todo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fialex1212%2Ffastapi-react-todo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fialex1212%2Ffastapi-react-todo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fialex1212","download_url":"https://codeload.github.com/Fialex1212/fastapi-react-todo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fialex1212%2Ffastapi-react-todo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34270431,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"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":["fastapi","react","sqlite","vite","zustand"],"created_at":"2025-03-22T10:39:56.687Z","updated_at":"2026-06-13T03:08:05.278Z","avatar_url":"https://github.com/Fialex1212.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# **React \u0026 Django Todo App**\n\n## Description\nA simple Todo application using **React on Vite** and **Fastapi** for todo-app. It allows you to add, edit, and delete tasks, as well as mark them as completed.\n\n## **Features**\n- Adding new tasks.\n- Editing existing tasks.\n- Deleting tasks.\n- Marking tasks as completed.\n\n## **Tech Stack:**\n  - Frontend: React, Vite.js, axios, zustand, react-hot-toast\n  - Backend: Fastapi, alembic, aiosqlite\n  - DevOps: Docker, docker-compose\n---\n\n## **Installation**\n\nClone my project\n```cmd\n    git clone https://github.com/Fialex1212/react-fastapi-todo.git\n```\n\n### **Frontend**\nRun the frontend\n\n```bash\n  cd frontend\n  cd todo\n  npm install\n  npm run dev\n```\n\n### **Backend**\nRun the backend\n\n```cmd\n  cd backend/src\n  python -m venv venv\n  .\\venv\\scripts\\activate\n  pip install requirements.txt\n  uvicorn main:app\n```\n\n### **Run using Docker**\nRun the docker-compose\n\n```cmd\n  docker-compose up --build\n```\n\nBackend by this path - http://127.0.0.1:8000/\n\nFrontend by this path - http://localhost:4173/\n\n## **API Reference**\n\n### Create a Todo\n\n```http\nPOST /api/todo/create\n```\n\n**Description:** Create a new todo task.\n\n#### Request Body\n\n| Parameter     | Type         | Description                |\n| :------------ | :----------- | :------------------------- |\n| `title`       | `string`     | **Required**. Title of the task |\n| `description` | `string`     | Optional. Description of the task |\n\n#### Example Request\n```json\n{\n  \"title\": \"Create new app\",\n  \"description\": \"Create new app with cool functional\"\n}\n```\n\n#### Example Response\n```json\n{\n  \"title\": \"Create new app\",\n  \"description\": \"Create new app with cool functional\",\n  \"is_completed\": false,\n  \"id\": \"a46283a7-368d-4725-a4e2-dcf6698bc4a8\",\n  \"created_at\": \"2024-09-26T15:40:37.044667\",\n  \"updated_at\": \"2024-09-26T15:40:37.044667\"\n}\n```\n\n---\n\n### Get a Todo by ID\n\n```http\nGET /api/todo/get/{todo_id}\n```\n\n**Description:** Retrieve a specific todo task by its ID.\n\n#### Path Parameter\n\n| Parameter  | Type     | Description           |\n| :--------- | :------- | :-------------------- |\n| `todo_id`  | `string` | **Required**. Task ID |\n\n#### Example Response\n```json\n{\n  \"title\": \"Title\",\n  \"description\": \"Description\",\n  \"is_completed\": false,\n  \"id\": \"a46283a7-368d-4725-a4e2-dcf6698bc4a8\",\n  \"created_at\": \"2024-09-26T15:40:37.044667\",\n  \"updated_at\": \"2024-09-26T15:40:37.044667\"\n}\n```\n\n---\n\n### Get List of Todos\n\n```http\nGET /api/todo/list?skip={skip}\u0026limit={limit}\n```\n\n**Description:** Retrieve a list of todo tasks with optional pagination.\n\n#### Query Parameters\n\n| Parameter | Type | Description                           |\n| :-------- | :--- | :------------------------------------ |\n| `skip`    | `int` | Number of items to skip (default: 0) |\n| `limit`   | `int` | Max number of items to return (default: 100) |\n\n#### Example Response\n```json\n[\n  {\n    \"title\": \"Title\",\n    \"description\": \"Description\",\n    \"is_completed\": false,\n    \"id\": \"a2dc9498-1da2-4106-8dd5-8093028912ae\",\n    \"created_at\": \"2024-09-26T15:40:37.044667\",\n    \"updated_at\": \"2024-09-26T15:40:37.044667\"\n  },\n  {\n    \"title\": \"Title\",\n    \"description\": \"Description\",\n    \"is_completed\": false,\n    \"id\": \"a46283a7-368d-4725-a4e2-dcf6698bc4a8\",\n    \"created_at\": \"2024-09-26T15:40:37.044667\",\n    \"updated_at\": \"2024-09-26T15:40:37.044667\"\n  }\n]\n```\n\n---\n\n### Update a Todo\n\n```http\nPUT /api/todo/update/{todo_id}\n```\n\n**Description:** Update a specific todo task.\n\n#### Path Parameter\n\n| Parameter  | Type     | Description           |\n| :--------- | :------- | :-------------------- |\n| `todo_id`  | `string` | **Required**. Task ID |\n\n#### Request Body\n\n| Parameter      | Type      | Description                      |\n| :------------- | :-------- | :------------------------------- |\n| `title`        | `string`  | Optional. New title of the task  |\n| `description`  | `string`  | Optional. New description        |\n| `is_completed` | `boolean` | Optional. Mark as completed      |\n\n#### Example Request\n```json\n{\n  \"title\": \"Updated title\",\n  \"description\": \"Updated description\",\n  \"is_completed\": true\n}\n```\n\n#### Example Response\n```json\n{\n  \"title\": \"Updated title\",\n  \"description\": \"Updated description\",\n  \"is_completed\": true,\n  \"id\": \"a46283a7-368d-4725-a4e2-dcf6698bc4a8\",\n  \"created_at\": \"2024-09-26T15:40:37.044667\",\n  \"updated_at\": \"2024-09-26T15:45:37.044667\"\n}\n```\n\n---\n\n### Delete a Todo\n\n```http\nDELETE /api/todo/delete/{todo_id}\n```\n\n**Description:** Delete a specific todo task.\n\n#### Path Parameter\n\n| Parameter  | Type     | Description           |\n| :--------- | :------- | :-------------------- |\n| `todo_id`  | `string` | **Required**. Task ID |\n\n#### Example Response\n```json\n{\n  \"title\": \"Title\",\n  \"description\": \"Description\",\n  \"is_completed\": false,\n  \"id\": \"a46283a7-368d-4725-a4e2-dcf6698bc4a8\",\n  \"created_at\": \"2024-09-26T15:40:37.044667\",\n  \"updated_at\": \"2024-09-26T15:40:37.044667\"\n}\n```\n\n## Screenshots\n\n![Desktop app Screenshot](./images/1.jpg)\n\n\n## Authors\n\n- [@Aleks Seriakov](https://github.com/Fialex1212)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffialex1212%2Ffastapi-react-todo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffialex1212%2Ffastapi-react-todo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffialex1212%2Ffastapi-react-todo/lists"}