# Guess the RAL Browser multiplayer game: read a job offer, guess the **RAL** (gross annual salary). ## Run ```bash cp .env.example .env # already present in this repo docker compose up --build ``` Open http://localhost:8000 - Host a match, share the invite UUID link - Admin panel: http://localhost:8000/admin (password from `ADMIN_PASSWORD`) ## Rules - 4 salary-band answers. Correct band = **100** pts, else **0** - Optional exact RAL (when known): **+200** or **-50** - Every 3rd round is **BONUS**: 150 / 300 / -50, plus hybrid vs full remote vs in-place (**+50**) - Results reveal when every connected player has locked an answer ## LinkedIn worker The `worker` service polls queued URLs from the admin panel, fetches public LinkedIn job pages, strips salary text, and stores them. LinkedIn often shows a login wall; if a fetch fails, add the job manually in admin. Seed jobs are loaded so you can play immediately. --- ## Initial Prompt ``` Create a multiplayer game on the browser where users connects, put their name and start playing to a game called "guess the RAL". In this game, written in python with a sqlite database, with a docker compose enabled setup, users connects to the website and create or join new sessions. The overall idea is to review work offer from LinkedIn and guess the correct amount of RAL based on the job description and the company title as well as job title. The job description must hide the ral amount if exposed. Moreover, each player gets 100 point if they choose the correct answer from a bunch of 4 possibilities. There might be "Above", "Less than", "Between x and y" as possible answers. It should be as closer as possible to the real answer. When all players have at least one option, they get the results all together. If a player does not find the correct answer they get 0. The game allows also to guess the precise amount (if given) to submit as number. If the user gets the correct amount they get 200 points, or -50 if wrong. Every 3 rounds there's a "ROUND with BONUS" where players get 150 if they get right, 300 if they guess the precise amount and -50 if they get it wrong. In this bonus round they can also guess if the work is hybrid, full remote or in-place only. The question in this case is more difficault. When the user hosts a match (with a uuid to get invited via link to be unique) they can have some settings, such as the number of players (maximum 12), the number of matches (from 4 to 32), extra guesses (so there might be some extra information to show based on the description) and also the possibility to hide the company name (if present) and the subject (e.g. technology, finacial, business, etc others). The background script should be able to fetch real data from linkedin and store it in the database. There's an admin panel protected with a password where you can fetch and check the fetched data from linkedin with corresponding status (it should work as a running worker task). In terms of UI and interface make is nice to see and add also a mascotte that explains what you have to todo each round. Make it simple, like a 8 bit sprite type game. Dont check too much the code, it must work and use the least amount of tests to create this. Add also 200 static facts about RAL that piss several people off in italy like "RAL commisurata all'esperienza" and add custom swear to the that.. You can keep those phrases static in a JSON file and make it funny and dank to read. They should show up during loading screen between one round to the other and during the wait in the lobby. ```