graphql-task-management-api
Developer Toolshttps://github.com/kraftdrew/graphql-task-management-api
The Lush Task Management API is a GraphQL-based task management system built with Python, using Strawberry for GraphQL, Pydantic for data validation, SQLAlchemy for database interactions, and FastAPI for the web framework. It supports async operations and is designed for project-based task management with role-based access control. Key features include task creation, filtering, sorting, and pagination with a maximum page size of 100. The API enforces project membership for authorization, allowing members to view and modify tasks while restricting deletion to project owners. It uses UUIDs for public identifiers, supports partial updates with last-write-wins persistence, and includes request-scoped DataLoaders for efficient nested data resolution. To get started, developers can run the application with Docker using `make run-dev` for a development setup with demo data or `make run-prod` for a production-like environment. The development setup includes pre-seeded users and projects, with GraphiQL available at `http://localhost:8000/graphql`. For local development without Docker, the README provides steps to set up the environment, run migrations, seed data, and start the server. Tests can be executed with `make test`, which sets up a disposable in-memory PostgreSQL database.
About this project
The Lush Task Management API is a GraphQL-based task management system built with Python, using Strawberry for GraphQL, Pydantic for data validation, SQLAlchemy for database interactions, and FastAPI for the web framework. It supports async operations and is designed for project-based task management with role-based access control. Key features include task creation, filtering, sorting, and pagination with a maximum page size of 100. The API enforces project membership for authorization, allowing members to view and modify tasks while restricting deletion to project owners. It uses UUIDs for public identifiers, supports partial updates with last-write-wins persistence, and includes request-scoped DataLoaders for efficient nested data resolution. To get started, developers can run the application with Docker using `make run-dev` for a development setup with demo data or `make run-prod` for a production-like environment. The development setup includes pre-seeded users and projects, with GraphiQL available at `http://localhost:8000/graphql`. For local development without Docker, the README provides steps to set up the environment, run migrations, seed data, and start the server. Tests can be executed with `make test`, which sets up a disposable in-memory PostgreSQL database.
This is a GitHub repository (source code), not a hosted HTTP API endpoint.
From the docs
Snippets taken from the repository README when available.
make run-dev