Pour tout problème contactez-nous par mail : support@froggit.fr | La FAQ :grey_question: | Rejoignez-nous sur le Chat :speech_balloon:

Skip to content
Snippets Groups Projects
Commit dda5d37c authored by Martin Déclert's avatar Martin Déclert :cd:
Browse files

Intégration de la page contact

parent 90f0017d
No related branches found
No related tags found
No related merge requests found
.env .env
node_modules/ node_modules/
\ No newline at end of file .idea/
This diff is collapsed.
...@@ -18,9 +18,12 @@ ...@@ -18,9 +18,12 @@
}, },
"homepage": "https://github.com/MartDec/MartDec.github.io#readme", "homepage": "https://github.com/MartDec/MartDec.github.io#readme",
"dependencies": { "dependencies": {
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"dotenv": "^8.2.0", "dotenv": "^8.2.0",
"ejs": "^3.1.5", "ejs": "^3.1.5",
"express": "^4.17.1", "express": "^4.17.1",
"nodemailer-smtp-transport": "^2.7.4",
"nodemon": "^2.0.4", "nodemon": "^2.0.4",
"path": "^0.12.7" "path": "^0.12.7"
} }
......
...@@ -8,22 +8,29 @@ class Router { ...@@ -8,22 +8,29 @@ class Router {
return res.redirect('/hello') return res.redirect('/hello')
}) })
this.router.get('/hello', async (req, res) => { this.router.get('/hello', async (req, res) => {
return res.render('views/base', {template: 'home'}) return res.render('views/base', { template: 'home' })
}) })
} }
resume () { resume () {
this.router.get('/resume', async (req, res) => { this.router.get('/resume', async (req, res) => {
return res.render('views/base', {template: 'resume'}) return res.render('views/base', { template: 'resume' })
})
}
contact () {
this.router.get('/contact', async (req, res) => {
return res.render('views/base', { template: 'contact' })
}) })
} }
listen () { listen () {
this.home() this.home()
this.resume() this.resume()
this.contact()
return this.router return this.router
} }
} }
module.exports = Router module.exports = Router
\ No newline at end of file
require('dotenv').config() require('dotenv').config()
const express = require('express') const express = require('express')
const path = require('path') const path = require('path')
const cors = require('cors')
const bodyParser = require('body-parser')
const PORT = process.env.PORT const PORT = process.env.PORT
const Router = require('./router') const Router = require('./router')
...@@ -13,6 +15,9 @@ class Server { ...@@ -13,6 +15,9 @@ class Server {
} }
init () { init () {
this.server.use(cors())
this.server.use(bodyParser.urlencoded({ extended: false }))
this.server.use(bodyParser.json())
this.server.use(express.static('www')) this.server.use(express.static('www'))
this.server.set('view engine', 'ejs'); this.server.set('view engine', 'ejs');
this.server.set('views', __dirname + '/www') this.server.set('views', __dirname + '/www')
...@@ -27,4 +32,4 @@ class Server { ...@@ -27,4 +32,4 @@ class Server {
} }
const server = new Server const server = new Server
server.init() server.init()
\ No newline at end of file
<svg id="Capa_1" enable-background="new 0 0 512.005 512.005" height="512" viewBox="0 0 512.005 512.005" width="512"
xmlns="http://www.w3.org/2000/svg">
<g>
<path d="m511.658 51.675c2.496-11.619-8.895-21.416-20.007-17.176l-482 184c-5.801 2.215-9.638 7.775-9.65 13.984-.012 6.21 3.803 11.785 9.596 14.022l135.403 52.295v164.713c0 6.948 4.771 12.986 11.531 14.593 6.715 1.597 13.717-1.598 16.865-7.843l56.001-111.128 136.664 101.423c8.313 6.17 20.262 2.246 23.287-7.669 127.599-418.357 122.083-400.163 122.31-401.214zm-118.981 52.718-234.803 167.219-101.028-39.018zm-217.677 191.852 204.668-145.757c-176.114 185.79-166.916 176.011-167.684 177.045-1.141 1.535 1.985-4.448-36.984 72.882zm191.858 127.546-120.296-89.276 217.511-229.462z" fill="white"/>
</g>
</svg>
...@@ -136,12 +136,12 @@ header nav a:hover { ...@@ -136,12 +136,12 @@ header nav a:hover {
} }
.home-page .skills-section .content { .home-page .skills-section .content {
width: 100%; width: 100%;
display: flex; padding: 1rem;
justify-content: space-around; display: grid;
margin-top: 1rem; grid-template-columns: repeat(4, 1fr);
gap: 1rem;
} }
.home-page .skills-section .content .skill { .home-page .skills-section .content .skill {
width: 22%;
border: solid 1px black; border: solid 1px black;
border-radius: 5px; border-radius: 5px;
padding: 1rem; padding: 1rem;
...@@ -190,4 +190,35 @@ header nav a:hover { ...@@ -190,4 +190,35 @@ header nav a:hover {
font-family: "Hammersmith One"; font-family: "Hammersmith One";
} }
.contact-page h2 {
padding: 0;
margin-bottom: 2rem;
}
.contact-page .content {
background: #0F3342;
padding: 4rem;
}
.contact-page .content > a {
display: block;
height: 2rem;
width: 2rem;
}
.contact-page .content > a img {
height: 100%;
width: 100%;
color: white;
}
.contact-page .content .social {
margin-top: 4rem;
}
.contact-page .content .social h2 {
margin: 0;
}
.contact-page .content .social .networks {
margin-top: 1rem;
}
.contact-page .content .social .networks a:first-child {
margin-right: 3rem;
}
/*# sourceMappingURL=main.css.map */ /*# sourceMappingURL=main.css.map */
{"version":3,"sourceRoot":"","sources":["../scss/main.scss","../scss/atoms/header.scss","../scss/atoms/home.scss","../scss/atoms/resume.scss"],"names":[],"mappings":"AAAQ;AAER;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI;;;AAIR;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AC9CA;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAMhB;EACI;EACA;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAIR;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;;AAGJ;EACI;;;AChER;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;;AAKZ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAEA;EACI;;AAEA;EACI;EACA;;AAIR;EACI;EACA;EACA;;;AC7DZ;EACI;EACA;;AAGJ;EACI;;AAKJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;;AAOZ;EACI;;AAEA;EACI;EACA;;AAEA;EACI","file":"main.css"} {"version":3,"sourceRoot":"","sources":["../scss/main.scss","../scss/atoms/header.scss","../scss/atoms/home.scss","../scss/atoms/resume.scss","../scss/atoms/contact.scss"],"names":[],"mappings":"AAAQ;AAER;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI;;;AAIR;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AC9CA;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAMhB;EACI;EACA;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAIR;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;;AAGJ;EACI;;;AChER;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;;AAKZ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAEA;EACI;;AAEA;EACI;EACA;;AAIR;EACI;EACA;EACA;;;AC7DZ;EACI;EACA;;AAGJ;EACI;;AAKJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;;AAOZ;EACI;;AAEA;EACI;EACA;;AAEA;EACI;;;ACtChB;EACI;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAIR;EACI;;AAEA;EACI;;AAGJ;EACI;;AAEA;EACI","file":"main.css"}
\ No newline at end of file \ No newline at end of file
.contact-page {
h2 {
padding: 0;
margin-bottom: 2rem;
}
.content {
background: #0F3342;
padding: 4rem;
& > a {
display: block;
height: 2rem;
width: 2rem;
img {
height: 100%;
width: 100%;
color: white;
}
}
.social {
margin-top: 4rem;
h2 {
margin: 0;
}
.networks {
margin-top: 1rem;
a:first-child {
margin-right: 3rem;
}
}
}
}
}
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
text-decoration: underline; text-decoration: underline;
} }
} }
.hello-section { .hello-section {
background-image: url('/assets/backgrounds/hello-world-bg.jpg'); background-image: url('/assets/backgrounds/hello-world-bg.jpg');
background-repeat: no-repeat; background-repeat: no-repeat;
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
} }
} }
} }
.skills-section { .skills-section {
height: 346px; height: 346px;
margin-top: 4rem; margin-top: 4rem;
...@@ -39,12 +39,12 @@ ...@@ -39,12 +39,12 @@
.content { .content {
width: 100%; width: 100%;
display: flex; padding: 1rem;
justify-content: space-around; display: grid;
margin-top: 1rem; grid-template-columns: repeat(4, 1fr);
gap: 1rem;
.skill { .skill {
width: 22%;
border: solid 1px black; border: solid 1px black;
border-radius: 5px; border-radius: 5px;
padding: 1rem; padding: 1rem;
...@@ -66,4 +66,4 @@ ...@@ -66,4 +66,4 @@
} }
} }
} }
} }
\ No newline at end of file
...@@ -50,4 +50,5 @@ footer { ...@@ -50,4 +50,5 @@ footer {
@import 'atoms/header'; @import 'atoms/header';
@import 'atoms/home'; @import 'atoms/home';
@import 'atoms/resume'; @import 'atoms/resume';
\ No newline at end of file @import 'atoms/contact';
\ No newline at end of file
<header>
<div class="flex-wrapper">
<div class="left">
<a href="/">
<img src="assets/icons/logo.svg" alt="DEC logo">
</a>
</div>
<div class="right">
<h1>Martin Déclert</h1>
<div class="content">
<h2 class="white">Contact</h2>
<a href="mailto:mdeclert.dev@gmail.com">
<img src="assets/icons/send.svg" alt="send mail">
</a>
<div class="social">
<h2 class="white">Social</h2>
<div class="networks">
<a href="#gitlab">
<img src="assets/icons/gitlab.svg" alt="gitlab">
</a>
<a href="#linkedin">
<img src="assets/icons/linkedin.svg" alt="linkedin">
</a>
</div>
</div>
</div>
</div>
</div>
<img src="assets/icons/secondary-logo.svg" alt="">
<nav>
<a href="/" class="home-link">home</a>
<a href="/resume" class="resume-link">resume</a>
<a href="#contact" class="conatct-link">contact</a>
</nav>
</header>
<header> <header>
<%- include('parts/header', { <%- include('parts/header', {
upperTitle: 'Développement Web Back-end', upperTitle: 'Développeur Web',
downTitle: 'PHP - Node.js' downTitle: 'Spécialisé Back-end'
}) -%> }) -%>
</header> </header>
<section class="hello-section"> <section class="hello-section">
...@@ -33,8 +33,7 @@ ...@@ -33,8 +33,7 @@
<h4>HTML/CSS</h4> <h4>HTML/CSS</h4>
</div> </div>
<ul class="description"> <ul class="description">
<li>Intégration web</li> <li>Intégration de maquette</li>
<li>SEO</li>
</ul> </ul>
</div> </div>
<div class="skill"> <div class="skill">
...@@ -43,8 +42,8 @@ ...@@ -43,8 +42,8 @@
<h4>JavaScript</h4> <h4>JavaScript</h4>
</div> </div>
<ul class="description"> <ul class="description">
<li>développement front-end</li> <li>Vanilla</li>
<li>Vanilla - jQuery</li> <li>Vue.js</li>
</ul> </ul>
</div> </div>
<div class="skill"> <div class="skill">
...@@ -55,7 +54,7 @@ ...@@ -55,7 +54,7 @@
<ul class="description"> <ul class="description">
<li> <li>
<span>PHP</span><br> <span>PHP</span><br>
<span>Magento 1.9 / Laravel</span> <span>Magento 1.9 / Laravel / Slim</span>
</li> </li>
<li> <li>
<span>Node.js</span><br> <span>Node.js</span><br>
...@@ -74,4 +73,4 @@ ...@@ -74,4 +73,4 @@
</ul> </ul>
</div> </div>
</div> </div>
</section> </section>
\ No newline at end of file
<footer> <footer>
<span class="white">Copyright - Martin Déclert - 2020</span> <span class="white">Copyright - Martin Déclert - 2021</span>
</footer> </footer>
\ No newline at end of file
<div class="flex-wrapper"> <div class="flex-wrapper">
<div class="left"> <div class="left">
<img src="assets/icons/logo.svg" alt="DEC logo"> <a href="/">
<img src="assets/icons/logo.svg" alt="DEC logo">
</a>
</div> </div>
<div class="right"> <div class="right">
<h1>Martin Déclert</h1> <h1>Martin Déclert</h1>
...@@ -25,5 +27,5 @@ ...@@ -25,5 +27,5 @@
<nav> <nav>
<a href="/" class="home-link">home</a> <a href="/" class="home-link">home</a>
<a href="/resume" class="resume-link">resume</a> <a href="/resume" class="resume-link">resume</a>
<a href="#contact" class="conatct-link">contact</a> <a href="/contact" class="conatct-link">contact</a>
</nav> </nav>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment