diff --git a/package-lock.json b/package-lock.json index c899e10..3e50602 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.4.2", - "react-scripts": "5.0.1", + "react-scripts": "^5.0.1", "sass": "^1.55.0", "web-vitals": "^2.1.4" } diff --git a/package.json b/package.json index 7523385..6381b45 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.4.2", - "react-scripts": "5.0.1", + "react-scripts": "^5.0.1", "sass": "^1.55.0", "web-vitals": "^2.1.4" }, diff --git a/public/logo_calendrier.jpg b/public/logo_calendrier.jpg new file mode 100644 index 0000000..7283283 Binary files /dev/null and b/public/logo_calendrier.jpg differ diff --git a/public/logo_calendrier.png b/public/logo_calendrier.png new file mode 100644 index 0000000..828cca8 Binary files /dev/null and b/public/logo_calendrier.png differ diff --git a/public/logo_graphique.jpg b/public/logo_graphique.jpg new file mode 100644 index 0000000..c82a3ff Binary files /dev/null and b/public/logo_graphique.jpg differ diff --git a/public/logo_graphique.png b/public/logo_graphique.png new file mode 100644 index 0000000..840bfcb Binary files /dev/null and b/public/logo_graphique.png differ diff --git a/public/logo_groupe.png b/public/logo_groupe.png new file mode 100644 index 0000000..6edb604 Binary files /dev/null and b/public/logo_groupe.png differ diff --git a/public/logo_parametre.png b/public/logo_parametre.png new file mode 100644 index 0000000..837d6e5 Binary files /dev/null and b/public/logo_parametre.png differ diff --git a/public/logo_person.png b/public/logo_person.png new file mode 100644 index 0000000..0ac515d Binary files /dev/null and b/public/logo_person.png differ diff --git a/public/logo_stats.png b/public/logo_stats.png new file mode 100644 index 0000000..b9415e9 Binary files /dev/null and b/public/logo_stats.png differ diff --git a/server-api/api.js b/server-api/api.js index 531e082..4b22971 100644 --- a/server-api/api.js +++ b/server-api/api.js @@ -22,7 +22,7 @@ const app = express(); app.use(bodyparser.json()); const corsOptions = { - origin:'', + origin:'*', credentials:true, optionSuccessStatus:200, } diff --git a/server-api/package-lock.json b/server-api/package-lock.json index 8b806f2..a3cdf71 100644 --- a/server-api/package-lock.json +++ b/server-api/package-lock.json @@ -9,6 +9,7 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "axios": "^1.1.3", "cors": "^2.8.5", "express": "^4.18.2", "mysql": "^2.18.1" @@ -53,6 +54,21 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz", + "integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -168,6 +184,17 @@ "fsevents": "~2.3.2" } }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -231,6 +258,14 @@ "ms": "2.0.0" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -344,6 +379,38 @@ "node": ">= 0.8" } }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -758,6 +825,11 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", @@ -1097,6 +1169,21 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz", + "integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1182,6 +1269,14 @@ "readdirp": "~3.6.0" } }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1233,6 +1328,11 @@ "ms": "2.0.0" } }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, "depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -1324,6 +1424,21 @@ "unpipe": "~1.0.0" } }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, "forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -1623,6 +1738,11 @@ "ipaddr.js": "1.9.1" } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", diff --git a/server-api/package.json b/server-api/package.json index a4f4b10..4abc910 100644 --- a/server-api/package.json +++ b/server-api/package.json @@ -10,6 +10,7 @@ "author": "", "license": "ISC", "dependencies": { + "axios": "^1.1.3", "cors": "^2.8.5", "express": "^4.18.2", "mysql": "^2.18.1" diff --git a/src/App.js b/src/App.js index db1bed3..286ca1a 100644 --- a/src/App.js +++ b/src/App.js @@ -1,9 +1,7 @@ import React from 'react'; import { BrowserRouter, Routes, Route } from 'react-router-dom'; -//import Connexion from './pages/Connexion'; -import Admin from './pages/Admin.js'; -import Admin_supp from './pages/Admin_supp.js'; -import Admin_modif from './pages/Admin_modif.js'; +import Connexion from './pages/Connexion'; +// import Admin from './pages/Admin.js'; const App = () => { return ( @@ -13,7 +11,7 @@ const App = () => { // // - + ); } diff --git a/src/pages/Compte.js b/src/pages/Compte.js new file mode 100644 index 0000000..8a3704c --- /dev/null +++ b/src/pages/Compte.js @@ -0,0 +1,42 @@ +import React from 'react'; + + +const Compte = () => { + return ( + + + + +
+ {/* Create an account page */} +
+

Mon Compte

+
+
+ + + + +
+ +
+
+
+
+ + + + + + +
+
+

Compte

+
+
+
+ + ); +}; + +export default Compte; \ No newline at end of file diff --git a/src/pages/Connexion.js b/src/pages/Connexion.js index 683f26d..12bb309 100644 --- a/src/pages/Connexion.js +++ b/src/pages/Connexion.js @@ -1,63 +1,82 @@ -import React from 'react'; -import CryptoJS from 'crypto-js'; +import axios from 'axios' +import React, { useState } from 'react'; +const api = axios.create({ + baseURL: 'http://localhost:8080' + }) + +function Connexion() { -const Connexion = () => { - return ( -
- {/* Create a connexion page */} - -
- - + const [auth, setAuth] = useState(""); + const [login, setLogin] = useState(""); + const [password, setPassword] = useState(""); + + function changeLogin(event) { + setLogin(event.target.value); + } + + function changePassword(event) { + setPassword(event.target.value); + } + + function chechAuth(event) { + + // No refresh on Click + event.preventDefault(); + + if (login === "") { + setAuth("Unknown"); + return; + } + + if (password === "") { + setAuth("Failed"); + return; + } + const apiString = '/User/Auth/' + login + "/" + password; + api.get(apiString).then((response) => { + const users = response.data; + if (users.length > 0) + if (users[0].result === 1) + setAuth("Succeed"); + else + setAuth("Failed"); + else + setAuth("Unknown"); + }); + } + + if (auth === "Succeed") { + return( +
My CRM
+ ); + } + else { + return ( +
+ + +
- - - - - - - + + + + -
-
- - - Mot de passe oubliƩ ? -
- ); -}; - -/* Envoyer le pseudo et le mot de passe */ -function sendPseudo() { - var pseudo = document.getElementById("pseudo").value; - var password = document.getElementById("password").value; - // transforme le pseudo en son format sha256 - console.log(password); - var password = CryptoJS.SHA256(password).toString(CryptoJS.enc.Hex); - console.log(password); - var data = { - pseudo: pseudo, - password: password - }; - console.log(data); - // var xhr = new XMLHttpRequest(); - // xhr.open("POST", "http://localhost:3000/api/auth/login", true); - // xhr.setRequestHeader('Content-Type', 'application/json'); - // xhr.send(JSON.stringify(data)); - // xhr.onreadystatechange = function () { - // if (xhr.readyState === 4 && xhr.status === 200) { - // var json = JSON.parse(xhr.responseText); - // console.log(json); - // } - // } + + +

{auth === ""?'':auth === "Failed"?'Authentification Failed':'User Unknown'}

+ + + ); + } } - export default Connexion; \ No newline at end of file diff --git a/src/styles/components/_compte.scss b/src/styles/components/_compte.scss new file mode 100644 index 0000000..1f312ed --- /dev/null +++ b/src/styles/components/_compte.scss @@ -0,0 +1,123 @@ +body { + background-image: url("../../../public/fond_page_connexion.png"); + + .page_compte { + display: flex; + flex-direction: column; + justify-content: space-evenly; + width: auto; + height: 100vh; + margin-left: 10px; + margin-right: 10px; + + .haut_de_page { + display: flex; + flex-direction: row; + justify-content: space-between; + padding: 50px; + width: auto; + height: 10%; + align-items: center; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + + .titre { + font-size: 40px; + font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; + } + + .rechLogo { + display: flex; + flex-direction: row; + justify-content: space-between; + + .input_box { + display: flex; + justify-content: center; + align-items: center; + position: relative; + height: 40px; + max-width: 350px; + width: 100%; + margin: 30px 30px; + border-radius: 25px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + + input { + position: relative; + width: 100%; + height: 100%; + padding: 0 15px 0 65px; + outline: none; + border: none; + border-radius: 25px; + font-size: 16px; + font-weight: 400; + color: #333; + } + + .search { + display: flex; + align-items: center; + justify-content: center; + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 60px; + border-radius: 25px 0 0 25px; + + .search-icon { + font-size: 30px; + color: black; + } + } + } + + .logo { + display: flex; + width: 100px; + height: 100px; + } + } + } + + .bas_de_page { + display: flex; + flex-direction: row; + justify-content: space-between; + width: auto; + height: 86%; + + .nav_bar_verticale { + display: flex; + flex-direction: column; + width: 5%; + height: auto; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + } + + .Compte { + display: flex; + flex-direction: column; + width: 94.3%; + height: auto; + + background: rgba(255, 255, 255, 0.3); + border-radius: 15px; + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(15px); + } + } + } +} diff --git a/src/styles/index.scss b/src/styles/index.scss index 666575f..2105f87 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -1,3 +1,4 @@ @import "./settings.scss"; @import "./components/connexion.scss"; -@import "./components/admin.scss"; \ No newline at end of file +@import "./components/admin.scss"; +@import "./components/compte.scss"; \ No newline at end of file