https://qrchatroom.df.r.appspot.com/
-
User loads application on computer -> YES
-
User requests a unique URL QR code -> YES
-
User scans QR code with phone to connect -> YES the two devices via a unique URL
-
User can now submit messages on either the -> YES computer or phone and access the message on both devices
##Considerations:
-
Multiple users should be able to use the -> YES application at the same time
-
The URL should be easy to type or contain -> YES /room/ a shortened version for ease of access without using the QR code
- Make messages live update, user doesn’t have -> YES (Websocket) to refresh to see new messages
- Make messages ephemeral, set to self destruct -> NOT YET after a certain period of time
- Add the ability to send files of arbitrary data -> NOT YET
- Containerize your application using Docker. -> YES (Docker)
- Use Golang (make sure to support go modules) or typescript-> YES (Golang with Revel FW)
- Golang Revel Web Framework
- Websocket
- Docker
- Google app engine to deploy dockerized application (app.yaml config)
- Google Cloud Storage to store QR code image
- SQLite3 database
-
Apply Dependency Injection (google wire project) set up DB type connection and cloud provider
-
Responsive layout for better displaying on Mobile device
-
Send/ receive media objects
-
Caching to decrease number of DB connection and reduce latency messaging using Redis
-
Handle fault tolerance using Hystryx
-
Fix some existing bugs
-
Set up environment variables: HTTP_ADDR, GOOGLE_PROJECT_ID, GOOGLE_BUCKET, GOOGLE_APPLICATION_CREDENTIALS (no needed on production)
-
revel run -a chatroom
-
Go to http://<YOUR_IP>:8080/ and you'll see the home page