Welcome to the xcixtask Todo API, a modern and efficient RESTful to-do API built with the Fastify framework. This API is designed to provide a seamless and user-friendly experience for managing your to-do tasks. With a focus on performance and ease of use, the xcixtask Todo API empowers you to effortlessly create, update, retrieve, and delete your to-do items, all while ensuring secure authentication and authorization. The xcixtask API is a versatile and efficient ToDo API developed using the Fastify framework. It provides a robust platform for managing tasks, enabling users to organize, create, update, retrieve, and delete tasks effortlessly. Designed with simplicity and performance in mind, this API offers a seamless experience for developers looking to integrate task management functionality into their applications.
Features: Task Management, User Authentication, Fast and Lightweight, Flexible Endpoints, Scalable and Customizable
Technologies: Fastify, @fastify/jwt, MongoDB, Swagger/OpenAPI
Usage: Personal Task Management Applications, Team Collaboration Platforms, Project Management Tools, Workflow Automation Systems
If you would like to run the API locally on your machine, follow the installation procedures below. Once set up, developers can explore the API endpoints, authenticate users, and start integrating task management functionalities seamlessly into their applications but before getting started, ensure you have the following prerequisites:
1 Node.js: Make sure Node.js is installed on your system. You can download it from nodejs.org.
2 pnpm (Perfomant Node Package Manager): Fast, disk space efficient package manager. Install pnpm globally by running npm install -g pnpm
in your terminal/command prompt and verify pnpm by running pnpm -v
. or refer to pnpm's installation guide from pnpm.io.
3 GitHub Account: Create or log in to your GitHub account to access the xcixtask API repository.
4 Docker: If you prefer running the API within a Docker container, install Docker Desktop or Docker Engine according to your operating system from docker.
Open your terminal or command prompt and run the following commands
git clone https://github.com/zhid0399123/xcixtask.git
cd xcixtask
pnpm install
Note Before starting the API remember to set up configuration. Refer to .env.example file to set up the necessary configurations.
Once the dependencies are installed and the configuration is set up, use the following command to start the API server:
pnpm start
#or
pnpm run dev
The API should now be running locally. You can access the API endpoints via http://0.0.0.0:your-port
.
The xcixtask API is deployed and accessible via HTTPS requests. To interact with the deployed API, use the following base URL to access the deployed API:
https://xcixtask.fly.dev
The deployed API requires authentication. Ensure you have necessary credential (access token) to include in your requests. To obtain valid token, you first have to register by making a POST request to https://xcixtask.fly.dev/v1/auth/register
with username and password as the request payload.
curl -X POST -H "Content-Type: application/json" \
-d '{"username":"<username>", "password":"<password>"}' \
https://xcixtask.fly.dev/v1/auth/register
After successfully registration, you must authenticate to acquire the access token.
curl -X POST -H "Content-Type: application/json" \
-d '{"username":"<username>", "password":"<password>"}' \
https://xcixtask.fly.dev/v1/auth/authenticate
Explore Endpoints: Refer to the API Documentation for detailed information on available endpoints, request parameters, and response formats.
Here's an example using cURL to create a new task on the deployed API:
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer <access token>" \
-d '{"title": "Task Title"}' \
https://https://xcixtask.fly.dev/v1/todos
We welcome contributions and suggestions to enhance the functionality and robustness of the xcixtask API. Please refer to the Contributing Guidelines to get started.
The xcixtask API is released under the MIT license. Refer to the LICENSE file for more details.