{"id":23143552,"url":"https://github.com/digitalinteraction/printer-pals","last_synced_at":"2025-07-08T21:37:31.742Z","repository":{"id":97994257,"uuid":"127309254","full_name":"digitalinteraction/printer-pals","owner":"digitalinteraction","description":"A task based game for care homes","archived":false,"fork":false,"pushed_at":"2018-07-16T17:26:54.000Z","size":5816,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-16T22:59:26.422Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/digitalinteraction.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2018-03-29T15:14:16.000Z","updated_at":"2024-11-08T12:31:31.000Z","dependencies_parsed_at":"2023-06-01T12:30:29.284Z","dependency_job_id":null,"html_url":"https://github.com/digitalinteraction/printer-pals","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalinteraction%2Fprinter-pals","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalinteraction%2Fprinter-pals/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalinteraction%2Fprinter-pals/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalinteraction%2Fprinter-pals/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/digitalinteraction","download_url":"https://codeload.github.com/digitalinteraction/printer-pals/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247174467,"owners_count":20896078,"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":[],"created_at":"2024-12-17T15:13:43.492Z","updated_at":"2025-04-04T12:14:36.467Z","avatar_url":"https://github.com/digitalinteraction.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Printer Pals 🖨\n### A Printer Based Game to Support Interactions in Care Homes\n\n## Description\nUpload images and songs to a raspberry pi, giving them a title, a short\ndescription and a task. A receipt of the content will be printed out,\nidentified by a QR code.\n\nThe QR can then be scanned, which will print out the content, along with\nthe task, which you can complete with a friend in a care home.\n\n## Hardware\n- Raspberry Pi 3\n- Thermal printer\n- 8mp Pi camera\n- USB speakers\n\n## Software\n- Vue application, served by the Pi:\n - Volunteers can upload media they have saved on their phone.\n - Volunteers can media they have uploaded.\n- API which prints a QR code when new content is uploaded.\n- Client to print content when scanned, using a camera and QR codes.\n\n## Installation\n### 1. Turning on the Pi and Opening the Terminal\nTo use the Raspberry Pi so we can install and run printer-pals we need\nto power it and connect it to a mouse, monitor, and keyboard. Connect the\nmouse and keyboard over USB, and then connect to a monitor via the HDMI\nport. The last thing to do is connect it to power by plugging a 5v power\nsupply into the micro USB port. The Pi should begin booting, opening up\nto desktop display.\n\nOnce the Pi has booted up we need to then open up a terminal window so we\ncan start entering commands into the command line. To do this click on the\n4th icon from the top left of the desktop display. This should open a\na black window where you will see something like:\n```bash\npi@raspberrypi: ~ $\n```\nYou can start typing in your commands here.\n\n### 2. Enabling Camera and Serial Modules\nWe need to ensure printer-pals can access the camera and the printer over\na serial connection. To do this we need to edit the Raspberry Pi's\nsettings to enable the modules. Type the command below to bring up the\nsettings menu:\n```bash\nsudo raspi-config\n```\nFrom the menu select option `5. Interfacing Options`, then select `P1\nCamera`, then `Yes`, then `Ok`. The camera is now enabled. To enable\nserial connections select `5. Interfacing Options`, then `P6 Serial`,\nthen `No`, then `Yes`, then `Ok`. The Pi should now be able to\ninterface with the printer.\n\nAfter this select finish, you should be prompted to reboot the Pi, but\nif this dialog box does not appear enter the command below to restart\nthe Pi.\n```bash\nsudo shutdown -r now\n```\n\n### 3. Setting up the WiFi\nTo connect to the router we need to edit the file the Raspberry uses to\nstore it's WiFi connections. To do this run the command\n```\nsudo nano /etc/wpa_supplicant/wpa_supplicant.conf\n```\nThe file will have some text in it, you need to modify it to have the\ncode below, replacing the `SSID` and `Password` placeholders with\nthe credentials for the router you want to connect to. You can create a\nnew network block for each individual network you wish to connect to.\n```\nctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev\nupdate_config=1\n\nnetwork={\n  ssid=\"WIFI_NAME\"\n  psk=\"WIFI_PASSWORD\"\n  proto=RSN\n  key_mgmt=WPA-PSK\n  pairwise=CCMP\n  auth_alg=OPEN\n}\n```\n\nSave the file by pressing `CTRL+X` to exit, and then `Y` to save the\nfile when prompted.\n\nThis won't take effect until the Pi is restarted. You can restart the Pi\nwith the command:\n```bash\nsudo shutdown -r now\n```\nThe Pi should restart and automatically connect to the router.\n\n### 4. Downloading Printer-Pals\nAfter connecting the Pi to WiFi, we can download printer-pals to the Pi\nso that we can begin installing the dependencies needed for it run\nproperly. To download the project run the command:\n```shell\ngit clone https://github.com/digitalinteraction/printer-pals.git\ncd printer-pals\n```\nThe first command will download the latest version of the project from\nOpen Lab's Github account, and create a new folder called `printer-pals`\nwith the project inside. The second command will then change our working\ndirectory to the project we just downloaded so we can continue setting\nup the project.\n\n### 5. Installing Dependencies\nNow the Pi is connected to the internet we can install all of the\ndependencies and libraries printer-pals needs to run. This can be done\nwith the command:\n```bash\nsudo ./install.sh\n```\n\nThis will run a series of commands contained in the `install.sh` file,\ninstalling the NodeJS to execute the code, Mongo to store the data,\nand builds printer-pals so it is ready to run.\n\nCheck this has finished correctly. Once the script has finished you should\nsee the following:\n```bash\nChecking mongo and versions\nMongoDB shell version: 3.2.15\n\n```\n\n### 6. Setting Printer-Pals to Start Automatically\nTo set the Pi to run printer-pals at boot we need to tell it to run a\nscript every time it turns on. Enter the command:\n```bash\nsudo cat run.sh \u003e /etc/rc.local\n```\nThis will override the usual scripts the Raspberry Pi runs at boot with\na script we can use to manually start printer-pals.\n\n### 7. Setting Printer-Pals Environment Variables\nWe need to tell printer-pals what credentials and passwords it needs to\nconnect to the database, and what it can use to seed session tokens when\npeople log into the webapp. To do this enter:\n```bash\nnano .env\n```\nAnd add the following text, changing `random_secret_string` to some\nrandom text.\n```env\nDEBUG=false\nDB_USER=user\nDB_PASS=password\nDB_HOST=mongo\nDB_NAME=database_name\nPORT=27017\nSALT_ROUNDS=10\nAPP_SECRET=random_secret_string\n```\n\n### 8. Running Printer Pals\nNow that everything is installed we can run printer pals using the\ncommand:\n```bash\nsudo ./run.sh\n```\nThis will start the database, server, and the QR Code scanner.\n\n**Congration, you done it 🏆🎉**\n\n## Updating Printer-Pals\nTo update printer pals you need to run the command:\n```bash\ncd ~/printer-pals \u0026\u0026 git pull\n```\nThis will fetch the latest version of the code from the server. You then\nneed to restart the Pi, forcing it to run the latest version when it boots\nup. Do this by entering:\n```bash\nsudo shutdown -r now\n```\n\n## Using Printer Pals\n### 1. Setting up A Router\nFirstly, you need to setup a router, with the ssid `printer-pals`, and the password as `print`. Once this is setup plug in printer-pals and it should connect automatically.\n\n### 2. Find the Website\nOnce connected to power printer-pals will begin serving a webpage which you can use to start uploading and printing media. Open a browser and navigate to:\n```bash\nhttp://printer\n```\nThis will connect to the printer over the local network you just set up.\n\n### 3. Start Printing\nCreate an account and start printing some fun tasks! 🖨\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalinteraction%2Fprinter-pals","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdigitalinteraction%2Fprinter-pals","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalinteraction%2Fprinter-pals/lists"}