The API provides endpoints for users to create, read, update, and delete todo tasks. It uses JWT for authentication and authorization.
The project is written in C# and uses the following technologies:
- .NET Core for the API
- Dapper for data access
- SQL Server Data Tools (SSDT) for database management
- JWT for authentication
- Azure Bicep for infrastructure as code
- GitHub Actions for CI/CD
To use the API, users need to:
- Register a new account using the
/register
endpoint. - Log in with their new account using the
/login
endpoint. This will return a token. - Use the token to authenticate their requests to the other endpoints.
Method | Endpoint | Description |
---|---|---|
POST | /api/Auth/register | Register new user |
POST | /api/Auth/login | Login user and get JWT token |
DELETE | /api/Auth/delete/{id} | Delete user account |
Method | Endpoint | Description |
---|---|---|
GET | /api/Todos | Get all todos (paginated) |
GET | /api/Todos/{todoId} | Get specific todo by ID |
POST | /api/Todos | Create new todo |
PUT | /api/Todos/{todoId} | Update todo task |
PUT | /api/Todos/{todoId}/Complete | Mark todo as complete |
DELETE | /api/Todos/{todoId} | Delete todo |
Note: All Todo endpoints require authentication using JWT token obtained from login endpoint. Include the token in the Authorization header as
Bearer <token>
.
The project uses Azure Bicep for infrastructure as code. The Bicep files define the resources needed for the project, such as the App Service and SQL Server.
Important: The Azure resources used in this project are temporary as they are part of an Azure Cloud Sandbox which was purchased temporarily. Please ensure to replace these resources with your own before deploying the project.
The project includes Azure scripts for deploying the infrastructure and the application. The scripts use the Azure CLI and PowerShell.
This API is currently being used by TaskTackler, a frontend application that demonstrates the full functionality of this API.
The project uses GitHub Actions for continuous integration and continuous deployment. The workflows include building the application, running tests, and deploying to Azure.
This project is MIT licensed.