{"id":21152329,"url":"https://github.com/yuvraj0028/wellness360-assignment","last_synced_at":"2026-04-06T08:31:19.186Z","repository":{"id":263488022,"uuid":"890556885","full_name":"yuvraj0028/wellness360-assignment","owner":"yuvraj0028","description":"The Task Management Backend Service provides a secure RESTful API for efficient task management with CRUD operations, error handling, validation, and logging. Built with Spring Boot and OOP principles, it ensures scalability, security, and maintainability with unit testing and API security.","archived":false,"fork":false,"pushed_at":"2025-10-24T19:27:27.000Z","size":90,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-01T04:20:50.839Z","etag":null,"topics":["java","junit","rest-api","spring","spring-boot","spring-mvc","spring-security","task-management","task-manager"],"latest_commit_sha":null,"homepage":"https://task-app-1-0-0.onrender.com","language":"Java","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/yuvraj0028.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-11-18T19:22:55.000Z","updated_at":"2025-10-24T19:27:32.000Z","dependencies_parsed_at":"2025-01-21T08:35:46.286Z","dependency_job_id":null,"html_url":"https://github.com/yuvraj0028/wellness360-assignment","commit_stats":null,"previous_names":["yuvraj0028/wellness360-assignment"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yuvraj0028/wellness360-assignment","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuvraj0028%2Fwellness360-assignment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuvraj0028%2Fwellness360-assignment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuvraj0028%2Fwellness360-assignment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuvraj0028%2Fwellness360-assignment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yuvraj0028","download_url":"https://codeload.github.com/yuvraj0028/wellness360-assignment/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuvraj0028%2Fwellness360-assignment/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31464604,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"online","status_checked_at":"2026-04-06T02:00:07.287Z","response_time":112,"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":["java","junit","rest-api","spring","spring-boot","spring-mvc","spring-security","task-management","task-manager"],"created_at":"2024-11-20T10:38:14.316Z","updated_at":"2026-04-06T08:31:19.169Z","avatar_url":"https://github.com/yuvraj0028.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Task Management Backend Service\nWelcome to the Task Management Backend Service! This project offers a robust solution for managing tasks via a secure RESTful API. Users can perform CRUD operations with high-quality code, error handling, validation, and logging. Built with Spring Boot and OOP principles, it ensures scalability and maintainability. Enjoy seamless user experience and top-notch security with built-in unit testing and API security.\n\n## Features\n- **Task CRUD Operations**: Create, read, update, and delete tasks.\n- **Spring Boot**: Rapid development with Spring Boot, ensuring high performance and scalability.\n- **In-memory Efficient Database**: In-memory database for fast data access and efficient management.\n- **REST APIs**: All functionalities exposed via RESTful API endpoints.\n- **Error Handling**: Global error handler to catch and respond to exceptions.\n- **Validation Logic**: Ensures data integrity and business logic validation for inputs.\n- **Logging**: Detailed logging for tracking system behavior and troubleshooting.\n- **Spring Security (API Security)**: Secure APIs with JWT-based authentication for authorized access.\n- **Unit Testing**: Comprehensive unit tests ensuring code quality and reliability.\n- **OOP Design Principles**: Clean code with encapsulation, inheritance, and polymorphism.\n- **MVC Pattern**: A clean separation of concerns with Model-View-Controller architecture.\n- **HTTP Status Codes**: Meaningful HTTP status codes to communicate the result of requests.\n\n## Tech Stack\n- **Java**: Core programming language for backend development.\n- **Spring Boot**: Framework for building enterprise-grade applications.\n- **Gradle**: Build tool for dependency management and project builds.\n- **Maven Repository**: Repository for managing dependencies.\n- **Postman**: API testing tool to interact with the endpoints and test requests.\n\n## Prerequisites\n\nBefore running the application, ensure that the following are installed:\n\n1. **Java 21** - [Download Java](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html).\n2. **Gradle 8** - [Download Gradle](https://gradle.org/install/).\n\n3. **Postman** - [Download Postman](https://www.postman.com/downloads/).\n\n## Running the Spring Boot Application\n\nOnce Java, Gradle, and Postman are installed, open your terminal follow these steps:\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/yuvraj0028/wellness360-assignment.git\n```\n\n2. Change your directory:\n\n```bash\ncd wellness360-assignment\n```\n\n3. Build the application:\n\n```bash\ngradlew build\n```\n\n4. Run tests (optional but recommended):\n```bash\ngradlew test\n```\n\n5. Run the application:\n\n```bash\ngradlew bootRun\n```\n\n## Application Port\nThe application runs on port 9094. To access the APIs, use the base URL:\nhttp://localhost:9094/api/v1.\n\n## Steps to Get Authorization\n1. Use the endpoint `http://localhost:9094/api/v1/auth/signup` to sign up and get an authentication token.\n2. If you are already logged in but do not have the auth token, use the endpoint `http://localhost:9094/api/v1/auth/login`.\n\n## Request Body for Signup and Login:\n\n#### Request Body for Signup and Login:\n\n```json\n{\n    \"email\": \"user@test.com\",\n    \"password\": \"User@123\"\n}\n```\n\n### IMPORTANT:\nOnce you have the token, it is mandatory to set the Bearer token in Postman for every API call other than the signup and login endpoints.\n\n#### Postman Steps:\n![image](https://github.com/user-attachments/assets/ad9e47a6-0ad5-4536-a1fd-9bed7cfdbc71)\n- Open Postman\n- Go to the Authorization tab\n- Select **Bearer** Token\n- Paste the token in the provided field.\n\n## API Endpoints\n1. **Get all tasks**:\n**GET** `http://localhost:9094/api/v1/tasks`\nFetch all tasks in the system.\n\n2. **Get Task by ID**:\n**GET** `http://localhost:9094/api/v1/tasks/{id}`\nFetch a task by its **ID** (ID is required).\n\n3. **Create Task**:\n**POST** `http://localhost:9094/api/v1/tasks`\nCreate a new task.\nRequest Body:\n#### Request Body:\n```json\n{\n    \"title\": \"task\",\n    \"description\": \"description\",\n    \"dueDate\": \"28-11-2024\"\n}\n```\nThe **dueDate** must be in the format `dd-MM-yyyy`. The default status of the task is `PENDING`.\n\n4. **Update Task by ID**:\n**PUT** `http://localhost:9094/api/v1/tasks/{id}`\nUpdate a task by its **ID**.\nRequest Body:\n```json\n{\n    \"title\": \"task\",\n    \"description\": \"description\",\n    \"status\": \"IN_PROGRESS\",\n    \"dueDate\": \"28-11-2024\"\n}\n```\n**Status** should be one of the following: `PENDING`, `IN_PROGRESS`, or `COMPLETED`.\n\n5. **Delete Task by ID**:\n**DELETE** `http://localhost:9094/api/v1/tasks/{id}`\nDelete a task by its **ID**.\n\n6. **Mark Task as Completed**:\n**PATCH** `http://localhost:9094/api/v1/tasks/{id}/complete`\nMark a task as completed. **ID** is required.\n\n## Exception Handling\nThe application includes a global exception handler to manage errors gracefully. It provides meaningful responses with HTTP status codes, ensuring users can easily understand issues when interacting with the API.\n\n## Validation Logic\nThe service ensures that all inputs, such as task details and dates, are validated before processing. This prevents incorrect or incomplete data from being stored and ensures business rules are followed.\n\n## Error Handling \u0026 Logging\nComprehensive error handling ensures that all errors are caught and logged, providing detailed information for debugging and operational insights. The logging follows best practices to capture key events, errors, and other important information.\n\n***\n\nThank you for exploring the Task Management Backend Service. Whether you're building on this service or using it in your own projects, it’s designed to be simple, secure, and scalable.\n\nYuvraj Singh\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuvraj0028%2Fwellness360-assignment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyuvraj0028%2Fwellness360-assignment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuvraj0028%2Fwellness360-assignment/lists"}