Legacy API Docs
Teams API
This service manages teams for Kickstart — BizTech's startup-pitch competition. It handles team creation, scoring, judging feedback, round management, and leaderboards.
DynamoDB Tables
biztechTeams(constantTEAMS_TABLE) — PK:id(teamID), SK:eventID;yearbiztechTeamJudgeFeedback(constantTEAM_JUDGE_FEEDBACK_TABLE) — judging submissions
Handler: services/teams/handler.js
Endpoints
1. Update Team Points
- Method:
PUT - Path:
/team/points
Request
{
"teamID": "team123",
"points": 50
}
Response
{
"success": true,
"message": "Team points updated successfully",
"teamID": "team123",
"newPoints": 50
}
2. Add Multiple QR Scans
- Method:
PUT - Path:
/team/addQuestions
Request
{
"teamID": "team123",
"questions": ["Q1", "Q2", "Q3"]
}
Response
{
"success": true,
"message": "Questions added successfully",
"teamID": "team123",
"added": 3
}
3. Make Team
- Method:
POST - Path:
/team/make
Request
{
"eventID": "hackathon2025",
"year": 2025,
"teamName": "Innovators",
"members": ["user1", "user2"]
}
Response
{
"success": true,
"message": "Team created successfully",
"team": {
"teamID": "team123",
"eventID": "hackathon2025",
"year": 2025,
"teamName": "Innovators",
"members": ["user1", "user2"]
}
}
4. Get Team From User ID
- Method:
POST - Path:
/team/getTeamFromUserID
Request
{
"userID": "user1"
}
Response
{
"success": true,
"team": {
"teamID": "team123",
"teamName": "Innovators",
"eventID": "hackathon2025",
"year": 2025
}
}
5. Get All Teams for Event/Year
- Method:
GET - Path:
/team/{eventID}/{year}
Example Request
GET /team/hackathon2025/2025
Response
{
"success": true,
"teams": [
{
"teamID": "team123",
"teamName": "Innovators",
"members": ["user1", "user2"]
},
{
"teamID": "team456",
"teamName": "Builders",
"members": ["user3", "user4"]
}
]
}
6. Change Team Name
- Method:
POST - Path:
/team/changeTeamName
Request
{
"teamID": "team123",
"newName": "Visionaries"
}
Response
{
"success": true,
"message": "Team name updated successfully",
"teamID": "team123",
"newName": "Visionaries"
}
7. Get Normalized Round Scores
- Method:
GET - Path:
/team/scores-all
Response
{
"success": true,
"scores": [
{
"teamID": "team123",
"normalizedScore": 92.5
},
{
"teamID": "team456",
"normalizedScore": 88.1
}
]
}
8. Get Team Feedback Score
- Method:
GET - Path:
/team/feedback/{teamID}
Example Request
GET /team/feedback/team123
Response
{
"success": true,
"teamID": "team123",
"feedbackScore": 4.7
}
9. Get Judge Current Team
- Method:
GET - Path:
/team/judge/currentTeamID/{judgeID}
Example Request
GET /team/judge/currentTeamID/judge42
Response
{
"success": true,
"judgeID": "judge42",
"currentTeamID": "team123"
}
10. Get Judge Submissions
- Method:
GET - Path:
/team/judge/feedback/{judgeID}
Example Request
GET /team/judge/feedback/judge42
Response
{
"success": true,
"judgeID": "judge42",
"submissions": [
{
"teamID": "team123",
"score": 85,
"comments": "Great presentation"
}
]
}
11. Create Judge Submission
- Method:
POST - Path:
/team/judge/feedback
Request
{
"judgeID": "judge42",
"teamID": "team123",
"score": 90,
"comments": "Excellent innovation"
}
Response
{
"success": true,
"message": "Submission created successfully"
}
12. Update Judge Submission
- Method:
PUT - Path:
/team/judge/feedback
Request
{
"judgeID": "judge42",
"teamID": "team123",
"score": 95,
"comments": "Improved after Q&A"
}
Response
{
"success": true,
"message": "Submission updated successfully"
}
13. Update Current Team for Judge
- Method:
PUT - Path:
/team/judge/currentTeam/{teamID}
Example Request
PUT /team/judge/currentTeam/team123
Request Body
{
"judgeID": "judge42"
}
Response
{
"success": true,
"message": "Judge current team updated successfully",
"judgeID": "judge42",
"teamID": "team123"
}
14. Get Current Round
- Method:
GET - Path:
/team/round
Response
{
"success": true,
"currentRound": 2
}
15. Set Current Round
- Method:
PUT - Path:
/team/round/{round}
Example Request
PUT /team/round/3
Response
{
"success": true,
"message": "Current round updated",
"newRound": 3
}
16. Join a Team
- Method:
POST - Path:
/team/join
Request
{
"eventID": "kickstart",
"year": 2025,
"memberID": "isaac@ubcbiztech.com",
"teamID": "206abfa6-4b56-4316-af59-9cc3c1b0863c"
}
Response
{
"message": "Successfully joined team.",
"teamName": "test",
"memberIDs": ["isaac@ubcbiztech.com", "benny@ubcbiztech.com"],
"response": {
"eventID": "kickstart",
"year": 2025,
"memberID": "isaac@ubcbiztech.com",
"teamID": "206abfa6-4b56-4316-af59-9cc3c1b0863c"
}
}
17. Leave a Team
- Method:
POST - Path:
/team/leave
Request
{
"eventID": "kickstart",
"year": 2025,
"memberID": "isaac@ubcbiztech.com"
}
Response
{
"message": "Successfully left team.",
"response": {
"eventID": "kickstart",
"year": 2025,
"memberID": "isaac@ubcbiztech.com"
}
}