# TFG---NFT-Marketplace

Treball final de grau - Albert Martínez
Nom del projecte: CriptoArt
https://criptoart.cat/

**Com executar el projecte: **

Les instruccions són per a sistemes operatius Windows, però entenc que no hi haurà molta diferència amb Linux o MacOS.

 1. **Descomprimim Projecte.**
 Veurem 3 carpetes Backend, Frontend i Smartcontracts. No cal executar res de Smartcontracts, els contractes ja estan desplegats a la blockchain.
 2. **Anem a la carpeta Backend** 
	 - Obrim el terminal i creem un entorn virtual de Python (Jo utilitzo Python 3.9):
    $ python -m venv venv --upgrade-deps
	 - Activem l'entorn:
    $ venv\Scripts\activate.bat
    Ara hauries de veure el nom de l'entorn a la línia de comandes
    (venv) $ ....
    - Instal·lem llibreries necessàries per al projecte
	$ pip install -r requirements-windows.txt
	si estàs amb Linux hauries d'instal·lar "requirements-linux.txt"
	- Si no hi ha hagut errors durant l'instal·lació executem l'aplicació:
	$ python app.py
	Hauria d'iniciar-se el servidor a localhost:80
	
 3. **Anem a la carpeta Frontend**
	 - Obrim una terminal i executem (jo utilitzo Node.js 18.14.2):
	    $ npm install
	  - Un cop instal·lats els paquets, executem l'aplicació
	    $ npm start
	    (Triga com un minut a iniciar-se per les llibreries 3D)



**IMPORTANT!**
A la carpeta backend s'inclou l'arxiu *.env*. Aquest arxiu conté dades altament sensibles com les claus d'API i la clau privada del moneder necessàries per firmar transaccions i comunicar-se amb els contractes intel·ligents. Jo he borrat les meves claus privades així que caldria ficar-ne de noves per a tenir l'aplicació funcional.
També s'han eliminat les credencials i claus per a connectar-se amb la base de dades. Així que no serà possible executar un backend funcional de manera local sense crear una nova base de dades a firebase.

si fas que en dev mode react es connecti al servidor de producció no caldrà que executis tú el backend i no hauràs de generar aquests secrets
També pots crear un build en producció de react ($ npm run build) i aquest es connectarà directament amb el backend en producció
