A secure Pastebin alternative with blockchain-powered encryption and decentralized storage.
PROJECT UNDER DEVELOPMENT
Check Roadmap to see current progress.
View Demo
|
Report Bug
|
Request Feature
Table of Contents
This project is built as an alternative to Pastebin. The key difference is that SecurePaste allows users to store their content on Blockchain to ensure data integrity and immutability. Moreover it's tailored for ease of use, allowing users to securely store their data and also have the freedom to select between Web3 (Blockchain) and Web2 (Traditional) storage methods, ensuring both security and convenience are prioritized.
- Blockchain-Powered Encryption: Encrypt your data with asymmetric cryptography to maximize data integrity.
- Decentralized Storage: Choose decentralized storage options like
IPFS
for data resilience and privacy. - Data Immutability: Private contents are stored in the Blockchain using Smart Contracts.
- User-Friendly Interface: Intuitive design makes it easy to securely store and manage your content.
- Customizable Sharing: Share your stored content publicly or restrict content visibility to private only.
- Syntax Highlighting: Enable syntax highlighting for your desired language in your stored content.
- Custom Tags: Apply multiple tags to categorize your content.
Whether you’re a developer safeguarding sensitive code or an individual protecting personal notes, our platform offers a reliable solution backed by the latest technologies in blockchain innovation.
The website is built using the following libraries and frameworks.
For database and storage, the following tools are used.
Smart Contracts are deployed on the Ethereum
blockchain and developed using the following tools and languages.
To run this project locally follow the below steps.
-
Make sure you have
hardhat
installed globally.npm install hardhat@latest -g
-
Install MetaMask wallet extension for your browser.
-
Clone the repo
git clone https://github.com/codehasan/SecurePaste.git
-
Install NPM packages for EVM
npm install
-
Install NPM packages for frontend
cd frontend npm install
-
Enter your MongoDB database URL in
frontend/.env.local
MONGO_URI=mongodb+srv://<username>:<password>@cluster0.mongodb.net/<dbname>?retryWrites=true&w=majority
-
Start hardhat node
npx hardhat node
-
Run the project in development mode
cd frontend npm run dev
- Build user authentication system.
- Sign up
- Sign in
- Email verification
- Recover account
- Delete account
- Build user content management system.
- Create a new paste
- View a paste's content
- Build nested comment system
- Add metrics feature - like or dislike a paste or comment
- Update a paste's content
- Delete a paste
- Print a paste
- Download a paste as .txt file
- Build account usage management system.
- 'My account' page with all owned pastes shown in pagination.
- 'My comments' page with all comments made in all posts.
- Build content querying mechanism.
- Query the database for the given keyword and show results in a pagination.
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the Apache License (2.0) . See LICENSE
for terms and conditions.
Copyright (c) 2024 Ratul Hasan
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
You can contact me using either of these social media platforms or send me an email.