Welcome to the Decentralized Chat DApp branded Chatzone
! This project aims to create a decentralized chat application using Ethereum blockchain and IPFS for secure profile image storage. Below you'll find information on the project structure, setup instructions, and how to contribute.
This project is a decentralized chat application built on Ethereum blockchain and IPFS. Users can securely communicate with each other using smart contracts for messaging and IPFS for profile image storage. Gasless transactions are facilitated through a custom relayer service.
- Decentralized Messaging: Users can send and receive messages securely through Ethereum smart contracts.
- Profile Image Storage: Profile images are stored on IPFS, ensuring decentralized and censorship-resistant access.
- Gasless Transactions: Gasless transactions are supported via a custom relayer service, allowing users to interact with the DApp without holding ETH.
- ENS Integration: Ethereum Name Service (ENS) is integrated to provide human-readable usernames for users.
- Ethereum: Ethereum blockchain is used for smart contract development and messaging functionality.
- IPFS: InterPlanetary File System (IPFS) is utilized for decentralized profile image storage.
- Node.js: Node.js is used for backend development, including the custom relayer service.
- React: React.js is used for building the frontend user interface.
- Solidity: Solidity is the programming language used for writing smart contracts.
- Ethers.js: Ethers.js is used for interacting with Ethereum blockchain from the frontend.
- Express.js: Express.js is used to create the custom relayer service.
- Truffle Suite: Truffle Suite is used for smart contract development, testing, and deployment.
The project is structured as follows:
contracts/
: Contains Solidity smart contracts for the chat application and other functionalities.frontend/
: Contains the React.js frontend for the decentralized chat DApp.myRelayer/
: Contains the Node.js backend for the custom relayer service.README.md
: The README file you are currently reading.
To set up the project locally, follow these steps:
- Clone the repository:
git clone <repository-url>
- Navigate to the project directory:
cd decentralized-chat-dapp
- Install dependencies:
- For frontend:
cd frontend && npm install
- For backend:
cd myRelayer && npm install
- For frontend:
- Start the frontend and backend servers:
- For frontend:
cd frontend && npm start
- For backend:
cd myRelayer && npm start
- For frontend:
Once the project is set up and running, users can access the decentralized chat DApp through their web browser. They can register their username, upload a profile image, and start communicating with other users securely.
Contributions are welcome! If you'd like to contribute to this project, please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature-branch
- Make your changes and commit them:
git commit -m 'Add new feature'
- Push to the branch:
git push origin feature-branch
- Submit a pull request.
This project is licensed under the MIT License.