I created a QR code scanner for the Amazing Race. Each generated QR code provides teams with a hint about the upcoming game, adding an element of fun to the entire Amazing Race.
This app uses a React environment and is deployed using Railway, which already provides HTTPS by default. No additional SSL certificate or web server configuration is required.
Follow these steps to create QR codes for your images:
Place your image file inside the backend\uploads folder. Supported formats include .jpg, .jpeg, .png, and .gif.
- Go to The QR Code Generator (TQRCG)
- Select "Plain Text" as the QR code type
- In the "Add message" field, enter the image path using the correct format (see Step 3)
Use the following format for the QR code text:
/uploads/filename.png
Examples:
/uploads/sample.png/uploads/logo.jpg/uploads/image.png
Important:
The path must start with /uploads/ followed by the filename and extension. Do not include the full URL or IP address.
After generating the QR code:
- Download the QR code image
- Use it in your materials (posters, flyers, etc.)
- When scanned, it will display the image from your server
Sample screenshot from a scanned QR code:
When deploying this project, you only need to update the backend hostname.
The backend dynamically builds the public image URL using an environment variable:
const fullImageUrl = `https://${process.env.HOSTNAME || "qrscanner-production-002e.up.railway.app"}${qrData}`;- Open your backend
.envfile (or Railway → Variables) - Set your deployed app’s hostname without
https://
HOSTNAME=your-app-name.up.railway.appIf HOSTNAME is not set, the app will fall back to the default Railway domain.
No frontend changes or additional server configuration are required.
This project was built to make interactive games more engaging by combining QR technology with a simple and scalable web setup. Feel free to fork, modify, or adapt this project for your own events, games, or learning purposes.
If you find this useful, a ⭐ on the repository is always appreciated!

