diff --git a/models/todo.js b/models/todo.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/models/user.js b/models/user.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/mongodb.js b/mongodb.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/public/css/styles.css b/public/css/styles.css
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/public/index.html b/public/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/public/js/app.js b/public/js/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/public/js/auth.js b/public/js/auth.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/public/login.html b/public/login.html
new file mode 100644
index 0000000000000000000000000000000000000000..3aefadbea2a5765083f7b4efb932c8d9885faa1a
--- /dev/null
+++ b/public/login.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>Login</title>
+    <style>
+      body {
+        font-family: Helvetica, Arial, sans-serif;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        height: 100vh;
+        margin: 0;
+        background-color: #f0f0f0;
+      }
+      .login-container {
+        background-color: white;
+        padding: 2rem;
+        border-radius: 8px;
+        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
+        width: 100%;
+        max-width: 320px;
+        margin: 0 auto;
+      }
+
+      @media (min-width: 600px) {
+        .login-container {
+          padding: 2rem;
+        }
+      }
+
+      @media (min-width: 900px) {
+        .login-container {
+          max-width: 350px;
+        }
+      }
+
+      h2 {
+        text-align: center;
+        color: #333;
+      }
+      form {
+        display: flex;
+        flex-direction: column;
+      }
+      input {
+        margin: 0.5rem 0;
+        padding: 0.5rem;
+        border: 1px solid #ddd;
+        border-radius: 4px;
+      }
+      button {
+        margin-top: 1rem;
+        padding: 0.5rem;
+        background-color: #007bff;
+        color: white;
+        border: none;
+        border-radius: 4px;
+        cursor: pointer;
+        transition: background-color 0.3s;
+      }
+      button:hover {
+        background-color: #0056b3;
+      }
+      .error_text {
+        display: block;
+        color: red;
+        margin-top: 1rem;
+        font-size: 0.9rem;
+        font-style: italic;
+        text-align: center;
+      }
+      .success_message {
+        display: none;
+        color: #28a745;
+        margin-top: 1rem;
+        font-size: 1rem;
+        text-align: center;
+        opacity: 0;
+        transition: opacity 0.6s ease;
+      }
+
+      .success_message.show {
+        display: block;
+        opacity: 1;
+      }
+
+      .register-link {
+        text-align: center;
+        margin-top: 1.5rem;
+        font-size: 0.9rem;
+        color: #555;
+      }
+
+      .register-link a {
+        color: #007bff;
+        text-decoration: none;
+      }
+
+      .register-link a:hover {
+        text-decoration: underline;
+      }
+    </style>
+  </head>
+  <body>
+    <div class="login-container">
+      <h2>Login</h2>
+      <form id="login-form" action="login.php" method="POST">
+        <input
+          type="text"
+          class="uname"
+          name="username"
+          placeholder="Username"
+          required
+        />
+        <input
+          type="password"
+          class="pass"
+          name="password"
+          placeholder="Password"
+          required
+        />
+        <button type="submit">Login</button>
+      </form>
+      <span class="error_text"></span>
+      <div class="success_message">
+        Login successful! Redirecting to your to-do list...
+      </div>
+
+      <div class="register-link">
+        Don't have an account? <a href="register.html">Create one</a>.
+      </div>
+    </div>
+
+    <script>
+      document.querySelector("form").addEventListener("submit", function (e) {
+        e.preventDefault();
+        const username = document.querySelector(".uname").value;
+        const password = document.querySelector(".pass").value;
+        const errorText = document.querySelector(".error_text");
+        const successMessage = document.querySelector(".success_message");
+
+        if (username === "admin" && password === "password") {
+          errorText.textContent = "";
+
+          successMessage.classList.add("show");
+
+          document.getElementById("login-form").style.display = "none";
+
+          setTimeout(function () {
+            window.location.href = "todo.html";
+          }, 2000);
+        } else {
+          errorText.textContent = "Invalid username or password";
+        }
+      });
+    </script>
+  </body>
+</html>
diff --git a/public/register.html b/public/register.html
new file mode 100644
index 0000000000000000000000000000000000000000..fa7b6dcedd35c296847a9445e4b9f953057e962f
--- /dev/null
+++ b/public/register.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html>
+<html lang="es">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>Register</title>
+    <style>
+      body {
+        font-family: Helvetica, Arial, sans-serif;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        height: 100vh;
+        margin: 0;
+        background-color: #f0f0f0;
+      }
+      .register-container {
+        background-color: white;
+        padding: 2rem;
+        border-radius: 8px;
+        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
+        width: 100%;
+        max-width: 320px;
+        margin: 0 auto;
+      }
+
+      @media (min-width: 600px) {
+        .register-container {
+          padding: 2rem;
+        }
+      }
+
+      @media (min-width: 900px) {
+        .register-container {
+          max-width: 350px;
+        }
+      }
+
+      h2 {
+        text-align: center;
+        color: #333;
+      }
+      form {
+        display: flex;
+        flex-direction: column;
+      }
+      input {
+        margin: 0.5rem 0;
+        padding: 0.5rem;
+        border: 1px solid #ddd;
+        border-radius: 4px;
+      }
+      button {
+        margin-top: 1rem;
+        padding: 0.5rem;
+        background-color: #28a745;
+        color: white;
+        border: none;
+        border-radius: 4px;
+        cursor: pointer;
+        transition: background-color 0.3s;
+      }
+      button:hover {
+        background-color: #218838;
+      }
+      .error_text {
+        display: block;
+        color: red;
+        margin-top: 1rem;
+        font-size: 0.9rem;
+        font-style: italic;
+        text-align: center;
+      }
+      .success_message {
+        display: none;
+        color: #28a745;
+        margin-top: 1rem;
+        font-size: 1rem;
+        text-align: center;
+        opacity: 0;
+        transition: opacity 0.6s ease;
+      }
+
+      .success_message.show {
+        display: block;
+        opacity: 1;
+      }
+    </style>
+  </head>
+  <body>
+    <div class="register-container">
+      <h2>Register</h2>
+      <form id="register-form" action="register.php" method="POST">
+        <input
+          type="text"
+          class="uname"
+          name="username"
+          placeholder="Username"
+          required
+        />
+        <input
+          type="password"
+          class="pass"
+          name="password"
+          placeholder="Password"
+          required
+        />
+        <button type="submit">Register</button>
+      </form>
+      <span class="error_text"></span>
+      <div class="success_message">Registration successful! Redirecting...</div>
+    </div>
+
+    <script>
+      document.querySelector("form").addEventListener("submit", function (e) {
+        e.preventDefault();
+        const username = document.querySelector(".uname").value;
+        const password = document.querySelector(".pass").value;
+        const errorText = document.querySelector(".error_text");
+        const successMessage = document.querySelector(".success_message");
+
+        if (username.length >= 4 && password.length >= 6) {
+          errorText.textContent = "";
+
+          successMessage.classList.add("show");
+
+          document.getElementById("register-form").style.display = "none";
+
+          setTimeout(function () {
+            window.location.href = "login.html";
+          }, 2000);
+        } else {
+          errorText.textContent =
+            "El nombre de usuario debe tener al menos 4 caracteres y la contraseña al menos 6 caracteres.";
+        }
+      });
+    </script>
+  </body>
+</html>
diff --git a/routes/todos.js b/routes/todos.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/routes/users.js b/routes/users.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391