1 Commits

84 changed files with 50 additions and 53 deletions

0
.gitignore vendored Executable file → Normal file
View File

View File

@@ -1,25 +0,0 @@
# 1. Build
FROM node:20-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
# 2. Serveur nginx
FROM nginx:alpine
# Supprime la config par défaut
RUN rm /etc/nginx/conf.d/default.conf
# Ajoute ta config
COPY nginx.conf /etc/nginx/conf.d/default.conf
# Copie le build
COPY --from=build /app/dist /usr/share/nginx/html
EXPOSE 8080
CMD ["nginx", "-g", "daemon off;"]

0
README.md Executable file → Normal file
View File

0
babel.config.js Executable file → Normal file
View File

37
dockerfile Normal file
View File

@@ -0,0 +1,37 @@
# Étape 1 : Construction (Build)
FROM node:20-slim AS build-stage
# Définit le dossier de travail
WORKDIR /app
# Copie les fichiers de dépendances
COPY package*.json ./
# Installe les dépendances
RUN npm install
# Copie le reste des fichiers du projet
COPY . .
# Construit l'application pour la production
RUN npm run build
# Étape 2 : Serveur de production (Nginx)
FROM nginx:stable-alpine AS production-stage
# Copie les fichiers compilés depuis l'étape de build
COPY --from=build-stage /app/dist /usr/share/nginx/html
# Ajoute une configuration Nginx simple pour gérer le routage Vue (SPA)
RUN echo 'server { \
listen 80; \
location / { \
root /usr/share/nginx/html; \
index index.html; \
try_files $uri $uri/ /index.html; \
} \
}' > /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

10
htaccess/.htaccess Normal file
View File

@@ -0,0 +1,10 @@
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} !=443
RewriteRule ^(.*)$ https://www.raffiskender.com/$1 [R=301,L]
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>

0
jsconfig.json Executable file → Normal file
View File

View File

@@ -1,19 +0,0 @@
server {
listen 8080;
server_name localhost;
root /usr/share/nginx/html;
index index.html;
# SPA Vue → fallback obligatoire
location / {
try_files $uri $uri/ /index.html;
}
# cache des assets (optionnel mais recommandé)
location /assets/ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}

0
package-lock.json generated Executable file → Normal file
View File

0
package.json Executable file → Normal file
View File

0
public/favicon.ico Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

0
public/image.ico Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

2
public/index.html Executable file → Normal file
View File

@@ -4,9 +4,7 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0"> <meta name="viewport" content="width=device-width,initial-scale=1.0">
<meta name="description" content="Here is Raffi's portfolio. It shows who I am and showcases some of my projects.">
<link rel="icon" href="<%= BASE_URL %>image.ico"> <link rel="icon" href="<%= BASE_URL %>image.ico">
<title><%= htmlWebpackPlugin.options.title %></title> <title><%= htmlWebpackPlugin.options.title %></title>
</head> </head>
<body> <body>

0
src/App.vue Executable file → Normal file
View File

View File

Before

Width:  |  Height:  |  Size: 477 KiB

After

Width:  |  Height:  |  Size: 477 KiB

0
src/Deprecated/Card.vue Executable file → Normal file
View File

0
src/Deprecated/Card_WhoAmI.vue Executable file → Normal file
View File

0
src/Deprecated/Cards.vue Executable file → Normal file
View File

0
src/Deprecated/MenuCards.vue Executable file → Normal file
View File

0
src/Deprecated/OldMenu.vue Executable file → Normal file
View File

0
src/Deprecated/Prez.vue Executable file → Normal file
View File

0
src/Deprecated/back.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

0
src/Deprecated/face.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

0
src/assets/CV-favicon.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

0
src/assets/MaPhoto.jpg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 120 KiB

0
src/assets/arrow up.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

0
src/assets/arrow-list.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

0
src/assets/bulle.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

0
src/assets/burger.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

0
src/assets/by.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

0
src/assets/images/LDC/LDC_screenshot_1.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

0
src/assets/images/LDC/LDC_screenshot_2.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

0
src/assets/images/LDC/LDC_screenshot_3.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

0
src/assets/images/pop/Screenshot_pop1.webp Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

0
src/assets/images/pop/Screenshot_pop2.webp Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

0
src/assets/images/pop/Screenshot_pop3.webp Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

0
src/assets/images/pop/back.webp Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 67 KiB

0
src/assets/lego_bridge.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 195 KiB

After

