diff --git a/back-end/.gitignore b/back-end/.gitignore new file mode 100644 index 0000000..9b1ee42 --- /dev/null +++ b/back-end/.gitignore @@ -0,0 +1,175 @@ +# Based on https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore + +# Logs + +logs +_.log +npm-debug.log_ +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Caches + +.cache + +# Diagnostic reports (https://nodejs.org/api/report.html) + +report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json + +# Runtime data + +pids +_.pid +_.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover + +lib-cov + +# Coverage directory used by tools like istanbul + +coverage +*.lcov + +# nyc test coverage + +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) + +.grunt + +# Bower dependency directory (https://bower.io/) + +bower_components + +# node-waf configuration + +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) + +build/Release + +# Dependency directories + +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) + +web_modules/ + +# TypeScript cache + +*.tsbuildinfo + +# Optional npm cache directory + +.npm + +# Optional eslint cache + +.eslintcache + +# Optional stylelint cache + +.stylelintcache + +# Microbundle cache + +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history + +.node_repl_history + +# Output of 'npm pack' + +*.tgz + +# Yarn Integrity file + +.yarn-integrity + +# dotenv environment variable files + +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) + +.parcel-cache + +# Next.js build output + +.next +out + +# Nuxt.js build / generate output + +.nuxt +dist + +# Gatsby files + +# Comment in the public line in if your project uses Gatsby and not Next.js + +# https://nextjs.org/blog/next-9-1#public-directory-support + +# public + +# vuepress build output + +.vuepress/dist + +# vuepress v2.x temp and cache directory + +.temp + +# Docusaurus cache and generated files + +.docusaurus + +# Serverless directories + +.serverless/ + +# FuseBox cache + +.fusebox/ + +# DynamoDB Local files + +.dynamodb/ + +# TernJS port file + +.tern-port + +# Stores VSCode versions used for testing VSCode extensions + +.vscode-test + +# yarn v2 + +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +# IntelliJ based IDEs +.idea + +# Finder (MacOS) folder config +.DS_Store diff --git a/back-end/README.md b/back-end/README.md new file mode 100644 index 0000000..7d4b4f4 --- /dev/null +++ b/back-end/README.md @@ -0,0 +1,15 @@ +# back-end + +To install dependencies: + +```bash +bun install +``` + +To run: + +```bash +bun run index.ts +``` + +This project was created using `bun init` in bun v1.1.18. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime. diff --git a/back-end/bun.lockb b/back-end/bun.lockb new file mode 100755 index 0000000..4d2ea9a Binary files /dev/null and b/back-end/bun.lockb differ diff --git a/back-end/index.js b/back-end/index.js new file mode 100644 index 0000000..20ca97e --- /dev/null +++ b/back-end/index.js @@ -0,0 +1,29 @@ +import { PrismaClient } from "@prisma/client"; + +const client = new PrismaClient(); + +client.$connect(); +console.log("conected"); +function createuser() { + client.user + .create({ + data: { + email: "exemple@gmrgerail.com", + pswd: "1234", + username: "lazlor", + }, + }) + .then(() => {}); +} +//createuser(); + +async function getuser(req, res) { + const posts = await client.user.findMany({ + where: { + username: "lazlor", + }, + }); + console.log(posts); +} +getuser(); +client.$disconnect(); diff --git a/back-end/package.json b/back-end/package.json new file mode 100644 index 0000000..35adb9a --- /dev/null +++ b/back-end/package.json @@ -0,0 +1,15 @@ +{ + "name": "back-end", + "module": "index.ts", + "type": "module", + "devDependencies": { + "@types/bun": "latest", + "prisma": "5.19.1" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "dependencies": { + "@prisma/client": "5.19.1" + } +} \ No newline at end of file diff --git a/back-end/prisma/migrations/20240908141853_init/migration.sql b/back-end/prisma/migrations/20240908141853_init/migration.sql new file mode 100644 index 0000000..0fc7a5f --- /dev/null +++ b/back-end/prisma/migrations/20240908141853_init/migration.sql @@ -0,0 +1,10 @@ +-- CreateTable +CREATE TABLE `User` ( + `id` INTEGER NOT NULL, + `username` VARCHAR(191) NOT NULL, + `pswd` VARCHAR(191) NOT NULL, + `email` VARCHAR(191) NOT NULL, + + UNIQUE INDEX `User_id_key`(`id`), + UNIQUE INDEX `User_email_key`(`email`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; diff --git a/back-end/prisma/migrations/20240908142435_/migration.sql b/back-end/prisma/migrations/20240908142435_/migration.sql new file mode 100644 index 0000000..7a5139e --- /dev/null +++ b/back-end/prisma/migrations/20240908142435_/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE `User` MODIFY `id` INTEGER NOT NULL AUTO_INCREMENT; diff --git a/back-end/prisma/migrations/migration_lock.toml b/back-end/prisma/migrations/migration_lock.toml new file mode 100644 index 0000000..e5a788a --- /dev/null +++ b/back-end/prisma/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (i.e. Git) +provider = "mysql" \ No newline at end of file diff --git a/back-end/prisma/schema.prisma b/back-end/prisma/schema.prisma new file mode 100644 index 0000000..c8348ba --- /dev/null +++ b/back-end/prisma/schema.prisma @@ -0,0 +1,21 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions? +// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init + +generator client { + provider = "prisma-client-js" +} + +datasource db { + provider = "mysql" + url = env("DATABASE_URL") +} + +model User { + id Int @unique @default(autoincrement()) + username String + pswd String + email String @unique +} diff --git a/back-end/tsconfig.json b/back-end/tsconfig.json new file mode 100644 index 0000000..238655f --- /dev/null +++ b/back-end/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + // Enable latest features + "lib": ["ESNext", "DOM"], + "target": "ESNext", + "module": "ESNext", + "moduleDetection": "force", + "jsx": "react-jsx", + "allowJs": true, + + // Bundler mode + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "noEmit": true, + + // Best practices + "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + + // Some stricter flags (disabled by default) + "noUnusedLocals": false, + "noUnusedParameters": false, + "noPropertyAccessFromIndexSignature": false + } +} diff --git a/.env b/front_end/.env similarity index 100% rename from .env rename to front_end/.env diff --git a/.gitignore b/front_end/.gitignore similarity index 100% rename from .gitignore rename to front_end/.gitignore diff --git a/README.md b/front_end/README.md similarity index 100% rename from README.md rename to front_end/README.md diff --git a/bun.lockb b/front_end/bun.lockb similarity index 100% rename from bun.lockb rename to front_end/bun.lockb diff --git a/index.html b/front_end/index.html similarity index 100% rename from index.html rename to front_end/index.html diff --git a/manifests/bin/deploy.sh b/front_end/manifests/bin/deploy.sh similarity index 100% rename from manifests/bin/deploy.sh rename to front_end/manifests/bin/deploy.sh diff --git a/manifests/bin/devel.sh b/front_end/manifests/bin/devel.sh similarity index 100% rename from manifests/bin/devel.sh rename to front_end/manifests/bin/devel.sh diff --git a/manifests/bin/prod.sh b/front_end/manifests/bin/prod.sh similarity index 100% rename from manifests/bin/prod.sh rename to front_end/manifests/bin/prod.sh diff --git a/manifests/common/app.yaml b/front_end/manifests/common/app.yaml similarity index 100% rename from manifests/common/app.yaml rename to front_end/manifests/common/app.yaml diff --git a/manifests/devel/.gitkeep b/front_end/manifests/devel/.gitkeep similarity index 100% rename from manifests/devel/.gitkeep rename to front_end/manifests/devel/.gitkeep diff --git a/manifests/prod/.gitkeep b/front_end/manifests/prod/.gitkeep similarity index 100% rename from manifests/prod/.gitkeep rename to front_end/manifests/prod/.gitkeep diff --git a/package.json b/front_end/package.json similarity index 100% rename from package.json rename to front_end/package.json diff --git a/public/vite.svg b/front_end/public/vite.svg similarity index 100% rename from public/vite.svg rename to front_end/public/vite.svg diff --git a/src/assets/chat.jpg b/front_end/src/assets/chat.jpg similarity index 100% rename from src/assets/chat.jpg rename to front_end/src/assets/chat.jpg diff --git a/src/assets/img_site.jpg b/front_end/src/assets/img_site.jpg similarity index 100% rename from src/assets/img_site.jpg rename to front_end/src/assets/img_site.jpg diff --git a/src/assets/react.svg b/front_end/src/assets/react.svg similarity index 100% rename from src/assets/react.svg rename to front_end/src/assets/react.svg diff --git a/src/component/App.jsx b/front_end/src/component/App.jsx similarity index 100% rename from src/component/App.jsx rename to front_end/src/component/App.jsx diff --git a/src/component/Body.jsx b/front_end/src/component/Body.jsx similarity index 100% rename from src/component/Body.jsx rename to front_end/src/component/Body.jsx diff --git a/src/component/Footer.jsx b/front_end/src/component/Footer.jsx similarity index 100% rename from src/component/Footer.jsx rename to front_end/src/component/Footer.jsx diff --git a/src/component/Head.jsx b/front_end/src/component/Head.jsx similarity index 100% rename from src/component/Head.jsx rename to front_end/src/component/Head.jsx diff --git a/src/component/Navbar.jsx b/front_end/src/component/Navbar.jsx similarity index 100% rename from src/component/Navbar.jsx rename to front_end/src/component/Navbar.jsx diff --git a/src/files/About.jsx b/front_end/src/files/About.jsx similarity index 100% rename from src/files/About.jsx rename to front_end/src/files/About.jsx diff --git a/src/files/Accueil.jsx b/front_end/src/files/Accueil.jsx similarity index 100% rename from src/files/Accueil.jsx rename to front_end/src/files/Accueil.jsx diff --git a/src/files/Blog.jsx b/front_end/src/files/Blog.jsx similarity index 100% rename from src/files/Blog.jsx rename to front_end/src/files/Blog.jsx diff --git a/src/files/Downloads.jsx b/front_end/src/files/Downloads.jsx similarity index 100% rename from src/files/Downloads.jsx rename to front_end/src/files/Downloads.jsx diff --git a/src/files/Help.jsx b/front_end/src/files/Help.jsx similarity index 100% rename from src/files/Help.jsx rename to front_end/src/files/Help.jsx diff --git a/src/files/Product.jsx b/front_end/src/files/Product.jsx similarity index 100% rename from src/files/Product.jsx rename to front_end/src/files/Product.jsx diff --git a/src/files/Register.jsx b/front_end/src/files/Register.jsx similarity index 100% rename from src/files/Register.jsx rename to front_end/src/files/Register.jsx diff --git a/src/files/Root.jsx b/front_end/src/files/Root.jsx similarity index 100% rename from src/files/Root.jsx rename to front_end/src/files/Root.jsx diff --git a/src/files/Serveurs.jsx b/front_end/src/files/Serveurs.jsx similarity index 100% rename from src/files/Serveurs.jsx rename to front_end/src/files/Serveurs.jsx diff --git a/src/files/Sign_in.jsx b/front_end/src/files/Sign_in.jsx similarity index 100% rename from src/files/Sign_in.jsx rename to front_end/src/files/Sign_in.jsx diff --git a/src/main.jsx b/front_end/src/main.jsx similarity index 100% rename from src/main.jsx rename to front_end/src/main.jsx diff --git a/src/services/Router.jsx b/front_end/src/services/Router.jsx similarity index 100% rename from src/services/Router.jsx rename to front_end/src/services/Router.jsx diff --git a/front_end/vite b/front_end/vite new file mode 100644 index 0000000..f0b2ac7 --- /dev/null +++ b/front_end/vite @@ -0,0 +1,230 @@ +mysql Ver 15.1 Distrib 10.11.8-MariaDB, for Linux (x86_64) using EditLine wrapper +Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. + +Usage: mysql [OPTIONS] [database] + +Default options are read from the following files in the given order: +/etc/my.cnf ~/.my.cnf +The following groups are read: mysql mariadb-client client client-server client-mariadb +The following options may be given as the first argument: +--print-defaults Print the program argument list and exit. +--no-defaults Don't read default options from any option file. +The following specify which files/extra groups are read (specified before remaining options): +--defaults-file=# Only read default options from the given file #. +--defaults-extra-file=# Read this file after the global files are read. +--defaults-group-suffix=# Additionally read default groups with # appended as a suffix. + + -?, --help Display this help and exit. + -I, --help Synonym for -? + --abort-source-on-error + Abort 'source filename' operations in case of errors + --auto-rehash Enable automatic rehashing. One doesn't need to use + 'rehash' to get table and field completion, but startup + and reconnecting may take a longer time. + (Defaults to on; use --skip-auto-rehash to disable.) + -A, --no-auto-rehash + No automatic rehashing. One has to use 'rehash' to get + table and field completion. This gives a quicker start of + mysql and disables rehashing on reconnect. + --auto-vertical-output + Automatically switch to vertical output mode if the + result is wider than the terminal width. + -B, --batch Don't use history file. Disable interactive behavior. + (Enables --silent.) + --binary-as-hex Print binary data as hex + --binary-mode Binary mode allows certain character sequences to be + processed as data that would otherwise be treated with a + special meaning by the parser. Specifically, this switch + turns off parsing of all client commands except \C and + DELIMITER in non-interactive mode (i.e., when binary mode + is combined with either 1) piped input, 2) the --batch + mysql option, or 3) the 'source' command). Also, in + binary mode, occurrences of '\r\n' and ASCII '\0' are + preserved within strings, whereas by default, '\r\n' is + translated to '\n' and '\0' is disallowed in user input. + --character-sets-dir=name + Directory for character set files. + --column-names Write column names in results. + (Defaults to on; use --skip-column-names to disable.) + -N, --skip-column-names + Don't write column names in results. + --column-type-info Display column type information. + -c, --comments Preserve comments. Send comments to the server. The + default is --skip-comments (discard comments), enable + with --comments. + -C, --compress Use compression in server/client protocol. + --connect-expired-password + Notify the server that this client is prepared to handle + expired password sandbox mode even if --batch was + specified. + --connect-timeout=# Number of seconds before connection timeout. + -D, --database=name Database to use. + -#, --debug[=#] This is a non-debug version. Catch this and exit. + --debug-check Check memory and open file usage at exit. + -T, --debug-info Print some debug info at exit. + --default-auth=name Default authentication client-side plugin to use. + --default-character-set=name + Set the default character set. + --delimiter=name Delimiter to be used. + --enable-cleartext-plugin + Obsolete option. Exists only for MySQL compatibility. + -e, --execute=name Execute command and quit. (Disables --force and history + file.) + -f, --force Continue even if we get an SQL error. Sets + abort-source-on-error to 0 + -h, --host=name Connect to host. + -H, --html Produce HTML output. + -i, --ignore-spaces Ignore space after function names. + --init-command=name SQL Command to execute when connecting to MariaDB server. + Will automatically be re-executed when reconnecting. + --line-numbers Write line numbers for errors. + (Defaults to on; use --skip-line-numbers to disable.) + -L, --skip-line-numbers + Don't write line number for errors. + --local-infile Enable LOAD DATA LOCAL INFILE. + --max-allowed-packet=# + The maximum packet length to send to or receive from + server. + --max-join-size=# Automatic limit for rows in a join when using + --safe-updates. + -G, --named-commands + Enable named commands. Named commands mean this program's + internal commands; see mysql> help . When enabled, the + named commands can be used from any line of the query, + otherwise only from the first line, before an enter. + Disable with --disable-named-commands. This option is + disabled by default. + --net-buffer-length=# + The buffer size for TCP/IP and socket communication. + -b, --no-beep Turn off beep on error. + -o, --one-database Ignore statements except those that occur while the + default database is the one named at the command line. + --pager[=name] Pager to use to display results. If you don't supply an + option, the default pager is taken from your ENV variable + PAGER. Valid pagers are less, more, cat [> filename], + etc. See interactive help (\h) also. This option does not + work in batch mode. Disable with --disable-pager. This + option is disabled by default. + -p, --password[=name] + Password to use when connecting to server. If password is + not given it's asked from the tty. + --plugin-dir=name Directory for client-side plugins. + -P, --port=# Port number to use for connection or 0 for default to, in + order of preference, my.cnf, $MYSQL_TCP_PORT, + /etc/services, built-in default (3306). + --progress-reports Get progress reports for long running commands (like + ALTER TABLE) + (Defaults to on; use --skip-progress-reports to disable.) + --prompt=name Set the command line prompt to this value. + --protocol=name The protocol to use for connection (tcp, socket, pipe). + -q, --quick Don't cache result, print it row by row. This may slow + down the server if the output is suspended. Doesn't use + history file. + -r, --raw Write fields without conversion. Used with --batch. + --reconnect Reconnect if the connection is lost. + (Defaults to on; use --skip-reconnect to disable.) + -U, --safe-updates Only allow UPDATE and DELETE that uses keys. + -U, --i-am-a-dummy Synonym for option --safe-updates, -U. + --sandbox Disallow commands that access the file system (except \P + without an argument and \e). + --secure-auth Refuse client connecting to server if it uses old + (pre-4.1.1) protocol. + --select-limit=# Automatic limit for SELECT when using --safe-updates. + --server-arg=name Send embedded server this as a parameter. + --show-warnings Show warnings after every statement. + --sigint-ignore Ignore SIGINT (CTRL-C). + -s, --silent Be more silent. Print results with a tab as separator, + each row on new line. + -S, --socket=name The socket file to use for connection. + --ssl Enable SSL for connection (automatically enabled with + other flags). + (Defaults to on; use --skip-ssl to disable.) + --ssl-ca=name CA file in PEM format (check OpenSSL docs, implies + --ssl). + --ssl-capath=name CA directory (check OpenSSL docs, implies --ssl). + --ssl-cert=name X509 cert in PEM format (implies --ssl). + --ssl-cipher=name SSL cipher to use (implies --ssl). + --ssl-key=name X509 key in PEM format (implies --ssl). + --ssl-crl=name Certificate revocation list (implies --ssl). + --ssl-crlpath=name Certificate revocation list path (implies --ssl). + --tls-version=name TLS protocol version for secure connection. + --ssl-verify-server-cert + Verify server's "Common Name" in its cert against + hostname used when connecting. This option is disabled by + default. + -t, --table Output in table format. + --tee=name Append everything into outfile. See interactive help (\h) + also. Does not work in batch mode. Disable with + --disable-tee. This option is disabled by default. + -n, --unbuffered Flush buffer after each query. + -u, --user=name User for login if not current user. + -v, --verbose Write more. (-v -v -v gives the table output format). + -V, --version Output version information and exit. + -E, --vertical Print the output of a query (rows) vertically. + -w, --wait Wait and retry if connection is down. + -X, --xml Produce XML output. + +Variables (--variable-name=value) +and boolean options {FALSE|TRUE} Value (after reading options) +--------------------------------- ---------------------------------------- +abort-source-on-error FALSE +auto-rehash TRUE +auto-vertical-output FALSE +binary-as-hex FALSE +binary-mode FALSE +character-sets-dir (No default value) +column-names TRUE +column-type-info FALSE +comments FALSE +compress FALSE +connect-expired-password FALSE +connect-timeout 0 +database (No default value) +debug-check FALSE +debug-info FALSE +default-auth (No default value) +default-character-set auto +delimiter ; +force FALSE +host (No default value) +html FALSE +ignore-spaces FALSE +init-command (No default value) +line-numbers TRUE +local-infile FALSE +max-allowed-packet 16777216 +max-join-size 1000000 +named-commands FALSE +net-buffer-length 16384 +no-beep FALSE +plugin-dir (No default value) +port 0 +progress-reports FALSE +prompt \N [\d]> +protocol +quick FALSE +raw FALSE +reconnect FALSE +safe-updates FALSE +i-am-a-dummy FALSE +sandbox FALSE +secure-auth FALSE +select-limit 1000 +show-warnings FALSE +sigint-ignore FALSE +socket (No default value) +ssl TRUE +ssl-ca (No default value) +ssl-capath (No default value) +ssl-cert (No default value) +ssl-cipher (No default value) +ssl-key (No default value) +ssl-crl (No default value) +ssl-crlpath (No default value) +tls-version (No default value) +ssl-verify-server-cert FALSE +table FALSE +unbuffered FALSE +user lazlor +vertical FALSE +xml FALSE diff --git a/vite.config.js b/front_end/vite.config.js similarity index 100% rename from vite.config.js rename to front_end/vite.config.js diff --git a/src/services/dataBase.jsx b/src/services/dataBase.jsx deleted file mode 100644 index 7528874..0000000 --- a/src/services/dataBase.jsx +++ /dev/null @@ -1,10 +0,0 @@ -const mysql = require("mysql2"); - -const pool = mysql.createPool({ - host: "localhost", - user: "lazlor", - password: "amidorian04", - database: "firstdb", -}); - -module.exports = pool.promise(); diff --git a/src/services/schema.sql b/src/services/schema.sql deleted file mode 100644 index 3533e25..0000000 --- a/src/services/schema.sql +++ /dev/null @@ -1,5 +0,0 @@ -CREATE TABLE users ( - id INT AUTO_INCREMENT PRIMARY KEY, - email VARCHAR(255) NOT NULL, - password VARCHAR(255) NOT NULL -); \ No newline at end of file diff --git a/src/services/userController.jsx b/src/services/userController.jsx deleted file mode 100644 index 5b1020d..0000000 --- a/src/services/userController.jsx +++ /dev/null @@ -1,24 +0,0 @@ -const express = require("express"); -const bodyParser = require("body-parser"); -const pool = require("./dataBase"); - -const app = express(); -app.use(bodyParser.json()); - -app.post("/api/register", async (req, res) => { - const { email, password } = req.body; - try { - const [result] = await pool.query( - "INSERT INTO users (email, password) VALUES (?, ?)", - [email, password] - ); - res.status(201).json({ id: result.insertId, email }); - } catch (error) { - console.error(error); - res.status(500).json({ error: "Erreur lors de l'inscription" }); - } -}); - -app.listen(3000, () => { - console.log("Server is running on port 3000"); -});