{"id":25605941,"url":"https://github.com/mawalou14/todomanagementapi","last_synced_at":"2026-06-20T19:32:32.716Z","repository":{"id":247435637,"uuid":"825842661","full_name":"mawalou14/TodoManagementApi","owner":"mawalou14","description":"This repository contains a .NET Core web API project that provides user authentication and todo management functionalities. It includes features such as user registration, login, token-based authentication, CRUD operations for todos, and user profile management.","archived":false,"fork":false,"pushed_at":"2024-07-20T20:50:22.000Z","size":64,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-21T18:33:03.479Z","etag":null,"topics":["api","authentication","dotnet8","todo-api"],"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/mawalou14.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":"2024-07-08T15:52:43.000Z","updated_at":"2024-07-26T09:26:33.000Z","dependencies_parsed_at":"2024-07-11T16:16:24.723Z","dependency_job_id":"2899d396-1e40-4f3e-9a32-e3ee6ee1a23b","html_url":"https://github.com/mawalou14/TodoManagementApi","commit_stats":null,"previous_names":["mawalou14/todomanagementapi"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mawalou14/TodoManagementApi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mawalou14%2FTodoManagementApi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mawalou14%2FTodoManagementApi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mawalou14%2FTodoManagementApi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mawalou14%2FTodoManagementApi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mawalou14","download_url":"https://codeload.github.com/mawalou14/TodoManagementApi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mawalou14%2FTodoManagementApi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34583589,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-20T02:00:06.407Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","authentication","dotnet8","todo-api"],"created_at":"2025-02-21T18:26:33.508Z","updated_at":"2026-06-20T19:32:32.693Z","avatar_url":"https://github.com/mawalou14.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Todo Management API\n\nThe Todo Management API is a .NET Core web application designed for managing user todos and providing authentication services. It includes orchestration support using Docker Compose.\n\n## Table of Contents\n\n- [Features](#features)\n- [Technologies Used](#technologies-used)\n- [Getting Started](#getting-started)\n- [API Endpoints](#api-endpoints)\n- [Input Validations](#input-validations)\n- [Web App Repository](#web-app-repository)\n\n## Features\n\n- **User Authentication:**\n  - Register with email and password.\n  - Login with JWT token-based authentication.\n  - Password hashing for security.\n\n- **Todo Management:**\n  - Create, retrieve, update, and delete todos.\n  - Set priorities (high, medium, low) and status (e.g., completed, pending) for todos.\n  - Filter todos by user and status.\n\n- **Profile Management:**\n  - Update user profile information (e.g., full name).\n  - Change user password securely.\n\n- **Security Features:**\n  - JWT token generation and validation.\n  - Password hashing using BCrypt.\n  - Role-based access control.\n\n- **Orchestration Support:**\n  - Docker Compose for managing multi-container Docker applications.\n  - Includes Dockerfile for building the API container.\n  - PostgreSQL database container integration.\n\n- **Validation:**\n  - Input validation using FluentValidation.\n  - Ensures data integrity and proper error handling.\n  - Validations for user registration, login, profile updates, and todos.\n\n## Technologies Used\n\n- **Backend:**\n  - .NET Core\n  - Entity Framework Core for database interactions\n  - JWT for authentication\n  - BCrypt.Net for password hashing\n  - FluentValidation for input validation\n\n- **Database:**\n  - PostgreSQL\n\n## Getting Started\n\nTo run the application locally using Docker Compose:\n\n1. Clone this repository.\n2. Navigate to the project directory.\n3. Run `docker-compose up --build` to build and start the containers.\n4. Access the API at `http://localhost:5000`.\n\n## API Endpoints\n\n- **Authentication:**\n  - `POST /auth/register`: Register a new user.\n  - `POST /auth/login`: Authenticate and retrieve JWT token.\n\n- **Todo Management:**\n  - `GET /todos`: Get all todos.\n  - `GET /todos/{id}`: Get a todo by ID.\n  - `POST /todos`: Create a new todo.\n  - `PUT /todos/{id}`: Update a todo.\n  - `PATCH /todos/{id}/status`: Update todo status.\n  - `PATCH /todos/{id}/priority`: Update todo priority.\n  - `DELETE /todos/{id}`: Delete a todo.\n\n- **User Profile:**\n  - `GET /profile/{userId}/todos`: Get todos for a specific user.\n  - `PATCH /profile/{userId}`: Update user profile.\n  - `PATCH /profile/{userId}/password`: Change user password.\n  - `DELETE /profile/{userId}`: Delete user account.\n\n## Input Validations\n\n- **User Registration and Login:**\n  - Email must be in a valid email format.\n  - Password must meet minimum length and complexity requirements.\n  - Confirm Password must match the Password.\n\n- **Profile Updates:**\n  - Full Name cannot be empty.\n  - Password change requires current password verification and new password confirmation.\n\n- **Todo Management:**\n  - Description must be provided.\n  - Priority must be one of the predefined values (high, medium, low).\n  - Status must be valid.\n  - Targeted Time must be a future date.\n\n## Web App Repository\n\n- Here we have the Web Application Repository for this project: [Angular Todo Management Repository](https://github.com/mawalou14/TodoManagementApp.git).\n\n- Note that the API is made with Angular version 16.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmawalou14%2Ftodomanagementapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmawalou14%2Ftodomanagementapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmawalou14%2Ftodomanagementapi/lists"}