## Description Prepare and deploy the application on the group VM, verify the complete data flow, add end-to-end tests and assemble the final README. Follow the shared API, database and deployment conventions in the group plan. ## Tasks - [x] Check the existing VM and Apache setup and verify that `/project1/` still works. - [x] Install Node.js/npm and PostgreSQL directly on the VM, without Docker, and verify PostgreSQL accepts connections. - [x] Create a dedicated Spillkveld database and database user. Store credentials outside Git. - [x] Configure Apache to serve the frontend under `/project2/` and proxy `/project2/graphql` to backend `/graphql` on `127.0.0.1:3001`. Preserve `/project1/`. - [x] Configure the backend as a service with automatic startup/restart and production environment variables. Use Vite base `/project2/` and `VITE_GRAPHQL_URL=/project2/graphql` for the frontend build. - [x] Test the deployment setup with a temporary test server before the database scripts and backend are available. - [x] Load `server/db/schema.sql` and `server/db/seed.sql`, deploy the backend and frontend, and verify that the VM client retrieves and displays games from PostgreSQL through GraphQL. - [x] Add Playwright configuration and an end-to-end test for search and game details against the real backend. Use the existing root npm dependencies and test scripts. - [x] Document installation, deployment, startup/restart, troubleshooting and AI usage in `README.md`. Keep deployment configuration in `deploy/`. - [x] Assemble the README from each person's documentation and AI declaration. Include VM link, local setup, tests, architecture, technical choices, current status and limitations. Verify submission links. ## Dependencies VM preparation, service/proxy configuration, test setup and deployment documentation can start independently. Loading schema and example data requires the SQL files. Publishing and checking the complete application requires the database scripts, backend and frontend. The final README requires documentation and AI declarations for each part. ## Done when - The working goal in section 2 of the group plan is verified at `http://it2810-32.idi.ntnu.no/project2/`, using the real backend and database. - The backend starts automatically after a VM reboot, and `/project1/` still works. - The end-to-end test passes against the deployed application; relevant tests, linting, formatting checks and builds pass. - Deployment instructions and AI usage are documented, the README reflects actual status, and no credentials are committed. - If time runs short, the agreed minimum (search and details on the VM with database-backed GraphQL) is verified and remaining limitations are documented. ## Verification — 16 October 2026 - The deployed client retrieves all 12 example games from PostgreSQL through GraphQL. Main features were also tested manually. - All 13 frontend tests, lint, formatting checks and both production builds pass. All 22 backend tests passed on the VM against a separate PostgreSQL test database using the shared schema. - The Playwright search/details test passes against the deployed application, including after a real VM reboot. - Apache, PostgreSQL and the backend start automatically after reboot. Both `/project1/` and `/project2/` return HTTP 200. - Documentation and individual AI declarations are consolidated in the reviewed README; the superseded documents have been removed. Credentials remain outside Git. Implementation is ready for pull request review.