Width:  |  Height:  |  Size: 195 KiB

0
src/assets/legos_maison.jpg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 277 KiB

After

Width:  |  Height:  |  Size: 277 KiB

0
src/assets/legos_maison2.jpg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

0
src/assets/legos_vrac.jpg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 114 KiB

0
src/assets/legos_vrac.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 258 KiB

After

Width:  |  Height:  |  Size: 258 KiB

0
src/assets/legos_vrac_solo.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 53 KiB

0
src/assets/legos_vrac_solo2.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

0
src/assets/mailbox.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

0
src/assets/maison.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

0
src/assets/meme.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

0
src/assets/meme1.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

0
src/assets/memeWink.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

0
src/assets/mika-signe.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

0
src/assets/networks.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

0
src/assets/points.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

0
src/assets/portfolio-mini.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

0
src/assets/question.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 76 KiB

0
src/assets/question3.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 843 KiB

After

Width:  |  Height:  |  Size: 843 KiB

0
src/assets/questionSolo.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

0
src/assets/raffi.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

Before

Width:  |  Height:  |  Size: 420 KiB

After

Width:  |  Height:  |  Size: 420 KiB

0
src/components/Burger.vue Executable file → Normal file
View File

0
src/components/Button.vue Executable file → Normal file
View File

0
src/components/Footer.vue Executable file → Normal file
View File

0
src/components/Footer_1.vue Executable file → Normal file
View File

0
src/components/Menu.vue Executable file → Normal file
View File

0
src/components/Modal.vue Executable file → Normal file
View File

0
src/components/Name.vue Executable file → Normal file
View File

0
src/components/Spinner.vue Executable file → Normal file
View File

0
src/ici.txt Executable file → Normal file
View File

0
src/main.js Executable file → Normal file
View File

0
src/reset.css Executable file → Normal file
View File

9
src/services/form.js Executable file → Normal file
View File

@@ -5,20 +5,17 @@ export const formService =
// Propriété qui stocke la BASE URL de notre API // Propriété qui stocke la BASE URL de notre API
//base_url : "http://192.168.42.124/projets_wordpress/BOPortfolio/wordpress/wp-json/", //base_url : "http://192.168.42.124/projets_wordpress/BOPortfolio/wordpress/wp-json/",
//base_url : "http://192.168.1.41/projets_wordpress/BOPortfolio/wordpress/wp-json/", //base_url : "http://192.168.1.41/projets_wordpress/BOPortfolio/wordpress/wp-json/",
base_url : "https://bo-portfolio.raffiskender.com/wp-json/", base_url : "https://orange-firefly-f5a4.raffiskender.workers.dev/",
//base_url : "http://localhost/projets_wordpress/BOPortfolio/wordpress/wp-json/", //base_url : "http://localhost/projets_wordpress/BOPortfolio/wordpress/wp-json/",
// Retrieve data from backend // Retrieve data from backend
async sendMessage(token, payload) async sendMessage(token, payload)
{ {
//console.log(token, payload); //console.log(token, payload);
const response = await axios.post( const response = await axios.post(
this.base_url + "bo-portfolio/v1/submitForm", this.base_url,
{ {
token: token, token,
json: payload json: payload
}, },

0
src/stores/burger.js Executable file → Normal file
View File

0
src/style/colors.scss Executable file → Normal file
View File

0
src/style/shared_old.scss Executable file → Normal file
View File

0
src/style/widths.scss Executable file → Normal file
View File

0
src/views/404.vue Executable file → Normal file
View File

1
src/views/Contact.vue Executable file → Normal file
View File

@@ -59,7 +59,6 @@ const onSubmit = () => {
{action: 'submit'}) {action: 'submit'})
.then( async (token) => { .then( async (token) => {
const response = await formService.sendMessage(token, payload) const response = await formService.sendMessage(token, payload)
//console.log(response)
if (response === true){ if (response === true){
awaiting.value = false; awaiting.value = false;
name.value = ''; name.value = '';

0
src/views/I_am copy.vue Executable file → Normal file
View File

0
src/views/Index.vue Executable file → Normal file
View File

0
src/views/Networks.vue Executable file → Normal file
View File

0
src/views/Profile.vue Executable file → Normal file
View File

0
src/views/Projects.vue Executable file → Normal file
View File

0
src/views/Projects1.vue Executable file → Normal file
View File

0
src/views/Technologies.vue Executable file → Normal file
View File

0
vue.config.js Executable file → Normal file
View File