LookyLooky is a secure document sharing and viewing web application that encrypts documents before uploading them. Users can share documents via unique URLs, and only those with the correct decryption key can access the contents.
- 🔒 End-to-end encryption: Documents are encrypted before uploading and can only be decrypted by authorized users.
- 📤 Secure file upload: PDFs can be uploaded and stored securely.
- 📸 Image preview: Encrypted documents generate previews for easy identification.
- 📡 WebSocket-based updates: Real-time updates through WebSockets.
- 📂 File sharing via secure links: Share documents without exposing sensitive information.
- 🖼 Slideshow mode: View documents in a slideshow format with real-time updates.
Ensure you have the following installed:
- Clone the repository
git clone https://github.com/your-repo/lookylooky.git cd lookylooky
- Install dependencies
npm install
- Build the project
npm run build
- Start the server
npm start
- Drag and drop a PDF file into the upload area.
- The document is encrypted and uploaded.
- A secure link is generated in the format:
https://yourdomain.com/view/{docId}#key={base64-encoded-key}
- Share this link with authorized users.
- Open the shared link.
- The document ID is extracted from the URL.
- The encryption key (from
#key=
) is decoded locally (not sent to the server). - The document is decrypted and displayed.
- Users joining the same document ID room will see real-time updates.
- The document presenter can change images, and all connected users will see the updates live.
- The encryption key is never stored on the server.
- Users must ensure they share the correct
#key=
securely. - Only authorized users with the exact decryption key can view the document.
index.js
: Main entry point for document uploads.view.js
: Handles document viewing and WebSocket communication.
Feel free to submit issues or pull requests to improve the project.
This project is licensed under the BSL-2 License.