Skip to content

zvereva-s/slim-mom-backend

Repository files navigation

slim-mom-backend

► Back for Slim Mom web app

What you can do:

  • authorization

  • social networks authorization

  • add, remove products, get full list of products of user

  • count daily rate

  • count sum of calories, fat, protein, carbohydrates for the day

  • get nor recommended products

Used in work:

  • Node.js
  • Mongo db
  • Joi validation
  • Google OAuth

Running locally:

    $npm i
    $npm run start:dev

Getting Started:

####BASE_URL :

    https://slim-mom-backend.onrender.com

####Authentication

SIGN UP

    POST - "/api/auth/signup"

    *send*          {
                    "name": "derry derry",
                    "email":"dderry@mail.com",
                    "password": "password"
                    }
    *respond*  {
                    "user": {
                            "name": "derry derry",
                            "email": "dderry@mail.com"
                    },
                    "healthyData": {
                            "notAllowedProducts": {
                            "ru": [
                                    "Разнообразные сладости (карамель, мармелад)",
                                    "Жевательная резинка",
                                    "Мясные полуфабрикаты (фарш, мясные замороженные полуфабрикаты)"...
                            ],
                            "ua": [
                                    "Різноманітні солодощі (карамель, мармелад)",
                                    "Жувальна гумка",
                                    "М'ясні напівфабрикати (фарш, м'ясні заморожені напівфабрикати)"...
                            ],
                            "en": [
                                    "Various sweets (caramel, marmalade)",
                                    "Chewing gum",
                                    "Meat semi-finished products (minced meat, frozen meat semi-finished products)"...
                            ]
                            },
                            "bodyCalculating": {
                            "age": 0,
                            "gender": "",
                            "height": 0,
                            "physicalActivity": 0,
                            "weight": 0,
                            "bloodType": 0,
                            "desiredWeight": 0
                            },
                            "dailyRate": "0"
                            }
                    }

SIGN IN

    POST - "/api/auth/signin"

    *send*          {
                    "email":"dderry@mail.com",
                    "password": "password"
                    }
    *respond*       {
                            "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYzZmZiYjc0ZDc2MTlmMTk2NTE0Y2IxZiIsImlhdCI6MTY3Nzc0MzcwMiwiZXhwIjoxNjc3NzY1MzAyfQ.6krUPYF_SK3QHUdBnz4Xa5f57oT8NPlR5K7oM-_rCeU",
                            "user": {
                                    "id": "63ffbb74d7619f196514cb1f",
                                    "name": "derry derry",
                                    "email": "dderry@mail.com"
                            },
                            "healthyData": {
                                    "owner": "63ffbb74d7619f196514cb1f",
                                    "notAllowedProducts": {
                                    "ru": [
                                            "Разнообразные сладости (карамель, мармелад)",
                                            "Жевательная резинка",
                                            "Мясные полуфабрикаты (фарш, мясные замороженные полуфабрикаты)"...
                                    ],
                                    "ua": [
                                            "Різноманітні солодощі (карамель, мармелад)",
                                            "Жувальна гумка",
                                            "М'ясні напівфабрикати (фарш, м'ясні заморожені напівфабрикати)"...
                                    ],
                                    "en": [
                                            "Various sweets (caramel, marmalade)",
                                            "Chewing gum",
                                            "Meat semi-finished products (minced meat, frozen meat semi-finished products)"...
                                    ]
                                    },
                                    "bodyCalculating": {
                                    "age": 0,
                                    "gender": "",
                                    "height": 0,
                                    "physicalActivity": 0,
                                    "weight": 0,
                                    "bloodType": 0,
                                    "desiredWeight": 0
                                    },
                                    "dailyRate": "0"
                            }
                    }

CURRENT

   GET - "/api/auth/current"

   *respond*        {
                            "token": "",
                            "user": {
                                    "id": "63ffbb74d7619f196514cb1f",
                                    "name": "derry derry",
                                    "email": "dderry@mail.com"
                            },
                            "healthyData": {
                                    "owner": "63ffbb74d7619f196514cb1f",
                                    "notAllowedProducts": {
                                    "ru": [
                                            "Разнообразные сладости (карамель, мармелад)",
                                            "Жевательная резинка",
                                            "Мясные полуфабрикаты (фарш, мясные замороженные полуфабрикаты)"...
                                    ],
                                    "ua": [
                                            "Різноманітні солодощі (карамель, мармелад)",
                                            "Жувальна гумка",
                                            "М'ясні напівфабрикати (фарш, м'ясні заморожені напівфабрикати)"...
                                    ],
                                    "en": [
                                            "Various sweets (caramel, marmalade)",
                                            "Chewing gum",
                                            "Meat semi-finished products (minced meat, frozen meat semi-finished products)"...
                                    ]
                                    },
                                    "bodyCalculating": {
                                    "age": 0,
                                    "gender": "",
                                    "height": 0,
                                    "physicalActivity": 0,
                                    "weight": 0,
                                    "bloodType": 0,
                                    "desiredWeight": 0
                                    }
                            }
                    }

LOG OUT

    POST -  "/api/auth/logout"

   *respond*        {"message": "Done✅"}

GOOGLE AUTHENTICATION

APP_URL - link to your server link

    ${APP_URL} + ${GOOGLE_CALLBACK}

    example: https://localhost:3003/api/auth/google
    example: https://localhost:3003/api/auth/google/callback

WEB_URL - link to web application

    example: https://locahost:3000/

GOOGLE CLOUD CONSOLE

1. Create new project

2. Create credentials

3. Add settings