diff --git a/.gitignore b/.gitignore index 1e7cd564844a1f6418b743aa031d7dfce55234d9..eae8983113e6f7760bf058bf426dd1a53db090c1 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,6 @@ yarn-error.log* ./back/node_modules */node_modules /node_modules + +# secret files +./back/secrets.js diff --git a/back/controller.js b/back/controller.js index 081eb244dce801bd367ea2b500f3a47e2da009de..7ce550e4302dacb6f672f903a53ca50a9dff080c 100644 --- a/back/controller.js +++ b/back/controller.js @@ -2,6 +2,7 @@ scores = require('./controllers/scores.controller'); equipe = require('./controllers/equipe.controller'); participant = require('./controllers/participant.controller'); objectifs = require('./controllers/objectifs.controller'); +administrateur = require('./controllers/administrateur.controller'); module.exports = {equipe,participant,objectifs,scores} diff --git a/back/controllers/administrateur.controller.js b/back/controllers/administrateur.controller.js new file mode 100644 index 0000000000000000000000000000000000000000..cd941813bb3cd432058faced2168f7ec3804d3e7 --- /dev/null +++ b/back/controllers/administrateur.controller.js @@ -0,0 +1,12 @@ +const axios = require('axios'); +const mysql = require('mysql'); +var [dbpassword, dbuser] = require('../secrets.js'); + +const dbConfig = { + host: process.env.MYSQL_HOST_IP, + user: dbuser, + password: dbpassword, + database: process.env.MYSQL_DATABASE, +}; + +module.exports = {} diff --git a/back/controllers/equipe.controller.js b/back/controllers/equipe.controller.js index 38498fbd6a0048d5a3a6b5e1c8ef5c4b4c2320ea..cf80506cc80a159aeaa6ec56f8c380338663e0ee 100644 --- a/back/controllers/equipe.controller.js +++ b/back/controllers/equipe.controller.js @@ -1,11 +1,11 @@ const axios = require('axios'); const mysql = require('mysql'); -var [dbhost, dbpassword, dbuser] = require('../secrets.js'); +var [dbpassword, dbuser] = require('../secrets.js'); const dbConfig = { host: process.env.MYSQL_HOST_IP, - user: process.env.MYSQL_USER, - password: process.env.MYSQL_PASSWORD, + user: dbuser, + password: dbpassword, database: process.env.MYSQL_DATABASE, }; diff --git a/back/controllers/objectifs.controller.js b/back/controllers/objectifs.controller.js index 5c161833dba65264ac5dfbf33fe9e0bf268500f2..28719fd06547891f6522088f2fb1aeea23ef8577 100644 --- a/back/controllers/objectifs.controller.js +++ b/back/controllers/objectifs.controller.js @@ -1,11 +1,11 @@ const axios = require('axios'); const mysql = require('mysql'); -var [dbhost, dbpassword, dbuser] = require('../secrets.js'); +var [dbpassword, dbuser] = require('../secrets.js'); const dbConfig = { host: process.env.MYSQL_HOST_IP, - user: process.env.MYSQL_USER, - password: process.env.MYSQL_PASSWORD, + user: dbuser, + password: dbpassword, database: process.env.MYSQL_DATABASE, }; diff --git a/back/controllers/participant.controller.js b/back/controllers/participant.controller.js index 0abe73ad718989abe47bcd84b4d3e7e6e4fe91f5..916634f343b069a5272123b3782ed50015a0c237 100644 --- a/back/controllers/participant.controller.js +++ b/back/controllers/participant.controller.js @@ -1,11 +1,11 @@ const axios = require('axios'); const mysql = require('mysql'); -var [dbhost, dbpassword, dbuser] = require('../secrets.js'); +var [dbpassword, dbuser] = require('../secrets.js'); const dbConfig = { host: process.env.MYSQL_HOST_IP, - user: process.env.MYSQL_USER, - password: process.env.MYSQL_PASSWORD, + user: dbuser, + password: dbpassword, database: process.env.MYSQL_DATABASE, }; diff --git a/back/controllers/scores.controller.js b/back/controllers/scores.controller.js index 87ff131c294c6f9829f7606d471121b80e19a110..fb5a047f496e4429c8a8f286037a3363d9f736b9 100644 --- a/back/controllers/scores.controller.js +++ b/back/controllers/scores.controller.js @@ -1,11 +1,11 @@ const axios = require('axios'); const mysql = require('mysql'); -var [dbhost, dbpassword, dbuser] = require('../secrets.js'); +var [dbpassword, dbuser] = require('../secrets.js'); const dbConfig = { host: process.env.MYSQL_HOST_IP, - user: process.env.MYSQL_USER, - password: process.env.MYSQL_PASSWORD, + user: dbuser, + password: dbpassword, database: process.env.MYSQL_DATABASE, }; diff --git a/back/index.js b/back/index.js index 04b6244b664531cc5b798ce31e72d0c89fdc84fa..7dbf45f08f7e8102ca650b5e64bcbfa76d4a380c 100644 --- a/back/index.js +++ b/back/index.js @@ -1,8 +1,5 @@ var express = require('express'); -var [dbhost, dbpassword, dbuser] = require('./secrets.js'); -var db_port = process.env.DB_PORT || '3036'; - var apiRouter = require('./routes/api'); var app = express(); diff --git a/back/routes/api.js b/back/routes/api.js index 238489f70cb0f3b4a3f2751d2f03403c9bb5437a..330dc48e5e3e21de552a0f0dfe7078f3c4e70b6f 100644 --- a/back/routes/api.js +++ b/back/routes/api.js @@ -4,11 +4,8 @@ const fs = require('fs'); const bodyParser = require('body-parser'); - - var controller = require('../controller') - router.use(bodyParser.json()); router.use(bodyParser.urlencoded({ extended: true })); diff --git a/back/secrets.js b/back/secrets.js index 5e95fe7769fcdf2e5f223c3f4e25230c525d68a4..1569d8dc89cb051d10949beb9aa21b345f670a1d 100644 --- a/back/secrets.js +++ b/back/secrets.js @@ -1,5 +1,4 @@ -const dbhost = "localhost"; const dbpassword = "samplepassword"; const dbuser = "sampleuser"; -module.exports = [dbhost, dbpassword, dbuser]; +module.exports = [dbpassword, dbuser]; diff --git a/front/src/app/accueil/Accueil.js b/front/src/app/accueil/Accueil.js index 9bf3e7454e7b32b8e1f2937a5b4a16b5f006e51d..0005018b756ec24ba0c07ea411013a2258b1d015 100644 --- a/front/src/app/accueil/Accueil.js +++ b/front/src/app/accueil/Accueil.js @@ -1,5 +1,4 @@ import React from 'react'; -//import { Link } from 'react-router-dom'; import Objectifs from './objectifs/Objectifs'; import Classements from './Classements'; diff --git a/front/src/app/accueil/Classements.js b/front/src/app/accueil/Classements.js index b9a6affb5398569147868188b27234e9a2ef5720..f24762821c7ca192194fd93bb1ac5603a13f61a4 100644 --- a/front/src/app/accueil/Classements.js +++ b/front/src/app/accueil/Classements.js @@ -1,5 +1,4 @@ import React from 'react'; -//import { Link } from 'react-router-dom'; import { TableauClassementEquipe } from '../classementEquipe/TableauClassementEquipe'; import { TableauClassementIndividuel } from '../classementIndividuel/TableauClassementIndividuel'; diff --git a/front/src/app/administration/Admin.js b/front/src/app/administration/Admin.js index 13a0badf475fb57041e058bd0c7e534e8c3d43e2..9488d99594c374997ceaa9449d6f186d193555fe 100644 --- a/front/src/app/administration/Admin.js +++ b/front/src/app/administration/Admin.js @@ -1,5 +1,4 @@ import React from 'react'; -//import { Link } from 'react-router-dom'; export default () => ( <div class="jumbotron jumbotron-fluid"> diff --git a/front/src/app/administration/GestionAdministrateurs.js b/front/src/app/administration/GestionAdministrateurs.js index 211d42ccc49155dabaedaf537b3c7cf18423223d..e8326513389e255cc48b80bce81d1a149e9c33fb 100644 --- a/front/src/app/administration/GestionAdministrateurs.js +++ b/front/src/app/administration/GestionAdministrateurs.js @@ -1,5 +1,4 @@ import React from 'react'; -//import { Link } from 'react-router-dom'; export default () => ( <div>Gestion des administrateurs</div> diff --git a/front/src/app/administration/SaisieScore.js b/front/src/app/administration/GestionScore.js similarity index 86% rename from front/src/app/administration/SaisieScore.js rename to front/src/app/administration/GestionScore.js index a5fe61345429c5a7b1b40ec776573f040c8d1d3e..c32691bf5e21511b8319af738e9a573a3a00b2fd 100644 --- a/front/src/app/administration/SaisieScore.js +++ b/front/src/app/administration/GestionScore.js @@ -1,5 +1,5 @@ import React from 'react'; -import { TableauScoresAdmin } from './saisieScore/TableauScoresAdmin'; +import { TableauScoresAdmin } from './gestionScore/TableauScoresAdmin'; export default () => ( <div class="container"> diff --git a/front/src/app/administration/gestionEquipes/EditEquipe.js b/front/src/app/administration/gestionEquipes/EditEquipe.js index 7877e4a36a89ead7b964d18b5cc3b92668339f9b..5118b4ffb4425604ef5d5e18732812af54879eb2 100644 --- a/front/src/app/administration/gestionEquipes/EditEquipe.js +++ b/front/src/app/administration/gestionEquipes/EditEquipe.js @@ -1,7 +1,6 @@ -import React, { useState, useEffect } from 'react'; +import React from 'react'; import axios from 'axios'; import { useForm } from 'react-hook-form'; -import { Redirect } from 'react-router-dom'; export function UpdateEquipe({ match, location }){ @@ -24,8 +23,8 @@ export function UpdateEquipe({ match, location }){ <div> <form onSubmit={handleSubmit(onSubmit)}> <div class="form-group"> - <label for="scoreInput">Nom</label> - <input type="text" class="form-control" id="scoreInput" name="name" ref={register}/> + <label for="nameInput">Nom</label> + <input type="text" class="form-control" id="nameInput" name="name" ref={register}/> </div> <button type="submit" class="btn btn-secondary">Modifier</button> </form> diff --git a/front/src/app/administration/gestionEquipes/NouvelleEquipe.js b/front/src/app/administration/gestionEquipes/NouvelleEquipe.js index d1875843a1dd6554f5bc3f4dcdbe445e006cf33b..1aec38a658a8995e821fb64b26ddafc55a97c45c 100644 --- a/front/src/app/administration/gestionEquipes/NouvelleEquipe.js +++ b/front/src/app/administration/gestionEquipes/NouvelleEquipe.js @@ -1,7 +1,6 @@ -import React, { useState, useEffect } from 'react'; +import React from 'react'; import axios from 'axios'; import { useForm } from 'react-hook-form'; -import { Redirect } from 'react-router-dom'; export function AddEquipeForm(){ @@ -24,8 +23,8 @@ export function AddEquipeForm(){ <div> <form onSubmit={handleSubmit(onSubmit)}> <div class="form-group"> - <label for="scoreInput">Nom</label> - <input type="text" class="form-control" id="scoreInput" name="name" ref={register} required/> + <label for="nameInput">Nom</label> + <input type="text" class="form-control" id="nameInput" name="name" ref={register} required/> </div> <button type="submit" class="btn btn-secondary">Ajouter</button> </form> diff --git a/front/src/app/administration/gestionObjectifs/AfficheObjectif.js b/front/src/app/administration/gestionObjectifs/AfficheObjectif.js index 383c36a958741f21bea98f0c92b204dd26b0cbd1..f449eb0685c464b6a326daf09335216500bd9b46 100644 --- a/front/src/app/administration/gestionObjectifs/AfficheObjectif.js +++ b/front/src/app/administration/gestionObjectifs/AfficheObjectif.js @@ -1,7 +1,6 @@ import React, { useState, useEffect } from 'react'; import axios from 'axios'; import { useForm } from 'react-hook-form'; -import { Redirect } from 'react-router-dom'; export function AfficheObjectif({ match, location }){ @@ -13,6 +12,7 @@ export function AfficheObjectif({ match, location }){ useEffect(() => { objectifs.map(item => { if (item.id==id) {setCurrentObjectif(item)} + return null; }) }); @@ -79,8 +79,8 @@ export function UpdateObjectifName({ match, location }){ <div> <form onSubmit={handleSubmit(onSubmit)}> <div class="form-group"> - <label for="scoreInput">Nom</label> - <input type="text" class="form-control" id="scoreInput" name="name" ref={register}/> + <label for="nameInput">Nom</label> + <input type="text" class="form-control" id="nameInput" name="name" ref={register}/> </div> <button type="submit" class="btn btn-secondary">Modifier</button> </form> @@ -109,8 +109,8 @@ export function UpdateObjectifDescription({ match, location }){ <div> <form onSubmit={handleSubmit(onSubmit)}> <div class="form-group"> - <label for="participantInput">Description</label> - <textarea class="form-control" id="participantInput" rows="3" name="description" ref={register}></textarea> + <label for="descriptionInput">Description</label> + <textarea class="form-control" id="descriptionInput" rows="3" name="description" ref={register}></textarea> </div> <button type="submit" class="btn btn-secondary">Modifier</button> </form> @@ -139,8 +139,8 @@ export function UpdateObjectifValue({ match, location }){ <div> <form onSubmit={handleSubmit(onSubmit)}> <div class="form-group"> - <label for="scoreInput">Objectif</label> - <input type="number" class="form-control" id="scoreInput" name="value" ref={register}/> + <label for="valueInput">Objectif</label> + <input type="number" class="form-control" id="valueInput" name="value" ref={register}/> </div> <button type="submit" class="btn btn-secondary">Modifier</button> </form> @@ -169,8 +169,8 @@ export function UpdateObjectifCoef({ match, location }){ <div> <form onSubmit={handleSubmit(onSubmit)}> <div class="form-group"> - <label for="scoreInput">Coefficient (utiliser un point et non pas une virgule)</label> - <input class="form-control" id="scoreInput" name="coef" ref={register}/> + <label for="coefInput">Coefficient (utiliser un point et non pas une virgule)</label> + <input class="form-control" id="coefInput" name="coef" ref={register}/> </div> <button type="submit" class="btn btn-secondary">Modifier</button> </form> diff --git a/front/src/app/administration/gestionObjectifs/NouvelObjectif.js b/front/src/app/administration/gestionObjectifs/NouvelObjectif.js index a27387862ff4381ccb160f16b6aa99a126975b34..ee30dae938a59e5ffdc55ab4c66eed20587c8549 100644 --- a/front/src/app/administration/gestionObjectifs/NouvelObjectif.js +++ b/front/src/app/administration/gestionObjectifs/NouvelObjectif.js @@ -1,7 +1,6 @@ -import React, { useState, useEffect } from 'react'; +import React from 'react'; import axios from 'axios'; import { useForm } from 'react-hook-form'; -import { Redirect } from 'react-router-dom'; export function AddObjectifForm(){ @@ -28,20 +27,20 @@ export function AddObjectifForm(){ <div> <form onSubmit={handleSubmit(onSubmit)}> <div class="form-group"> - <label for="scoreInput">Nom</label> - <input type="text" class="form-control" id="scoreInput" name="name" ref={register} required/> + <label for="nameInput">Nom</label> + <input type="text" class="form-control" id="nameInput" name="name" ref={register} required/> </div> <div class="form-group"> - <label for="participantInput">Description</label> - <textarea class="form-control" id="participantInput" rows="3" name="description" ref={register}></textarea> + <label for="descriptionInput">Description</label> + <textarea class="form-control" id="descriptionInput" rows="3" name="description" ref={register}></textarea> </div> <div class="form-group"> - <label for="equipeInput">Objectif</label> - <input type="number" class="form-control" id="equipeInput" name="value" ref={register} required/> + <label for="valueInput">Objectif</label> + <input type="number" class="form-control" id="valueInput" name="value" ref={register} required/> </div> <div class="form-group"> <label for="coefInput">Coefficient</label> - <input type="number" class="form-control" id="coefInput" name="coef" ref={register}/> + <input type="float" class="form-control" id="coefInput" name="coef" ref={register}/> </div> <button type="submit" class="btn btn-secondary">Ajouter</button> </form> diff --git a/front/src/app/administration/gestionObjectifs/TableauObjectifsAdmin.js b/front/src/app/administration/gestionObjectifs/TableauObjectifsAdmin.js index 57ea87784f80b4b3b491ddecd13a2616943a80c5..fb704a8d7e793f49fc519a2f281e7c1003b24f4f 100644 --- a/front/src/app/administration/gestionObjectifs/TableauObjectifsAdmin.js +++ b/front/src/app/administration/gestionObjectifs/TableauObjectifsAdmin.js @@ -13,7 +13,7 @@ export function TableauObjectifsAdmin(){ <th scope="col">Description</th> <th scope="col">Objectif</th> <th scope="col">Coefficient</th> - <th scope="col">Modifier</th> + <th scope="col">Voir</th> <th scope="col">Supprimer</th> </tr> </thead> diff --git a/front/src/app/administration/gestionParticipants/EditParticipant.js b/front/src/app/administration/gestionParticipants/EditParticipant.js index 050a11509e2123eef3088026cdb68d9329f2662b..d91299206eb639b0e51091dd96ace072de6f9bef 100644 --- a/front/src/app/administration/gestionParticipants/EditParticipant.js +++ b/front/src/app/administration/gestionParticipants/EditParticipant.js @@ -1,7 +1,6 @@ -import React, { useState, useEffect } from 'react'; +import React from 'react'; import axios from 'axios'; import { useForm } from 'react-hook-form'; -import { Redirect } from 'react-router-dom'; export function UpdateParticipant({ match, location }){ @@ -24,8 +23,8 @@ export function UpdateParticipant({ match, location }){ <div> <form onSubmit={handleSubmit(onSubmit)}> <div class="form-group"> - <label for="scoreInput">Nom</label> - <input type="text" class="form-control" id="scoreInput" name="name" ref={register}/> + <label for="nameInput">Nom</label> + <input type="text" class="form-control" id="nameInput" name="name" ref={register}/> </div> <button type="submit" class="btn btn-secondary">Modifier</button> </form> diff --git a/front/src/app/administration/gestionParticipants/NouveauParticipant.js b/front/src/app/administration/gestionParticipants/NouveauParticipant.js index a103c5cf61270a35a0e5a4b7c84336bc30a68421..22dd6e0c06d5b2ee9707cf13d270501edaf462d4 100644 --- a/front/src/app/administration/gestionParticipants/NouveauParticipant.js +++ b/front/src/app/administration/gestionParticipants/NouveauParticipant.js @@ -1,7 +1,6 @@ -import React, { useState, useEffect } from 'react'; +import React from 'react'; import axios from 'axios'; import { useForm } from 'react-hook-form'; -import { Redirect } from 'react-router-dom'; export function AddParticipantForm(){ @@ -24,8 +23,8 @@ export function AddParticipantForm(){ <div> <form onSubmit={handleSubmit(onSubmit)}> <div class="form-group"> - <label for="scoreInput">Nom</label> - <input type="text" class="form-control" id="scoreInput" name="name" ref={register} required/> + <label for="nameInput">Nom</label> + <input type="text" class="form-control" id="nameInput" name="name" ref={register} required/> </div> <button type="submit" class="btn btn-secondary">Ajouter</button> </form> diff --git a/front/src/app/administration/saisieScore/AfficheScore.js b/front/src/app/administration/gestionScore/AfficheScore.js similarity index 96% rename from front/src/app/administration/saisieScore/AfficheScore.js rename to front/src/app/administration/gestionScore/AfficheScore.js index 4406465256d895a7c5ce2b945e0c7964a1661b44..706764f12356db5b1b2c18319bea49b44ce736cc 100644 --- a/front/src/app/administration/saisieScore/AfficheScore.js +++ b/front/src/app/administration/gestionScore/AfficheScore.js @@ -1,7 +1,6 @@ import React, { useState, useEffect } from 'react'; import axios from 'axios'; import { useForm } from 'react-hook-form'; -import { Redirect } from 'react-router-dom'; export function AfficheScore({ match, location }){ @@ -13,6 +12,7 @@ export function AfficheScore({ match, location }){ useEffect(() => { scores.map(item => { if (item.id==id) {setCurrentScore(item)} + return null; }) }); @@ -145,8 +145,8 @@ export function UpdateScoreParticipant({ match, location }){ <div> <form onSubmit={handleSubmit(onSubmit)}> <div class="form-group"> - <label for="equipeInput">Equipe</label> - <select class="form-control" id="equipeInput" name="participant" ref={register}> + <label for="participantInput">Equipe</label> + <select class="form-control" id="participantInput" name="participant" ref={register}> {participants.map(item => (<option value={item.id}>{item.name}</option>))} </select> </div> diff --git a/front/src/app/administration/saisieScore/DeleteScore.js b/front/src/app/administration/gestionScore/DeleteScore.js similarity index 87% rename from front/src/app/administration/saisieScore/DeleteScore.js rename to front/src/app/administration/gestionScore/DeleteScore.js index ae6ec1faf90640b40ca1dab9c2c6155bf9f39ff9..9adfbf4ba4fab6f56f58e9b744a3b90d2b92c097 100644 --- a/front/src/app/administration/saisieScore/DeleteScore.js +++ b/front/src/app/administration/gestionScore/DeleteScore.js @@ -14,7 +14,7 @@ export function DeleteScore({ match, location }){ }); return( - <div><h1>Suppression du score...</h1></div> + <div><h1>Suppression...</h1></div> ) }; diff --git a/front/src/app/administration/saisieScore/NouveauScore.js b/front/src/app/administration/gestionScore/NouveauScore.js similarity index 97% rename from front/src/app/administration/saisieScore/NouveauScore.js rename to front/src/app/administration/gestionScore/NouveauScore.js index 1212f9e3f5d029d1375b36d6305ce52a322ba321..d825d5c253c05436ea421d18dc993697cdc61d0c 100644 --- a/front/src/app/administration/saisieScore/NouveauScore.js +++ b/front/src/app/administration/gestionScore/NouveauScore.js @@ -1,7 +1,6 @@ import React, { useState, useEffect } from 'react'; import axios from 'axios'; import { useForm } from 'react-hook-form'; -import { Redirect } from 'react-router-dom'; export function AddScoreForm(){ diff --git a/front/src/app/administration/saisieScore/TableauScoresAdmin.js b/front/src/app/administration/gestionScore/TableauScoresAdmin.js similarity index 96% rename from front/src/app/administration/saisieScore/TableauScoresAdmin.js rename to front/src/app/administration/gestionScore/TableauScoresAdmin.js index 3762f3cbdcdd1cdcae460ad0c6493879a757a351..25d303f8925569052c5368d04df8584e9f0d9e7a 100644 --- a/front/src/app/administration/saisieScore/TableauScoresAdmin.js +++ b/front/src/app/administration/gestionScore/TableauScoresAdmin.js @@ -13,7 +13,7 @@ export function TableauScoresAdmin(){ <th scope="col">Score</th> <th scope="col">Participant</th> <th scope="col">Equipe</th> - <th scope="col">Modifier</th> + <th scope="col">Voir</th> <th scope="col">Supprimer</th> </tr> </thead> diff --git a/front/src/app/classementEquipe/ClassementEquipe.js b/front/src/app/classementEquipe/ClassementEquipe.js index 6388316fee82e568058c2c846819671bc12e2bab..093ebf69bcf7e03de0e43517ca3e224abd9e4a57 100644 --- a/front/src/app/classementEquipe/ClassementEquipe.js +++ b/front/src/app/classementEquipe/ClassementEquipe.js @@ -1,5 +1,4 @@ import React from 'react'; -//import { Link } from 'react-router-dom'; import { TableauClassementEquipe } from './TableauClassementEquipe'; export default () => ( diff --git a/front/src/app/classementIndividuel/ClassementIndividuel.js b/front/src/app/classementIndividuel/ClassementIndividuel.js index a8f5655780aebf5a8583fe4f70beabbbf250d9fd..fcbcd5e3847c0378f4b61205b858bedc62a07a55 100644 --- a/front/src/app/classementIndividuel/ClassementIndividuel.js +++ b/front/src/app/classementIndividuel/ClassementIndividuel.js @@ -1,5 +1,4 @@ import React from 'react'; -//import { Link } from 'react-router-dom'; import { TableauClassementIndividuel } from './TableauClassementIndividuel'; export default () => ( diff --git a/front/src/app/navbar/Navbar.js b/front/src/app/navbar/Navbar.js index 8c512c07ab887f3e739762849f096602f97ea352..b946914c5586f7cdfe773b0d55200c94ad1f184d 100644 --- a/front/src/app/navbar/Navbar.js +++ b/front/src/app/navbar/Navbar.js @@ -14,7 +14,7 @@ export default () => ( <Nav.Link href="/solo">Classement individuel</Nav.Link> <Nav.Link href="/team">Classement par équipe</Nav.Link> <NavDropdown title="Administration" id="basic-nav-dropdown"> - <NavDropdown.Item href="/admin/scores">Saisie des scores</NavDropdown.Item> + <NavDropdown.Item href="/admin/scores">Gestion des scores</NavDropdown.Item> <NavDropdown.Item href="/admin/equipes">Gestion des équipes</NavDropdown.Item> <NavDropdown.Item href="/admin/participants">Gestion des participants</NavDropdown.Item> <NavDropdown.Item href="/admin/objectifs">Gestion des objectifs</NavDropdown.Item> diff --git a/front/src/index.js b/front/src/index.js index 7e7489f4a29cef931333aeb0e9ece4c7de92c69d..432612635fee0aa641912e7b7aca08eaa038ca83 100644 --- a/front/src/index.js +++ b/front/src/index.js @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import React from 'react'; import ReactDOM from 'react-dom'; import { BrowserRouter as Router, Route } from 'react-router-dom'; import Navbar from './app/navbar/Navbar'; @@ -6,17 +6,14 @@ import Accueil from './app/accueil/Accueil'; import Admin from './app/administration/Admin'; import ClassementEquipe from './app/classementEquipe/ClassementEquipe'; import ClassementIndividuel from './app/classementIndividuel/ClassementIndividuel'; -import SaisieScore from './app/administration/SaisieScore'; +import GestionScore from './app/administration/GestionScore'; import GestionEquipes from './app/administration/GestionEquipes'; import GestionParticipants from './app/administration/GestionParticipants'; import GestionAdministrateurs from './app/administration/GestionAdministrateurs'; import GestionObjectifs from './app/administration/GestionObjectifs'; -import { AddScoreForm } from './app/administration/saisieScore/NouveauScore'; -import { AfficheScore } from './app/administration/saisieScore/AfficheScore'; -import { UpdateScoreScore } from './app/administration/saisieScore/AfficheScore'; -import { UpdateScoreEquipe } from './app/administration/saisieScore/AfficheScore'; -import { UpdateScoreParticipant } from './app/administration/saisieScore/AfficheScore'; -import { DeleteScore } from './app/administration/saisieScore/DeleteScore'; +import { AddScoreForm } from './app/administration/gestionScore/NouveauScore'; +import { AfficheScore, UpdateScoreScore, UpdateScoreEquipe, UpdateScoreParticipant } from './app/administration/gestionScore/AfficheScore'; +import { DeleteScore } from './app/administration/gestionScore/DeleteScore'; import { AddEquipeForm } from './app/administration/gestionEquipes/NouvelleEquipe'; import { UpdateEquipe } from './app/administration/gestionEquipes/EditEquipe'; import { DeleteEquipe } from './app/administration/gestionEquipes/DeleteEquipe'; @@ -24,11 +21,7 @@ import { AddParticipantForm } from './app/administration/gestionParticipants/Nou import { UpdateParticipant } from './app/administration/gestionParticipants/EditParticipant'; import { DeleteParticipant } from './app/administration/gestionParticipants/DeleteParticipant'; import { AddObjectifForm } from './app/administration/gestionObjectifs/NouvelObjectif'; -import { AfficheObjectif } from './app/administration/gestionObjectifs/AfficheObjectif'; -import { UpdateObjectifName } from './app/administration/gestionObjectifs/AfficheObjectif'; -import { UpdateObjectifDescription } from './app/administration/gestionObjectifs/AfficheObjectif'; -import { UpdateObjectifValue } from './app/administration/gestionObjectifs/AfficheObjectif'; -import { UpdateObjectifCoef } from './app/administration/gestionObjectifs/AfficheObjectif'; +import { AfficheObjectif, UpdateObjectifName, UpdateObjectifDescription, UpdateObjectifValue, UpdateObjectifCoef } from './app/administration/gestionObjectifs/AfficheObjectif'; import { DeleteObjectif } from './app/administration/gestionObjectifs/DeleteObjectif'; import './index.css'; @@ -38,16 +31,17 @@ ReactDOM.render( <Router> <div> <Route path="/" component={Navbar} /> + <Route exact path="/" component={Accueil} /> <Route path="/home" component={Accueil} /> <Route path="/solo" component={ClassementIndividuel} /> <Route path="/team" component={ClassementEquipe} /> <Route path="/admin" component={Admin} /> - <Route exact path="/admin/scores" component={SaisieScore} /> - <Route path="/admin/scores/nouveau" component={AddScoreForm} /> + <Route exact path="/admin/scores" component={GestionScore} /> <Route exact path="/admin/equipes" component={GestionEquipes} /> <Route exact path="/admin/participants" component={GestionParticipants} /> - <Route exact path="/admin/admins" component={GestionAdministrateurs} /> <Route exact path="/admin/objectifs" component={GestionObjectifs} /> + <Route exact path="/admin/admins" component={GestionAdministrateurs} /> + <Route path="/admin/scores/nouveau" component={AddScoreForm} /> <Route path="/admin/scores/view/:id" component={AfficheScore} /> <Route path="/admin/scores/edit/score/:id" component={UpdateScoreScore} /> <Route path="/admin/scores/edit/equipe/:id" component={UpdateScoreEquipe} /> diff --git a/old.index.js b/old.index.js deleted file mode 100644 index 67cfa3c210d896510c53c170de394795f11d1aa8..0000000000000000000000000000000000000000 --- a/old.index.js +++ /dev/null @@ -1,70 +0,0 @@ -const cors = require('cors'); -const express = require('express'), - app = express(), - bodyParser = require('body-parser'); -const mysql = require('mysql'); - -//Connect to the database -const pool = mysql.createPool({ - host: process.env.MYSQL_HOST_IP, - user: process.env.MYSQL_USER, - password: process.env.MYSQL_PASSWORD, - database: process.env.MYSQL_DATABASE, -}); - -app.use(cors()); - -//Listen to frontend -app.listen(process.env.REACT_APP_SERVER_PORT, () => { - console.log(`App server now listening on port ${process.env.REACT_APP_SERVER_PORT}`); -}); - -//Get data for team ranking -app.get('/classement_par_equipes', (req, res) => { - pool.query(`SELECT Equipe.name,SUM(score) AS score,COUNT(participantId) AS nbParticipant,COUNT(score) AS nbScores FROM Score JOIN Equipe ON Equipe.id=Score.equipeId GROUP BY equipeId ORDER BY score DESC;`, (err, results) => { - if (err) { - return res.send(err); - } else { - return res.send(results); - } - }); -}); - -//Get data for individual ranking -app.get('/classement_individuel', (req, res) => { - pool.query(`SELECT Participant.name,SUM(score) AS score,COUNT(equipeId) AS nbEquipes,COUNT(score) AS nbScores FROM Score JOIN Participant ON Participant.id=Score.participantId GROUP BY participantId ORDER BY score DESC;`, (err, results) => { - if (err) { - return res.send(err); - } else { - return res.send(results); - } - }); -}); - -//Get data about goals -app.get('/objectifs', (req, res) => { - pool.query(`SELECT name,description,value,coef,realise FROM Objectif CROSS JOIN (SELECT SUM(score) as realise FROM Score) AS Realise ORDER BY value DESC;`, (err, results) => { - if (err) { - return res.send(err); - } else { - return res.send(results); - } - }); -}); - -//Get scores for admin page -app.get('/scores_admin', (req, res) => { - pool.query(`SELECT Score.id,score,Participant.name AS participant,Equipe.name AS equipe,createdAt as date FROM Score LEFT JOIN Participant ON Participant.id=Score.ParticipantId LEFT JOIN Equipe ON Score.equipeId=Equipe.id ORDER BY date DESC;`, (err, results) => { - if (err) { - return res.send(err); - } else { - return res.send(results); - } - }); -}); - -//Handle add score request -app.post('/test', function(req, res) { - console.log(req.data); - res.sendStatus(200); -});