PastePoint is a secure file-sharing service designed to facilitate easy and safe file transfers between devices on the same network. It is similar to Snapdrop but offers additional features, focusing on security and compression.
- Local Network Chat: Allows devices on the same network to communicate and share files using WebSockets.
- Session Management: Users can list available sessions, create new ones, or join existing sessions.
- Secure File Sharing: Prioritizes security in file transfers.
- File Compression: Compresses attachments to minimize file size before transfer.
- Rust: Backend implementation using the Actix Web framework.
- Angular: Frontend implementation for user interaction.
- WebSockets: Used for real-time communication between devices.
- Project Structure
- Prerequisites
- Installation
- Building the Project
- Running the Project
- Usage
- Contributing
- License
- Backend (Rust - Actix Web):
- Handles the WebSocket connections, session management, and file compression.
- Frontend (Angular):
- Provides the user interface for interacting with the service, listing sessions, and transferring files.
-
Rust: Install Rust from rust-lang.org.
-
Node.js and npm: Install from Node.js Official Site.
-
Angular CLI: Install Angular CLI globally using npm:
npm install -g @angular/cli
-
Clone the repository:
git clone https://github.com/SloMR/pastepoint.git cd pastepoint
-
Install dependencies:
-
Backend (Rust) dependencies:
Rust dependencies are managed via
Cargo.toml
and are automatically handled by Cargo. -
Frontend (Angular) dependencies:
cd client npm install
-
-
Navigate to the backend directory:
cd server
-
Build the Rust project:
cargo build
This will create an optimized build of the backend.
-
Navigate to the frontend directory:
cd client
-
Build the Angular project:
ng build
The build artifacts will be stored in the
dist/
directory.
-
Navigate to the backend directory:
cd server
-
Run the backend:
cargo run
The backend server will start and listen for WebSocket connections.
-
Navigate to the frontend directory:
cd client
-
Serve the Angular project:
ng serve
The application will be available at
http://localhost:4200
.
Once both the frontend and backend are running:
- Open your browser and navigate to
http://localhost:4200
. - Use the interface to list available sessions or create a new one.
- Share files securely with other devices on the same network.
Contributions are welcome! Please fork the repository and create a pull request with your changes.