{"id":26077442,"url":"https://github.com/tgrifoni/task-management-api","last_synced_at":"2026-02-13T09:01:03.470Z","repository":{"id":281369140,"uuid":"945051864","full_name":"tgrifoni/task-management-api","owner":"tgrifoni","description":"This is a .NET 9 API project for a task management system. Read the README for more information.","archived":false,"fork":false,"pushed_at":"2025-03-08T15:42:14.000Z","size":32,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-08T16:29:02.542Z","etag":null,"topics":["api","backend","cqrs","csharp","database","dotnet","openapi","rest","rest-api","sqlite","swagger","xunit"],"latest_commit_sha":null,"homepage":"","language":"C#","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/tgrifoni.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}},"created_at":"2025-03-08T14:49:17.000Z","updated_at":"2025-03-08T15:52:49.000Z","dependencies_parsed_at":"2025-03-08T16:39:05.441Z","dependency_job_id":null,"html_url":"https://github.com/tgrifoni/task-management-api","commit_stats":null,"previous_names":["tgrifoni/task-management-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tgrifoni%2Ftask-management-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tgrifoni%2Ftask-management-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tgrifoni%2Ftask-management-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tgrifoni%2Ftask-management-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tgrifoni","download_url":"https://codeload.github.com/tgrifoni/task-management-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242635367,"owners_count":20161438,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["api","backend","cqrs","csharp","database","dotnet","openapi","rest","rest-api","sqlite","swagger","xunit"],"created_at":"2025-03-09T03:04:29.030Z","updated_at":"2026-02-13T09:01:03.337Z","avatar_url":"https://github.com/tgrifoni.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Task Management Api\n\n## Introduction\nThis project is a .NET 9 API for a task management system with a specific set of requirements.\nThe system allows users to create, update, delete, and retrieve tasks.\nIt includes custom middleware that logs every API request, including method type and endpoint, into a file.\nWhen a task with \"High\" priority is created or updated, an event is triggered that logs it separately as a critical update.\nThe project is secured using JWT authentication, designed in a very basic way for demonstration purposes only, and not production-ready. \n\nUnit and integration tests are implemented using xUnit and Moq.\nThe system uses SQLite for data persistence, creating/initialising a file when the API starts and deleting it upon application shutdown.\nAdditionally, the project utilizes AutoMapper, MediatR, Dapper, and OpenAPI/Swagger to enhance functionality.\n\n## Prerequisites\nBefore setting up the project, ensure you have the following installed:\n- **.NET 9 SDK**: You can download and install it from the [official .NET website](https://dotnet.microsoft.com/download/dotnet/9.0).\n\nIf you want to follow [Option 1](#option-1-cloning-the-repository), you'll need the following installed:\n- **Git**: You need Git installed to clone the repository. You can download it from [here](https://git-scm.com/downloads).\n\n## Setup Instructions\n### Step 1: Installation\n#### Option 1: Cloning the repository\nIf you prefer to clone the repository, follow these steps:\n\n1. **Clone the repository**\n    Open a terminal or command prompt and run the following command:\n    ```bash\n    git clone https://github.com/tgrifoni/task-management-api.git\n    ```\n\n2. **Navigate to the project directory**\n    Once the repository is cloned, navigate to the project directory:\n    ```bash\n    cd task-management-api\n    ```\n\n### Option 2: Downloading the files directly\nIf you prefer to download the files directly, follow these steps:\n\n1. **Download the files**\n    Download the project files from the repository in a ZIP format and extract them to a directory on your local machine.\n\n2. **Navigate to the project directory**\n    Open a terminal or command prompt and navigate to the extracted project directory:\n    ```bash\n    cd path-to-extracted-directory/task-management-api\n    ```\n    Replace `path-to-extracted-directory` with the actual path where you extracted the files.\n\n### Step 2: Install .NET SDK (if not already installed)\nIf you don't have the .NET 9 SDK installed, download and install it from the [official .NET website](https://dotnet.microsoft.com/download/dotnet/9.0). Follow the installation instructions provided on the website.\n\n### Step 3: Build the project\nNow, build the project to restore dependencies and compile the code.\nRun the following command in the terminal:\n```bash\ndotnet build\n```\n\n## Running the project\n### Option 1: Using Command Line Interface (CLI)\nTo run the project using the CLI, execute the following command in the project directory:\n```bash\ndotnet run --project .\\TaskManagement.Api\\TaskManagement.Api.csproj\n```\nThe API will start, and you should see output indicating that it's running on a specific URL, typically `http://localhost:5000` or similar.\n\n### Option 2: Using an Integrated Development Environment (IDE)\nIf you prefer using an IDE such as Visual Studio or Visual Studio Code, follow these steps:\n\n1. **Open the project**: Open your preferred IDE and load the project by selecting the `TaskManagement.sln` solution.\n2. **Build the solution**: Use the build option in your IDE to compile the project.\n3. **Run the project**: Use the run/debug option in your IDE to start the project. The API will start running on a local server, typically accessible at `http://localhost:5000` or a similar URL.\n\n### General guidelines\n- You can also navigate to the Swagger page by adding `/swagger` to the end of the URL.\n- To log in, you can use the `admin` username and `password` password to generate an access token. Any other combination will result in an `401 Unauthorized` response.\n- The access token is set to expire in 120 seconds (2 minutes). You can change it by editing the amount of seconds in the `appsettings.json` file, under `Jwt__SecondsToExpire`.\n\n## Troubleshooting\nIf you encounter any issues during setup or running the project, check the following:\n- Ensure that you have the correct version of the .NET SDK installed.\n- Verify that all dependencies are properly restored by running `dotnet restore`.\n- Check the terminal or IDE output for any error messages and follow the suggestions provided.\n\nFor further assistance, feel free to open an issue in the GitHub repository or contact me.\n\n## Conclusion\nThank you for taking the time to set up and run this project.\nI hope this README has been helpful.\nHappy coding !","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftgrifoni%2Ftask-management-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftgrifoni%2Ftask-management-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftgrifoni%2Ftask-management-api/lists"}