Skip to content

A secure Pastebin alternative with blockchain-powered encryption and decentralized storage

License

Notifications You must be signed in to change notification settings

codehasan/SecurePaste

Repository files navigation

Contributors Forks Stargazers Issues Apache License 2.0


Logo

SecurePaste

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

About The Project

Product Banner

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.

Key Features:

  • 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.

Common Features (Pastebin):

  • 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.

Built With

The website is built using the following libraries and frameworks.

Next JS React TailwindCSS DaisyUI Zod Prisma

For database and storage, the following tools are used.

Supabase Pinata IPFS

Smart Contracts are deployed on the Ethereum blockchain and developed using the following tools and languages.

Solidity Hardhat

Install

To run this project locally follow the below steps.

Prerequisites

  • Make sure you have hardhat installed globally.

    npm install hardhat@latest -g
  • Install MetaMask wallet extension for your browser.

    Chrome Web Store  |  Firefox Addons

Installation

  • 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

Roadmap

  • 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).

Contributing

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!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

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.

Contact

You can contact me using either of these social media platforms or send me an email.

  • LinkedIn
  • Telegram
  • Twitter
  • Gmail

Back to top

About

A secure Pastebin alternative with blockchain-powered encryption and decentralized storage

Topics

Resources

License

Stars

Watchers

Forks