{"id":20103569,"url":"https://github.com/mmjck/backend_challenge_selaz","last_synced_at":"2026-05-10T16:04:59.168Z","repository":{"id":252301465,"uuid":"839620607","full_name":"mmjck/backend_challenge_selaz","owner":"mmjck","description":"Technical Test - Java Developer","archived":false,"fork":false,"pushed_at":"2024-08-09T16:33:51.000Z","size":66,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-13T04:42:03.581Z","etag":null,"topics":["backend","h2-database","java","spring-boot","spring-data-jpa","swagger-ui"],"latest_commit_sha":null,"homepage":"","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/mmjck.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-08-08T01:53:59.000Z","updated_at":"2024-08-09T16:33:54.000Z","dependencies_parsed_at":"2024-08-08T22:46:34.620Z","dependency_job_id":"cd91abd3-aa8d-4e0e-b5aa-bdf5a3021f0c","html_url":"https://github.com/mmjck/backend_challenge_selaz","commit_stats":null,"previous_names":["mmjck/backend_challenge_selaz"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmjck%2Fbackend_challenge_selaz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmjck%2Fbackend_challenge_selaz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmjck%2Fbackend_challenge_selaz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmjck%2Fbackend_challenge_selaz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mmjck","download_url":"https://codeload.github.com/mmjck/backend_challenge_selaz/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241543125,"owners_count":19979474,"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":["backend","h2-database","java","spring-boot","spring-data-jpa","swagger-ui"],"created_at":"2024-11-13T17:37:04.087Z","updated_at":"2026-05-10T16:04:54.120Z","avatar_url":"https://github.com/mmjck.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch2 align=\"center\"\u003e\nBackend Challenge SELAZ\n\u003c/h2\u003e\n\n\n- [Requirements](https://github.com/ManagerThalles/backend-java-spring-test/blob/main/requirements.md)\n\n- [Challenge](https://github.com/ManagerThalles/backend-java-spring-test/blob/main/README.md)\n\n# :rocket: Technologies used\n\n- [H2](https://www.h2database.com/html/main.html)\n- [Java 17](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)\n- [Spring Boot](https://spring.io/projects/spring-boot)\n- [Maven](https://maven.apache.org/)\n- [JUnit](https://junit.org/junit5/)\n\n# How to run\n\nClone the repository\n\n```bash\ngit clone https://github.com/mmjck/backend_challenge_selaz.git\n```\n⚠️  Start application into `ms/` directory\n\n```bash\nmvn spring-boot:run\n```\n\nApplication will be running `http://localhost:8080/` ✅\n\n## Rest Usage Documentation (Swagger)\n\nThe swagger documentation is available in the following URL: http://localhost:8080/swagger-ui.html\n\n\n# Architecture\n\nThe project had a division that considering the separation of concerns and the possibility of changing the external world interface without changing the core of the system, \nit was influenced by the concept of the clean architecture. \n\n\n# Endpoint\n\nThe REST API app is described below.\n\n## Auth module\n\n### 1. Create new token\n\n`POST /api/token`\n\n```json\n{\n  \"username\": \"maria123\"\n}\n```\n\n## User module\n\n### 1. Create\n\n`POST /api/users`\n\n```json\n{\n  \"username\": \"maria123\",\n   \"nivel\": \"ADMIN\" || \"USER\"\n}\n```\n\n### 2. Update\n\n`POST /api/users/{id}`\n\n```json\n{\n  \"username\": \"maria123\",\n  \"nivel\": \"ADMIN\" || \"USER\"\n}\n```\n\n### 3. Get all\n\n`GET /api/users/`\n\nResponse:\n\n```json\n{\n  \"total\": 1,\n  \"data\": [\n    {\n      \"id\": 3,\n      \"username\": \"maria123\",\n      \"nivel\": \"USER\"\n    }\n  ]\n}\n```\n\n### 4. Delete\n\n`DELETE /api/users/{id}`\n\nResponse: `200 OK`\n\n### 5. Get all tasks by user\n\n`GET /api/users/{id}/tasks`\n\nResponse:\n\n```json\n{\n  \"total\": 1,\n  \"data\": [\n    {\n      \"id\": 1,\n      \"title\": \"Configuration\",\n      \"description\": \"Task todo\",\n      \"status\": \"EM_ANDAMENTO\",\n      \"due_date\": \"2024-12-24T08:47:04.941\",\n      \"created_at\": \"2024-08-09T09:10:52.335769\"\n    }\n  ]\n}\n```\n\n## Task module\n\n### 1. Create\n\n`POST /api/task`\n\n```json\n{\n  \"title\": \"some title\",\n  \"description\": \"some description\",\n  \"due_date\": \"2024-08-07T07:59:34.352163\"\n}\n```\n\n### 2. Update\n\n`PUT /api/task/1`\n\n```json\n{\n  \"title\": \"some title\",\n  \"description\": \"some description\",\n  \"due_date\": \"2024-08-07T07:59:34.352163\",\n  \"status\": \"CONCLUIDA\"\n}\n```\n\n### 3. Get all by user Id and filter by status or dueDate\n\n`GET /api/task/{userId}?status={status}\u0026sort={dueDate}`\n\n```json\n{\n  \"total\": 1,\n  \"data\": [\n    {\n      \"id\": 1,\n      \"title\": \"Configuration\",\n      \"description\": \"Task todo\",\n      \"status\": \"EM_ANDAMENTO\",\n      \"due_date\": \"2024-12-24T08:47:04.941\",\n      \"created_at\": \"2024-08-09T09:10:52.335769\"\n    }\n  ]\n}\n```\n\n### 4. Delete\n\n`DELETE /api/task/{id}`\n\nResponse: `200 OK`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmjck%2Fbackend_challenge_selaz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmmjck%2Fbackend_challenge_selaz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmjck%2Fbackend_challenge_selaz/lists"}