Skip to content

Co-Lab-You-Belong-in-Tech/Lifeline_backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lifeline_backend

An engaging educational game designed to raise awareness about best safety practices during natural disasters

Built With:

  • JavaScript
  • Node
  • Express
  • MongoDB

Development

Prerequisites

Test

  • postman collection can be found here

Install project dependencies

npm install

Update .env with

  • MONGODB_URI
  • PORT

Run a development server

npm run dev

Models

User

field data_type constraints
first_name string required
last_name string required
username string required, unique
email string required, unique
password string required

Usage

Base URL

user signup

👇 Body

{
    "first_name": "John",
    "last_name": "Doe",
    "username": "doe",
    "email": "[email protected]",
    "password": "doe",
}

👇 Response

{
  "success": true,
  "message": "user successfully created"
}

back to top


user login

👇 Body

{
    "username": "doe",
    "password": "doe",
}

👇 Response

{
  "success": true,
  "message": "Login successful",
  "token": "token",
  "username": "doe"
}

Signup / signin with google

👇 Response

  • username will only be included in the response if it exists
{
  "success": true,
  "message": "Authentication successful",
  "token": "token"
}

back to top


Get user profile

👇 Response

{
  "success": true,
  "user": {
    "first_name": "doe",
    "last_name": "doe",
    "username": "doe",
    "email": "[email protected]"
  }
}

Update user profile

👇 Body

  • users can update their choose to update their first name, last name or username
{
    "first_name": "doe1",
    "last_name": "doe1",
    "username": "doe1"
}

👇 Response

{
  "success": true,
  "message": "profile successfully updated",
  "user": {
    "first_name": "doe1",
    "last_name": "doe1",
    "username": "doe1"
  }
}

Leaderboard

👇 Response

[
    {
        "scores": {
            "tornadoGame": {
                "score": 2000
            }
        },
        "username": "scar"
    },
    {
        "scores": {
            "tornadoGame": {
                "score": 1500
            }
        },
        "username": "ben"
    }
]

Establish socket connection on the client

let socket = io('https://lifeline-1zrj.onrender.com', {
            extraHeaders: {
                Authorization: "Bearer token",
    }});

To get next prompt - Emit a getNextPrompt event

socket.emit('getNextPrompt', promptInfo)

//if promptType is a question prompt
promptInfo = {title, promptType, text, score}

//for other promptTypes
promptInfo = {title, score, promptType}

back to top


back to top

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published