Skip to content

A lightweight file sharing tool that supports large file uploads and downloads through a custom multithreaded HTTP server and socket-based architecture.

Notifications You must be signed in to change notification settings

Varunv003/PeerConnect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PeerConnect πŸš€

A lightweight file sharing tool that supports large file uploads and downloads through a custom multithreaded HTTP server and socket-based architecture.


πŸ”§ Features

  • Upload files up to 200MB securely
  • Each file is hosted on a dedicated socket server
  • Download link includes dynamic port binding
  • Works for MP3, MP4, PDF, ZIP, TXT, and more
  • Temporary hosting β€” files are served from memory/disk and auto-deleted
  • No frameworks β€” built from scratch in Java

πŸ› οΈ What I Implemented (Low-Level Engineering)

  • ✳️ Built custom HTTP server using Java HttpServer β€” no Spring or frameworks used
  • 🧡 Implemented multithreaded socket servers for serving each file in parallel
  • πŸ”Œ Used pure socket programming to send files byte-by-byte over TCP
  • πŸ“‘ Developed a manual multipart/form-data parser to handle file uploads without external libraries
  • πŸ“‚ Ensured file type independence (supports audio/video/binary) with raw stream handling
  • 🐳 Containerized the full-stack app (backend + frontend) using Docker and Docker Compose

πŸ“¦ Tech Stack

Area Tech Used
Backend Java (JDK 21), Raw HTTP, Sockets, Threads, Maven
Frontend Next.Js
Packaging Docker, Docker Compose

πŸš€ How to Run (Docker Compose)

Make sure you have Docker & Docker Compose installed.

# Clone this repo
git https://github.com/Varunv003/PeerConnect

# Build and start
docker-compose up --build

Stopping the Application:

To stop the application, navigate to the project directory (where the docker-compose.yml file is located) and run:

docker-compose down

About

A lightweight file sharing tool that supports large file uploads and downloads through a custom multithreaded HTTP server and socket-based architecture.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published