# Codi i manual d'execució Dins d'aquest fitxer podeu trobar on recuperar el codi de l'aplicació i els passos a seguir per executar-la en la màquina local. ## El codi El codi de l'aplicació web es pot trobar a: * API REST: https://github.com/trackdevel/trackdev-spring * SPA: https://github.com/trackdevel/trackdev-react ## API REST Per l'aplicació servidor és necessari tenir instal·lat: * JDK (Java Development Kit) * Gradle >= 7.0.1 * MySQL Primer de tot cal crear una base de dades nova. Per defecte l'API REST utilitza una base de dades anomenada `trackdev` amb usuari i password `trackdev`. Per crear la base de dades podeu executar: ``` CREATE DATABASE trackdev; CREATE USER 'trackdev'@'localhost' IDENTIFIED BY 'trackdev'; GRANT ALL ON trackdev.* TO 'trackdev'@'localhost'; ``` Executar l'API amb base de dades MySQL: ``` gradle bootRun --args='--spring.profiles.active=mysqldb' ``` En MariaDB no s'ha provat l'aplicació final, però en principi Hibernate el suporta. Per MariaDB no passeu els args. Opcionalment per no instal·lar Gradle podeu fer servir el Gradle Wrapper `gradlew`, que fa servir un JAR local dins el sistema de control de versions i que instal·la localment la versió de Gradle necessària. Podeu validar el JAR comprovant el checksum a https://gradle.org/release-checksums/ . Substituïu `gradle` per `gradlew` en les comandes anteriors. L'API REST ja es pot accedir a `https://localhost:8080`. Sense l'aplicació client podeu provar l'API REST usant Postman i important la col·lecció disponible a l'arrel del repositori `TrackDev.postman_collection.json`. Totes les crides necessiten com a primer pas demanar el token JWT amb la crida `/auth/login`. Les úniques crides anònimes són la per iniciar sessió i registre. El token JWT ja es guarda amb una variable local utilitzada en les altres crides. Usuaris de prova que podeu fer servir són: "professor1", amb password "123456", i "student1" amb password "0000". ## SPA Per l'aplicació servidor és necessari tenir instal·lat: * NPM (Node package manager) Primer de tot heu d'instal·lar les dependències: ``` npm install ``` Executar l'aplicació client en mode de desenvolupament: ``` npm start ``` L'aplicació client ja es pot accedir a `http://localhost:3000`. ### Observacions * En la primera execució de totes, cal aceptar el certificat local de l'API a `https://localhost:8080`, sinó totes les crides AJAX fallen.