Skip to content

Commit b87ab18

Browse files
Sockets for leaderboard Added (Errors)
1 parent 0f90115 commit b87ab18

13 files changed

+2647
-1557
lines changed

.vs/ProjectSettings.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"CurrentProjectSetting": null
3+
}

.vs/VSWorkspaceState.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"ExpandedNodes": [
3+
""
4+
],
5+
"PreviewInSolutionExplorer": false
6+
}

.vs/nodectf/v16/.suo

13.5 KB
Binary file not shown.

.vs/slnx.sqlite

76 KB
Binary file not shown.

models/challenge.ts

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
1-
import mongoose from 'mongoose';
1+
import mongoose from "mongoose";
22
const Schema = mongoose.Schema;
33

4-
const challengeSchema = new Schema({
5-
index: Number,
6-
name: String,
7-
description: String,
8-
hint: {type: String, default: null},
9-
answer: String,
10-
startPoints: Number,
11-
solved: Array,
12-
hidden: Boolean
13-
}, {
14-
collection: 'challenges'
15-
});
4+
const challengeSchema = new Schema(
5+
{
6+
index: Number,
7+
name: String,
8+
description: String,
9+
hint: { type: String, default: null },
10+
answer: String,
11+
startPoints: Number,
12+
solved: Array,
13+
hidden: Boolean
14+
},
15+
{
16+
collection: "challenges"
17+
}
18+
);
1619

17-
18-
export const Challenge = mongoose.model('Challenge', challengeSchema);
20+
export const Challenge = mongoose.model("Challenge", challengeSchema);
1921
export default Challenge;

models/leaderboard.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import mongoose from 'mongoose';
1+
import mongoose from "mongoose";
22
const Schema = mongoose.Schema;
33

44
const leaderboard = new Schema({
5-
username: {type: String, required: true},
6-
points: { type: Number, default: 0 }
5+
username: { type: String, required: true, unique: true },
6+
points: { type: Number, default: 0 }
77
});
88

9-
const Leaderboard = mongoose.model('Leaderboard', leaderboard);
9+
const Leaderboard = mongoose.model("Leaderboard", leaderboard);
1010

11-
export default Leaderboard;
11+
export default Leaderboard;

models/solvedChallenges.ts

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,27 @@
1-
import mongoose from 'mongoose';
1+
import mongoose from "mongoose";
22
const Schema = mongoose.Schema;
33

4-
const solvedChallengeSchema = new Schema({
5-
questionId: {
6-
type: mongoose.Schema.Types.ObjectId,
7-
ref: 'Challenge'
8-
},
9-
participant: {
10-
type: mongoose.Schema.Types.ObjectId,
11-
ref: 'User'
12-
},
13-
timeSubmitted: {type: Date, default: Date.now},
14-
pointsOnSubmission: Number
15-
}, {
16-
collection: 'challenges'
17-
});
4+
const solvedChallengeSchema = new Schema(
5+
{
6+
questionId: {
7+
type: mongoose.Schema.Types.ObjectId,
8+
ref: "Challenge"
9+
},
10+
participant: {
11+
type: mongoose.Schema.Types.ObjectId,
12+
ref: "User"
13+
},
14+
timeSubmitted: { type: Date, default: Date.now },
15+
pointsOnSubmission: Number
16+
},
1817

19-
export const solvedChallenges = mongoose.model('solvedChallenges', solvedChallengeSchema);
18+
{
19+
collection: "challenges"
20+
}
21+
);
22+
23+
export const solvedChallenges = mongoose.model(
24+
"solvedChallenges",
25+
solvedChallengeSchema
26+
);
2027
export default solvedChallenges;

models/user.ts

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,25 @@
1-
import mongoose from 'mongoose';
1+
import mongoose from "mongoose";
22
const Schema = mongoose.Schema;
33

4-
const userSchema = new Schema({
5-
user: {
6-
type: mongoose.Schema.Types.ObjectId,
7-
ref: 'leaderboard'
8-
},
9-
name: {type: String, required: true},
10-
regNo: {type: String, required: true},
11-
password: String,
12-
email: String,
13-
phoneNo: {type: Number, required: true},
14-
solved: Array,
15-
points: { type: Number, default: 0 },
16-
role: { type: String, default: 'participant' }
17-
}, {
18-
collection: 'users'
19-
});
4+
const userSchema = new Schema(
5+
{
6+
user: {
7+
type: mongoose.Schema.Types.ObjectId,
8+
ref: "leaderboard"
9+
},
10+
name: { type: String, required: true },
11+
regNo: { type: String, required: true, unique: true },
12+
password: { type: String, required: true },
13+
email: { type: String, required: true, unique: true },
14+
phoneNo: { type: Number, required: true, unique: true },
15+
solved: Array,
16+
points: { type: Number, default: 0 },
17+
role: { type: String, default: "participant" }
18+
},
19+
{
20+
collection: "users"
21+
}
22+
);
2023

21-
22-
export const User = mongoose.model('User', userSchema);
23-
export default User;
24+
export const User = mongoose.model("User", userSchema);
25+
export default User;

0 commit comments

Comments
 (0)