/vef2-2018-h1

Group project - GoodReads clone

Primary LanguageJavaScript

Hópverkefni 1 - Bókaþjónusta

Vefforritun 2 2018 - Háskóli Íslands

Kröfur fyrir forrit:

  • Node.js

    • Installa pökkunum með npm i
  • PSQL

  • Cloudinary aðgangur

  • .env file skal innihalda:

    • DATABASE_URL - Url fyrir postgres gagnagrunn
    • JWT_SECRET - Secret fyrir JWT
    • TOKEN_LIFETIME - Tala - token líftími
    • CLOUDINARY_URL - Cloudinary
    • CLOUDINARY_CLOUD - Fengið á Cloudinary
    • CLOUDINARY_API_KEY - Fengið á Cloudinary
    • CLOUDINARY_API_SECRET - Fengið á Cloudinary
    • PAGE_LIMIT - Fjöldi niðurstaðna á síðu, default 10

Uppsetning

  • keyra node createdb.js til þess að búa til database
  • keyra node insert-data.js til þess að setja prufugögn inn í gagnagrunn
  • til að byrja skal keyra node app.js eða npm start

Notkunardæmi

POST á: /register

með json-body:

{
  "username": "newusername",
  "name": "newname",
  "password": "securepassword"  
}

skilar:

{
  "username": "newusername",
  "name": "newname",
  "photo": ""  
}

POST á: /login

með json-body:

{
  "username": "newusername",
  "password": "securepassword"  
}

skilar:

{
  "token": // generated token
  "expiresIn": // TOKEN_LIFETIME
}

GET á: /users

með ?offset til að velja síðu-offset skilar:

{
  "limit": // item-limit
  "offset": // PAGE_OFFSET
  "items": [
    // x many user objects
  ]
}

GET á: /users/:id

skilar:

{
  "id": // :id
  "username": "newusername",
  "name": "newname",
  "photo": ""  
}

GET á: /users/me

skilar:

{
  "id": // logged-in user
  "username": 
  "name": 
  "photo":   
}

PATCH á /users/me

uppfærir mynd

{
  "photo": // cloudinary url  
}
  • /categories
    • GET skilar síðu af flokkum
    • POST býr til nýjan flokk og skilar
  • /books
    • GET skilar síðu af bókum
    • POST býr til nýja bók ef hún er gild og skilar
  • /books?search=query
    • GET skilar síðu af bókum sem uppfylla leitarskilyrði, sjá að neðan
  • /books/:id
    • GET skilar stakri bók
    • PATCH uppfærir bók
  • /users/:id/read
    • GET skilar síðu af lesnum bókum notanda
  • /users/me/read
    • GET skilar síðu af lesnum bókum innskráðs notanda
    • POST býr til nýjan lestur á bók og skilar
  • /users/me/read/:id
    • DELETE eyðir lestri bókar fyrir innskráðann notanda

Höfundar: