Welcome to the ChatGPT Todo Plugin! This project is all about helping you manage your todos with ease and style, right within your ChatGPT conversations. Say goodbye to the hassle of switching between multiple apps to keep track of your tasks, and hello to an efficient and seamless experience! ๐
- Create, update, and delete todos for different users
- Fetch todos for a specific user
- Fetch all todos
- Health check endpoint
- OpenAPI Specification (YAML)
- Plugin manifest and logo
This project is built using the Rocket web framework for Rust, and uses an in-memory HashMap to store todos. The todos are organized per user, and you can perform the basic CRUD operations on them through various HTTP endpoints.
To get started, follow these steps:
-
Ensure you have Rust installed on your machine.
-
Clone this repository:
git clone https://github.com/yourusername/chatgpt-todo-plugin.git
-
Change to the project directory:
cd chatgpt-todo-plugin
-
Build and run the project:
just run
Now, the Todo Plugin server should be up and running at http://localhost:8000
.
To configure the allowed origins for CORS, update the AllowedOrigins::some_exact
array with your desired domains in the main()
function. The default configuration allows localhost and the OpenAI Chat domain.
The following API endpoints are available:
GET /hello
: Health checkGET /todos
: Fetch all todosGET /todos/<username>
: Fetch todos for a specific userPOST /todos/<username>
: Add a todo for a specific userDELETE /todos/<username>
: Delete a todo for a specific userGET /logo.png
: Fetch the plugin logoGET /.well-known/ai-plugin.json
: Fetch the plugin manifestGET /openapi.yaml
: Fetch the OpenAPI specification
Feel free to customize the project to fit your needs! You can:
- Add new endpoints
- Change the data storage method (e.g., use a database instead of an in-memory HashMap)
- Customize the plugin logo and manifest
- Tweak the OpenAPI specification
Happy coding and enjoy your new and improved ChatGPT Todo experience! ๐๐