{"id":23402917,"url":"https://github.com/kieranmueller/quiz-api","last_synced_at":"2026-04-15T07:36:54.220Z","repository":{"id":234696279,"uuid":"663647767","full_name":"KieranMueller/quiz-api","owner":"KieranMueller","description":"Java Spring Boot REST API","archived":false,"fork":false,"pushed_at":"2023-07-07T19:39:40.000Z","size":74,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-05T11:41:38.654Z","etag":null,"topics":["api","java","rest","spring"],"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/KieranMueller.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":"2023-07-07T19:36:46.000Z","updated_at":"2023-08-07T17:33:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"3b840ef7-6c9e-4847-a656-b147c71e5068","html_url":"https://github.com/KieranMueller/quiz-api","commit_stats":null,"previous_names":["kieranmueller/quiz-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/KieranMueller/quiz-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KieranMueller%2Fquiz-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KieranMueller%2Fquiz-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KieranMueller%2Fquiz-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KieranMueller%2Fquiz-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KieranMueller","download_url":"https://codeload.github.com/KieranMueller/quiz-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KieranMueller%2Fquiz-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31831847,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T07:17:56.427Z","status":"ssl_error","status_checked_at":"2026-04-15T07:17:30.007Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","java","rest","spring"],"created_at":"2024-12-22T12:37:58.694Z","updated_at":"2026-04-15T07:36:54.187Z","avatar_url":"https://github.com/KieranMueller.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Quiz API\n=============================\n## Overview\n\nIn this assignment students are tasked with creating a small RESTful API that simulates basic backend functionality for a quiz application. Students are given a skeleton that has the `GET quiz` endpoint completely implemented as well as the infrastructure required for it to function. This will allow students to focus solely on completing the other 6 endpoints listed in the [Endpoint Documentation](#endpoint-documentation) below. Student's should start by looking through the provided skeleton and running the app to see what it does.\n\n### Summary of the API\n\nThis Quiz API contains 3 entities: `Quiz`, `Question`, and `Answer`. Each have an auto-generated numerical primary key. The `Quiz` entity has a name and maintains a collection of `Question` entities that are part of the the `Quiz` using an `@OneToMany` annotation, provided by JPA, to denote the relationship between the two tables in the database. The `Question` entity has a text field, the `Quiz` that it belongs to annotated with `@ManyToOne` representing the opposite side of the relationship stored in the `Quiz` class, and a collection of `Answer` objects annotated with `@OneToMany`. Finally, the `Answer` entity also has a text field, a boolean to denote if the given `Answer` is the correct one for the `Question` it belongs to, and the `Question` object that it belongs to annotated with `@ManyToOne`.\n\nAn entity relationship diagram is provided below that represents the database used by the Quiz API:\n![quiz-api](https://user-images.githubusercontent.com/32781877/158852533-29305164-9e9e-41b2-a808-fb1d717b70cf.png)\n\n\nA data transfer object representing the basic response for each entity type is provided in the skeleton. Notice that the DTOs are slightly different than the entities. This is intentional and is done in order to avoid infinite recursion when serializing to JSON. The student will need to add more DTOs and when they do will also need to add more functionality to their mapper interfaces. (HINT: you will at the minimum need to add a QuizRequestDto)\n\n---\n\n### Endpoint Documentation\n\nThe focus of this assignment is on creating endpoints and implementing their functionality in the provided Controller, Service, and Repositories. Note that there is a repository for each table in the database, but there is only 1 controller and 1 service which should handle all the endpoints below. The `Get /quiz` endpoint is implemented for you as an example for you to follow while implemented the other 6.\n\n- [ ] `GET quiz`\n    - Returns the collection of `Quiz` elements\n\n- [ ] `POST quiz`\n    Creates a quiz and adds to collection\n    - Returns the `Quiz` that it created\n\n- [ ] `DELETE quiz/{id}`\n    Deletes the specified quiz from collection\n    - Returns the deleted `Quiz`\n\n- [ ] `PATCH quiz/{id}/rename/{newName}`\n    Rename the specified quiz using the new name given\n    - Returns the renamed `Quiz`\n\n- [ ] `GET quiz/{id}/random`\n    - Returns a random `Question` from the specified quiz\n\n- [ ] `PATCH quiz/{id}/add`\n    Adds a question to the specified quiz\n    - Receives a `Question`\n    - Returns the modified `Quiz`\n    \n- [ ] `DELETE quiz/{id}/delete/{questionID}`\n    Deletes the specified question from the specified quiz\n    - Returns the deleted `Question`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkieranmueller%2Fquiz-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkieranmueller%2Fquiz-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkieranmueller%2Fquiz-api/lists"}