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
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.
- Mint new NFTs (Admin)
- Purchase NFTs
- Sell your NFTs
- View your NFTs
- mkcert
- Javascript dependencies are listed in each of the project components
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
It is required to run each of the commands in a different terminal
- Start the hardhat node
cd nfties
npm install
npx hardhat node- Deploy contracts
cd nfties/scripts
bash deploy.sh- Start the authentication node
cd nfties/authentication
npm install
npm start- Start the ipfs node
cd nfties/ipfs
npm install
npm start- Start the frontend
cd nfties/frontend
npm install
npm start- 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

