Skip to content
Open

done #2120

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions controllers/user.controllers.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
const User = require("../models/User.model");
const mongoose = require("mongoose");

module.exports.register = (req, res, next) => {
res.render("register");
};

module.exports.login = (req, res, next) => {
User.create(req.body)
.then(() => {
res.render("login");
})
.catch((err) => next(err));
};
module.exports.doRegister = (req, res, next) => {
User.create(req.body)
.then(() => {
res.redirect("/login");
})
.catch((err) => next(err));
};
4 changes: 4 additions & 0 deletions routes/index.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
const router = require("express").Router();
const userController = require("../controllers/user.controllers");

/* GET home page */
router.get("/", (req, res, next) => {
res.render("index");
});
router.get("/register", userController.register);
router.post("/register", userController.doRegister);
router.get("/login", userController.login);

module.exports = router;
3 changes: 3 additions & 0 deletions views/layout.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,17 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>{{title}}</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
<link rel="stylesheet" href="/stylesheets/style.css" />
</head>

<body>
{{navbar}}

{{{body}}}

<script src="/js/script.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script>
</body>

</html>
72 changes: 72 additions & 0 deletions views/login.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
<section class="vh-100" style="background-color: #eee;">
<div class="container h-100">
<div class="row d-flex justify-content-center align-items-center h-100">
<div class="col-lg-12 col-xl-11">
<div class="card text-black" style="border-radius: 25px;">
<div class="card-body p-md-5">
<div class="row justify-content-center">
<div class="col-md-10 col-lg-6 col-xl-5 order-2 order-lg-1">

<p
class="text-center h1 fw-bold mb-5 mx-1 mx-md-4 mt-4"
>Login</p>

<form class="mx-1 mx-md-4" method="POST" action="/login">

<div class="d-flex flex-row align-items-center mb-4">
<i class="fas fa-envelope fa-lg me-3 fa-fw"></i>
<div class="form-outline flex-fill mb-0">
<input
type="email"
id="email"
class="form-control"
name="email"
/>
<label class="form-label mt-2" for="email">Your Email</label>
</div>
</div>

<div class="d-flex flex-row align-items-center mb-4">
<i class="fas fa-lock fa-lg me-3 fa-fw"></i>
<div class="form-outline flex-fill mb-0">
<input
type="password"
id="password"
class="form-control"
name="password"
/>
<label
class="form-label mt-2"
for="password"
>Password</label>
</div>
</div>

<div class="d-flex justify-content-center mx-4 mb-3 mb-lg-4">
<button
type="button"
class="btn btn-primary btn-lg"
>Login</button>
</div>

</form>

</div>
<div
class="col-md-10 col-lg-6 col-xl-7 d-flex align-items-center order-1 order-lg-2"
>

<img
src="https://mdbcdn.b-cdn.net/img/Photos/new-templates/bootstrap-registration/draw1.webp"
class="img-fluid"
alt="Sample image"
/>

</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
22 changes: 22 additions & 0 deletions views/partials/navbar.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<nav class="navbar navbar-expand-lg bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="/">Home</a>
<button
class="navbar-toggler"
type="button"
data-bs-toggle="collapse"
data-bs-target="#navbarNavAltMarkup"
aria-controls="navbarNavAltMarkup"
aria-expanded="false"
aria-label="Toggle navigation"
>
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
<div class="navbar-nav">
<a class="nav-link" href="/register">Register</a>
<a class="nav-link" href="/login">Login</a>
</div>
</div>
</div>
</nav>
72 changes: 72 additions & 0 deletions views/partials/register.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
<section class="vh-100" style="background-color: #eee;">
<div class="container h-100">
<div class="row d-flex justify-content-center align-items-center h-100">
<div class="col-lg-12 col-xl-11">
<div class="card text-black" style="border-radius: 25px;">
<div class="card-body p-md-5">
<div class="row justify-content-center">
<div class="col-md-10 col-lg-6 col-xl-5 order-2 order-lg-1">

<p
class="text-center h1 fw-bold mb-5 mx-1 mx-md-4 mt-4"
>Register</p>

<form class="mx-1 mx-md-4" method="POST" action="/register">

<div class="d-flex flex-row align-items-center mb-4">
<i class="fas fa-envelope fa-lg me-3 fa-fw"></i>
<div class="form-outline flex-fill mb-0">
<input
type="email"
id="email"
class="form-control"
name="email"
/>
<label class="form-label mt-2" for="email">Your Email</label>
</div>
</div>

<div class="d-flex flex-row align-items-center mb-4">
<i class="fas fa-lock fa-lg me-3 fa-fw"></i>
<div class="form-outline flex-fill mb-0">
<input
type="password"
id="password"
class="form-control"
name="password"
/>
<label
class="form-label mt-2"
for="password"
>Password</label>
</div>
</div>

<div class="d-flex justify-content-center mx-4 mb-3 mb-lg-4">
<button
type="submit"
class="btn btn-primary btn-lg"
>Register</button>
</div>

</form>

</div>
<div
class="col-md-10 col-lg-6 col-xl-7 d-flex align-items-center order-1 order-lg-2"
>

<img
src="https://mdbcdn.b-cdn.net/img/Photos/new-templates/bootstrap-registration/draw1.webp"
class="img-fluid"
alt="Sample image"
/>

</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>