From 19861f32537ec3ef6bc370a218a7ea02edbe182a Mon Sep 17 00:00:00 2001 From: M M Date: Mon, 15 Jul 2024 14:06:41 -0700 Subject: [PATCH] Made the schema for the lighthouse metrics. --- Server/.dockerignore | 1 + Server/docker/docker-compose.yaml | 24 +++++++++++++++++++++ Server/docker/mongo/Dockerfile | 2 ++ Server/docker/mongoDB.Dockerfile | 2 ++ Server/docker/redis.Dockerfile | 2 ++ Server/docker/redis/Dockerfile | 2 ++ Server/docker/server.Dockerfile | 13 +++++++++++ Server/models/Metrics.js | 36 +++++++++++++++++++++++++++++++ 8 files changed, 82 insertions(+) create mode 100644 Server/.dockerignore create mode 100644 Server/docker/docker-compose.yaml create mode 100644 Server/docker/mongo/Dockerfile create mode 100644 Server/docker/mongoDB.Dockerfile create mode 100644 Server/docker/redis.Dockerfile create mode 100644 Server/docker/redis/Dockerfile create mode 100644 Server/docker/server.Dockerfile create mode 100644 Server/models/Metrics.js diff --git a/Server/.dockerignore b/Server/.dockerignore new file mode 100644 index 000000000..d88f9054e --- /dev/null +++ b/Server/.dockerignore @@ -0,0 +1 @@ +./docker \ No newline at end of file diff --git a/Server/docker/docker-compose.yaml b/Server/docker/docker-compose.yaml new file mode 100644 index 000000000..e878a5338 --- /dev/null +++ b/Server/docker/docker-compose.yaml @@ -0,0 +1,24 @@ +version: "3" +services: + server: + image: uptime_server:latest + ports: + - "5000:5000" + env_file: + - .env + depends_on: + - redis + - mongodb + redis: + image: uptime_redis:latest + ports: + - "6379:6379" + volumes: + - ./redis/data:/data + mongodb: + image: uptime_database_mongo:latest + command: ["mongod", "--quiet"] + ports: + - "27017:27017" + volumes: + - ./mongo/data:/data/db diff --git a/Server/docker/mongo/Dockerfile b/Server/docker/mongo/Dockerfile new file mode 100644 index 000000000..fa79e8a92 --- /dev/null +++ b/Server/docker/mongo/Dockerfile @@ -0,0 +1,2 @@ +FROM mongo +EXPOSE 27017 \ No newline at end of file diff --git a/Server/docker/mongoDB.Dockerfile b/Server/docker/mongoDB.Dockerfile new file mode 100644 index 000000000..fa79e8a92 --- /dev/null +++ b/Server/docker/mongoDB.Dockerfile @@ -0,0 +1,2 @@ +FROM mongo +EXPOSE 27017 \ No newline at end of file diff --git a/Server/docker/redis.Dockerfile b/Server/docker/redis.Dockerfile new file mode 100644 index 000000000..af68ec61e --- /dev/null +++ b/Server/docker/redis.Dockerfile @@ -0,0 +1,2 @@ +FROM redis +EXPOSE 6379 \ No newline at end of file diff --git a/Server/docker/redis/Dockerfile b/Server/docker/redis/Dockerfile new file mode 100644 index 000000000..af68ec61e --- /dev/null +++ b/Server/docker/redis/Dockerfile @@ -0,0 +1,2 @@ +FROM redis +EXPOSE 6379 \ No newline at end of file diff --git a/Server/docker/server.Dockerfile b/Server/docker/server.Dockerfile new file mode 100644 index 000000000..8a9bf04e3 --- /dev/null +++ b/Server/docker/server.Dockerfile @@ -0,0 +1,13 @@ +FROM node:20 + +WORKDIR /app + +COPY ../../package*.json ./ + +RUN npm install + +COPY ../../ ./ + +EXPOSE 5000 + +CMD ["node", "index.js"] \ No newline at end of file diff --git a/Server/models/Metrics.js b/Server/models/Metrics.js new file mode 100644 index 000000000..06be8ca3a --- /dev/null +++ b/Server/models/Metrics.js @@ -0,0 +1,36 @@ +const mongoose = require("mongoose"); + +const MetricsSchema = mongoose.Schema( + { + monitorId: { + type: mongoose.Schema.Types.ObjectId, + ref: "Monitor", + immutable: true, + }, + accessibility: { + type: Object, + required: true, + }, + bestPractices: { + type: Object, + required: true, + }, + seo: { + type: Object, + required: true, + }, + performance: { + type: Object, + required: true, + }, + timestamp: { + type: Date, + default: Date.now, + }, + }, + { + timestamps: true, + } +); + +module.exports = mongoose.model("LighthouseMetrics", MetricsSchema);