diff --git a/backend/public/index.html b/backend/public/index.html
index ecb278c..0dafcc7 100644
--- a/backend/public/index.html
+++ b/backend/public/index.html
@@ -1,379 +1,272 @@
+
-
-
+
+
+
+| ID |
+Domain |
+Provider |
+IP |
+Server |
+Actions |
+
+
+
+
+
+
+
+
Domain → Server Mapping
+
+
+
+
+
+| Domain |
+IP |
+Server |
+
+
+
+
+
+
diff --git a/backend/routes/domainMapping.js b/backend/routes/domainMapping.js
new file mode 100644
index 0000000..cc1af7a
--- /dev/null
+++ b/backend/routes/domainMapping.js
@@ -0,0 +1,33 @@
+const express = require('express')
+const router = express.Router()
+const db = require('../db')
+
+router.get('/', async (req, res) => {
+
+try {
+
+const [rows] = await db.query(`
+SELECT
+d.id AS domain_id,
+d.domain_name,
+d.ip_address,
+r.id AS resource_id,
+r.name AS server_name
+FROM domains d
+LEFT JOIN resource_ips ip ON d.ip_address = ip.ip
+LEFT JOIN resources r ON ip.resource_id = r.id
+ORDER BY d.domain_name
+`)
+
+res.json(rows)
+
+} catch(err){
+
+console.error(err)
+res.status(500).json({error:"DB error"})
+
+}
+
+})
+
+module.exports = router
diff --git a/backend/routes/domains.js b/backend/routes/domains.js
new file mode 100644
index 0000000..7ea3b4d
--- /dev/null
+++ b/backend/routes/domains.js
@@ -0,0 +1,120 @@
+const express = require('express');
+const router = express.Router();
+const pool = require('../db');
+
+
+// GET ALL DOMAINS
+router.get('/', async (req, res) => {
+ try {
+ const [rows] = await pool.query(`
+ SELECT
+ d.id,
+ d.domain_name,
+ d.provider,
+ d.ip_address,
+ d.yearly_cost,
+ d.notes,
+ r.name AS resource_name
+ FROM domains d
+ LEFT JOIN resource_ips ip ON d.ip_address = ip.ip
+ LEFT JOIN resources r ON ip.resource_id = r.id
+ ORDER BY d.domain_name
+ `);
+
+ res.json(rows);
+
+ } catch (err) {
+ console.error("GET domains error:", err);
+ res.status(500).json({ error: "DB error" });
+ }
+});
+
+
+// GET SINGLE DOMAIN
+router.get('/:id', async (req, res) => {
+ try {
+ const [rows] = await pool.query(
+ `SELECT * FROM domains WHERE id = ?`,
+ [req.params.id]
+ );
+
+ if (rows.length === 0) {
+ return res.status(404).json({ error: "Domain not found" });
+ }
+
+ res.json(rows[0]);
+
+ } catch (err) {
+ console.error("GET domain error:", err);
+ res.status(500).json({ error: "DB error" });
+ }
+});
+
+
+// CREATE DOMAIN
+router.post('/', async (req, res) => {
+ try {
+ const { domain_name, provider, ip_address, yearly_cost, notes } = req.body;
+
+ const [result] = await pool.query(
+ `INSERT INTO domains
+ (domain_name, provider, ip_address, yearly_cost, notes)
+ VALUES (?, ?, ?, ?, ?)`,
+ [domain_name, provider, ip_address, yearly_cost, notes]
+ );
+
+ res.json({
+ message: "Domain created",
+ id: result.insertId
+ });
+
+ } catch (err) {
+ console.error("CREATE domain error:", err);
+ res.status(500).json({ error: "DB error" });
+ }
+});
+
+
+// UPDATE DOMAIN
+router.put('/:id', async (req, res) => {
+ try {
+ const { domain_name, provider, ip_address, yearly_cost, notes } = req.body;
+
+ await pool.query(
+ `UPDATE domains SET
+ domain_name = ?,
+ provider = ?,
+ ip_address = ?,
+ yearly_cost = ?,
+ notes = ?
+ WHERE id = ?`,
+ [domain_name, provider, ip_address, yearly_cost, notes, req.params.id]
+ );
+
+ res.json({ message: "Domain updated" });
+
+ } catch (err) {
+ console.error("UPDATE domain error:", err);
+ res.status(500).json({ error: "DB error" });
+ }
+});
+
+
+// DELETE DOMAIN
+router.delete('/:id', async (req, res) => {
+ try {
+ await pool.query(
+ `DELETE FROM domains WHERE id = ?`,
+ [req.params.id]
+ );
+
+ res.json({ message: "Domain deleted" });
+
+ } catch (err) {
+ console.error("DELETE domain error:", err);
+ res.status(500).json({ error: "DB error" });
+ }
+});
+
+
+module.exports = router;
diff --git a/backend/server.js b/backend/server.js
index 8298702..02b1450 100644
--- a/backend/server.js
+++ b/backend/server.js
@@ -4,6 +4,8 @@ const path = require("path");
const resourceRoutes = require("./routes/resources");
const ipRoutes = require("./routes/ips");
+const domainsRoutes = require('./routes/domains');
+const domainMapping = require('./routes/domainMapping')
const app = express();
@@ -29,6 +31,11 @@ app.use("/resman/api/resources", resourceRoutes);
app.use("/resman/api", ipRoutes);
+app.use('/resman/api/domains', domainsRoutes);
+
+app.use('/resman/api/domainmap', domainMapping)
+
+
app.use((err, req, res, next) => {
console.error("EXPRESS ERROR:");