Skip to content

An NFT marketplace developed as a project for the Sicurezza dei Dati (Data Security) course, part of the Computer Science Master's Degree program at the University of Salerno

Notifications You must be signed in to change notification settings

raffaeleav/nfties

Repository files navigation

An NFT marketplace developed as a project for the Sicurezza dei Dati (Data Security) course, part of the Computer Science Master's Degree program at the University of Salerno

Table of Contents

Overview

Nfties was developed to gain practical experience in building a decentralized application (Dapp), with a strong focus on Ethereum and blockchain security. The platform enables users to explore, buy, and sell a wide range of NFTs. Additionally, the Dapp admin has access to a dedicated dashboard for minting new NFTs.

Preview

Features

  1. Mint new NFTs (Admin)
  2. Purchase NFTs
  3. Sell your NFTs
  4. View your NFTs

Requirements

  • mkcert
  • Javascript dependencies are listed in each of the project components

Project structure

nfties/
│── authentication/        # Authentication express endpoint
│   ├── certificates/
│   ├── scripts/			
│   └── src/       	
│
│── contracts/             # Solidity smart contracts
│
│── frontend/              # React frontend
│   ├── certificates/      
│   ├── scripts/			
│   └── src/               
│       ├── abis/          # Smart contract abis
│       ├── components/    # React components
│       ├── css/
│       └── redux/         # Redux actions, reducers and store
│ 
│── ignition/              # Hardhat ignition modules
│   └── modules/     
│
│── ipfs/                  # Ipfs metadata / images storage endpoint
│   ├── certificates/
│   ├── scripts/			
│   └── src/ 
│
│── scripts/               # Compiling / deployment scripts for contracts 
│
│── test/                  # Unit testing with Mocha 
│
│── .gitignore
│── ...         
└── package.json

How to replicate

It is required to run each of the commands in a different terminal

  1. Start the hardhat node
cd nfties
npm install
npx hardhat node
  1. Deploy contracts
cd nfties/scripts
bash deploy.sh
  1. Start the authentication node
cd nfties/authentication
npm install
npm start
  1. Start the ipfs node
cd nfties/ipfs
npm install
npm start
  1. Start the frontend
cd nfties/frontend
npm install
npm start

Built with

  • Hardhat - used for compiling, deploying, testing, and debugging smart contracts
  • Solidity - used for Ethereum smart contracts
  • Helia - used for decentralized storage of NFT images and metadata
  • React - used for building the frontend
  • Redux - used for global state management in the frontend
  • Express - used for building authentication and ipfs APIs

About

An NFT marketplace developed as a project for the Sicurezza dei Dati (Data Security) course, part of the Computer Science Master's Degree program at the University of Salerno

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published