Zippy is a peer to peer file sharing application built with Next.js, allowing users to share files quickly and efficiently. The application leverages WebRTC for real-time communication and socket.io for signaling, providing a seamless user experience.
- P2P File Sharing: Share files directly between users without the need for a central server.
- Real-time Chat: Communicate with peers while sharing files.
- Responsive Design: Works on various devices and screen sizes.
- Easy to Use: Intuitive interface for quick file sharing.
To get started with z1ppie, follow these steps:
Make sure you have the following installed:
- Node.js (v14 or later)
- npm (v6 or later) or Yarn
-
Clone the repository:
git clone https://github.com/ShivaanjayNarula/Zippy.git cd client -
Install the dependencies:
npm install # or yarn install -
Set up your environment variables. Create a
.envfile in the root directory and add your socket server URL:NEXT_PUBLIC_SOCKET_SERVER_URL=your_socket_server_urlYou can use http://localhost:8000 as the socket server url for a local environment.
-
Run the development server:
npm run dev # or yarn dev -
Open http://localhost:3000 in your browser to see the application in action.
-
Clone the repository:
git clone https://github.com/ShivaanjayNarula/zippy.git cd server -
Install dependencies:
npm install
-
Start the server:
npm start
-
- Open http://localhost:8000 in your browser to see the application in action.
Note that both the peers should be on the same network to communicate.
- Navigate to the home page and click on "Start sharing" to begin.
- Enter the peer's token to connect and start sharing files.
- Use the chat feature to communicate with your peers during the file transfer.
- Next.js: A React framework for building server-rendered applications.
- WebRTC: For real-time peer-to-peer communication.
- Socket.io: For signaling and real-time event handling.
- React: A JavaScript library for building user interfaces.
- Tailwind CSS: For styling the application.
- Aceternity & Shadcn: For beautiful components.
Contributions are welcome! If you have suggestions for improvements or new features, feel free to open an issue or submit a pull request.
- Fork the repository.
- Create a new branch (
git checkout -b feature/YourFeature). - Make your changes and commit them (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature/YourFeature). - Open a pull request.