diff --git a/README.md b/README.md index afe9bbbf5ceb45f512355512a98bd8cbf43bfb89..ad7e7614f259ac2d14b51ccda5f8862679020327 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,122 @@ -# Run database +# Installation des dépendances du projet (Linux) -Use docker command: +## Installation de git +``` +sudo apt-get install git -y +``` + +## Installation de docker & docker-compose + +``` +sudo apt-get update +sudo apt-get install \ + ca-certificates \ + curl \ + gnupg \ + lsb-release +``` + +``` +sudo mkdir -p /etc/apt/keyrings +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg +``` + +``` +echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ + $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null +``` + +``` +sudo apt-get update +``` + +``` +sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin +``` + +``` +sudo usermod -aG docker $USER +``` + +``` +reboot +``` + +## Installation de nodejs +``` +sudo apt update +sudo apt install nodejs +node -v +sudo apt install npm +``` + +# Récupération du projet et démarrage des modules + +## Récupération du code depuis le git + +``` +git clone https://githepia.hesge.ch/scott.birner/boldor +cd boldor +``` + +## Base de donnée +Pour Démarrer la base de données: ``` docker-compose up -d ``` -Once started go to http://localhost:1028 +Une fois que la base de données est démarrée, se rendre sur: http://localhost:1028 Login & password: - admin - admin -If first start of database: -1. Click on "boldor" -2. Go to "SQL" tag -3. Copy the content of "database.sql" in the sql textarea -4. Execute +Au premier démarrage de la base de donnée: +1. Cliquer sur "boldor" +2. Aller dans l'onglet "SQL" +3. Copier le contenu du fichier "database.sql" dans le dossier "database" dans la zone de texte +4. Exécuter -Stop database: +Pour stoper la base de donnée : ``` docker-compose down ``` -# Run API +# Démarrer l'api +Se rendre dans le dossier "api" via: +``` +cd api +``` + +Dabord, installer les dépendances via la commande : +``` +npm install +``` + +Démarrer l'interface via +``` +npm run dev +``` + +## Interface administration +Se rendre dans le dossier "frontend" via: +``` +cd frontend +``` + +Dabord, installer les dépendances via la commande : ``` npm install +``` + +Démarrer l'interface via +``` npm run dev ``` -Once started go to http://localhost:8000 \ No newline at end of file +Puis se rendre sur la lien: + +http://localhost:5173/ + +## Interface Cliente \ No newline at end of file diff --git a/database/database.sql b/database/database.sql index c08921ec72ec6b79b8685e1e95cb7042ca1ee548..96145bd4572981d45d24cea962c1a4cfb70288f9 100644 --- a/database/database.sql +++ b/database/database.sql @@ -3,7 +3,7 @@ -- https://www.phpmyadmin.net/ -- -- Hôte : database --- Généré le : sam. 26 nov. 2022 à 10:45 +-- Généré le : sam. 10 déc. 2022 à 10:50 -- Version du serveur : 8.0.22 -- Version de PHP : 7.4.16 @@ -20,7 +20,7 @@ SET time_zone = "+00:00"; -- -- Base de données : `boldor` -- -CREATE DATABASE IF NOT EXISTS `boldor` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; +CREATE DATABASE IF NOT EXISTS `boldor` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; USE `boldor`; -- -------------------------------------------------------- @@ -39,7 +39,9 @@ CREATE TABLE `edition` ( INSERT INTO `edition` (`year`) VALUES (2022), -(2023); +(2023), +(2024), +(2025); -- -------------------------------------------------------- @@ -58,10 +60,20 @@ CREATE TABLE `entry` ( -- INSERT INTO `entry` (`id_entry`, `time_stamp`, `id_tag`) VALUES -(2, '2022-11-26 11:10:14', 19040734), -(3, '2022-11-26 11:10:14', 19040735), -(4, '2022-11-26 11:25:14', 19040736), -(5, '2022-11-26 11:25:22', 19040737); +(2, '2022-11-26 11:11:11', 19040563), +(3, '2022-11-26 12:10:14', 19040723), +(4, '2022-11-26 13:25:14', 19040692), +(5, '2022-11-26 14:25:22', 19040633), +(39, '2022-12-09 11:04:37', 19040562), +(40, '2022-12-09 11:30:04', 19040562), +(41, '2022-12-09 12:28:07', 19040563), +(42, '2022-12-09 12:29:18', 19040563), +(43, '2022-12-10 00:12:20', 19040562), +(44, '2022-12-10 00:12:26', 19040562), +(45, '2022-12-10 00:12:27', 19040562), +(46, '2022-12-10 00:34:15', 19040562), +(47, '2022-12-10 00:34:49', 19040707), +(48, '2022-12-10 00:34:53', 19040723); -- -------------------------------------------------------- @@ -78,10 +90,16 @@ CREATE TABLE `tag` ( -- INSERT INTO `tag` (`id_tag`) VALUES -(19040734), -(19040735), -(19040736), -(19040737); +(19040562), +(19040563), +(19040600), +(19040633), +(19040655), +(19040663), +(19040692), +(19040707), +(19040723), +(19040730); -- -------------------------------------------------------- @@ -100,13 +118,13 @@ CREATE TABLE `tag_team_edition` ( -- INSERT INTO `tag_team_edition` (`id_tag`, `id_team`, `year`) VALUES -(19040734, 1, 2022), -(19040734, 1, 2023), -(19040735, 2, 2022), -(19040735, 2, 2023), -(19040736, 3, 2022), -(19040737, 4, 2022), -(19040737, 3, 2023); +(19040562, 1, 2022), +(19040563, 1, 2023), +(19040633, 3, 2023), +(19040692, 3, 2022), +(19040707, 37, 2022), +(19040723, 2, 2022), +(19040723, 2, 2023); -- -------------------------------------------------------- @@ -116,18 +134,19 @@ INSERT INTO `tag_team_edition` (`id_tag`, `id_team`, `year`) VALUES CREATE TABLE `team` ( `id_team` int NOT NULL, - `name` varchar(75) NOT NULL + `name` varchar(75) NOT NULL, + `participants` text NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Déchargement des données de la table `team` -- -INSERT INTO `team` (`id_team`, `name`) VALUES -(1, 'Stack industry'), -(2, 'Meuf coroporation'), -(3, 'Équipe 14'), -(4, 'Équipe 15'); +INSERT INTO `team` (`id_team`, `name`, `participants`) VALUES +(1, 'Stack industry', 'Luc, Florent, Scott'), +(2, 'Meuf corporation', 'Kelly, Kath,...'), +(3, 'Équipe 14', '...'), +(37, 'Ma super équipe!!!', 'truc\nmachin\nchouette'); -- -- Index pour les tables déchargées @@ -165,7 +184,8 @@ ALTER TABLE `tag_team_edition` -- Index pour la table `team` -- ALTER TABLE `team` - ADD PRIMARY KEY (`id_team`); + ADD PRIMARY KEY (`id_team`), + ADD UNIQUE KEY `name` (`name`); -- -- AUTO_INCREMENT pour les tables déchargées @@ -175,13 +195,13 @@ ALTER TABLE `team` -- AUTO_INCREMENT pour la table `entry` -- ALTER TABLE `entry` - MODIFY `id_entry` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6; + MODIFY `id_entry` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=49; -- -- AUTO_INCREMENT pour la table `team` -- ALTER TABLE `team` - MODIFY `id_team` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; + MODIFY `id_team` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=38; -- -- Contraintes pour les tables déchargées @@ -197,11 +217,11 @@ ALTER TABLE `entry` -- Contraintes pour la table `tag_team_edition` -- ALTER TABLE `tag_team_edition` - ADD CONSTRAINT `ttt_edition` FOREIGN KEY (`year`) REFERENCES `edition` (`year`) ON DELETE RESTRICT ON UPDATE RESTRICT, - ADD CONSTRAINT `ttt_tag` FOREIGN KEY (`id_tag`) REFERENCES `tag` (`id_tag`) ON DELETE RESTRICT ON UPDATE RESTRICT, - ADD CONSTRAINT `ttt_team` FOREIGN KEY (`id_team`) REFERENCES `team` (`id_team`) ON DELETE RESTRICT ON UPDATE RESTRICT; + ADD CONSTRAINT `ttt_edition` FOREIGN KEY (`year`) REFERENCES `edition` (`year`) ON DELETE CASCADE ON UPDATE CASCADE, + ADD CONSTRAINT `ttt_tag` FOREIGN KEY (`id_tag`) REFERENCES `tag` (`id_tag`) ON DELETE CASCADE ON UPDATE CASCADE, + ADD CONSTRAINT `ttt_team` FOREIGN KEY (`id_team`) REFERENCES `team` (`id_team`) ON DELETE CASCADE ON UPDATE CASCADE; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 78572bef096ae8ecc9299b60f6959995b17ebd39..753e8552f36ef60a22c8af582820fb7018177c58 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,3 +22,11 @@ services: - MYSQL_USER=${DB_USER} - MYSQL_PASSWORD=${DB_PWD} - MYSQL_ROOT_PASSWORD=root + # frontend: + # build: ./frontend + # command: npm run dev + # volumes: + # - ./frontend:/usr/app/ + # - ./frontend/node_modules:/usr/app/node_modules + # ports: + # - "5173:5173" diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..791d28af5e5d65a02548212312889c915ce8217d --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,15 @@ +FROM node:latest + +RUN mkdir -p /usr/app/node_modules && chown -R node:node /usr/app + +WORKDIR /usr/app + +COPY package.json . + +USER node + +RUN npm install + +COPY --chown=node:node . . + +EXPOSE 5173 diff --git a/frontend/src/lib/Team.svelte b/frontend/src/lib/Team.svelte index 7255d5f69bbf42d7396ad0533c97e4aa6855e682..7b69e994091cea36d7001635b5ade7873357a231 100644 --- a/frontend/src/lib/Team.svelte +++ b/frontend/src/lib/Team.svelte @@ -89,6 +89,7 @@ .then(function (response) { if (!response.ok) return Promise.reject(response.status); getTeams(); + getAvailableTags(year_selected); }).catch(function (error) { console.log("Error: " + error); });