{"id":19736218,"url":"https://github.com/arnauld/extreme-carpaccio-java-server","last_synced_at":"2026-05-01T21:03:04.360Z","repository":{"id":91491814,"uuid":"73130983","full_name":"Arnauld/extreme-carpaccio-java-server","owner":"Arnauld","description":"Java implementation of the Extreme-caparccio server","archived":false,"fork":false,"pushed_at":"2019-02-07T22:08:03.000Z","size":3170,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-10T18:59:14.587Z","etag":null,"topics":["extreme-carpaccio","groovy","java"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/Arnauld.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":"2016-11-07T23:41:18.000Z","updated_at":"2019-02-07T22:13:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"0ba84e3c-26cb-4ede-97d2-a077a6daeef3","html_url":"https://github.com/Arnauld/extreme-carpaccio-java-server","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arnauld%2Fextreme-carpaccio-java-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arnauld%2Fextreme-carpaccio-java-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arnauld%2Fextreme-carpaccio-java-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arnauld%2Fextreme-carpaccio-java-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Arnauld","download_url":"https://codeload.github.com/Arnauld/extreme-carpaccio-java-server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241062525,"owners_count":19902905,"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":["extreme-carpaccio","groovy","java"],"created_at":"2024-11-12T01:05:46.288Z","updated_at":"2026-05-01T21:02:59.240Z","avatar_url":"https://github.com/Arnauld.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[extreme-carpaccio](https://github.com/dlresende/extreme-carpaccio) Java based server implementation\n\n\n# Developer's notes\n\n* [awaitility](https://github.com/awaitility/awaitility/wiki/Usage)\n* [Spring boot test](http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html)\n* [RxNetty](https://github.com/ReactiveX/RxNetty)\n\n```\n$ mvn clean install\n```\n\nOverrides configuration with VM argument.\n\n```\n-DquestionGenerator.scriptPaths=/Users/Arnauld/Projects/extreme-carpaccio-springboot/script/questions.groovy,\\\n                                /Users/Arnauld/Projects/extreme-carpaccio-springboot/script/priceWithTax.groovy,\\\n                                /Users/Arnauld/Projects/extreme-carpaccio-springboot/script/insurance.groovy\n```\n\n## Architecture\n\n```\n                           +-------------------------+\nDashboard ---------------\u003e |                         |\n                           |  SpringBoot Web         | {WebController.java} ...\u003e {Players.java}\nPlayer registration -----\u003e |                         |                            ^\n                           |                         |                           /\n                           | ----------------------- |                       ...' \n                           |                         | {Game.java} .........'\n      Player 1 \u003c---------  |                         |        :             `....\u003e {QuestionGenerator.java}\n      Player 2 \u003c---------  |  RxNetty Clients        |        v\n       ...                 |    / Observable         | {RxNettyDispatcher.java}\n      Player n \u003c---------  |                         |\n\n                           +-------------------------+\n\n```\n\n## Usage\n\n* thecodinggame.groovy, invalid-insurance.groovy, insurance-iteration-1.groovy, technical-invalid-requests.groovy\n\nSTEP 1 :\nwith each weight at 0.0 except insurance-iteration-1 at 1.0\n\nline 120 --\u003e change data (uncomment)\nRULES = cover (basic 1.8) * nb travellers * duration days (return date - departure date)\n\nSTEP 2 : weight at 0.0 for all except thecodinggame at 1.0\n\ngoal : let the team slices\nRULES = cover * sum risk travellers * min (7, duration days) * country + options\n\nSTEP 3 : in thecodinggame.quote(), set phase3On to True, then play with the multiple if\n\nRULES = ANNOUNCE changes, and uncomment/add if cases\nBONUS : start to send invalid quotes, by modifying the weight of invalid-insurance and codingame\n\nSTEP 4 : TDD - change frequency (less for more TDD), activate roman by setting phase4On to True in thecodinggame.quote()\n\nSTEP 5 : replace the nextQuestion with the commented one REPLACE FOR IT5\n\nRULES : find offers to send instead of quote, offers format is an array like {\"offers\":[\"off1\",\"off2\"]}\n\n## Protocol\n\n### Price with tax\n\n```javascript\n{\n  \"quantities\" : [1, 3, 6, 2],\n  \"prices\" : [1.2, 3.6, 7.5, 8.2],\n  \"reduction\": \"Standard|HalfPrice|PayThePrice\",\n  \"country\": \"NL\"\n}\n```\n\n```javascript\n{\n  \"total\":12.3\n}\n```\n\n### Question\n\n```javascript\n{\n  \"question\":\"Which word in the list designate a programming language?\",\n  \"choices\":[\"jawa\",\"jaba\",\"java\"]\n}\n```\n\n```javascript\n{\n  \"response\":\"java\"\n}\n```\n\n```javascript\n{\n  \"question\":\"What is 4 plus 5?\"\n}\n```\n\n```javascript\n{\n  \"response\":\"9\"\n}\n```\n\n### Insurrance\n\n```javascript\n{\n  \"country\":\"PL\",\n  \"departureDate\":\"2016-11-15\",\n  \"returnDate\":\"2016-12-09\",\n  \"travellerAges\":[32,39],\n  \"options\":[\"SportsAndActivities\",\"MedicalConditions\"],\n  \"cover\":\"Premier\"\n}\n```\n\n```javascript\n{\n  \"quote\": 234.5,\n  \"options\":[\"SportsAndActivities\",\"MedicalConditions\"]\n}\n```\n# Inspirations\n\n* https://diegolemos.net/2016/01/07/extreme-carpaccio/\n* [extreme-carpaccio - github](https://github.com/dlresende/extreme-carpaccio)\n* http://chatley.com/posts/05-27-2011/extreme-startup/\n* [rchatley - github](https://github.com/rchatley/extreme_startup/blob/master/lib/extreme_startup/question_factory.rb)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farnauld%2Fextreme-carpaccio-java-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farnauld%2Fextreme-carpaccio-java-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farnauld%2Fextreme-carpaccio-java-server/lists"}