Skip to content

aipacheco/Proyecto5-RRSS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Proyecto Api Backend para una red social.

Contenido 📝
  1. Sobre el proyecto
  2. Objetivo
  3. Instalación
  4. Endpoints
  5. Stack
  6. Creación del proyecto
  7. Contacto

Sobre el proyecto

Los usuarios podrán registrarse en la aplicación, iniciar sesión y acceder a su área personal. Dentro de su área, podrán postear sus ideas. También podrán ver los posts de usuarios y darles o quitarles like a los mismos. El backend de esta API está desplegado en Enlace a Zeabur

Objetivo

Este proyecto requería una API funcional conectada a una base de datos con dos Documentos MongoDB llamados User y Post

Instalación en local

  1. Clonar el repositorio
  2. Instalamos las dependencias $ npm install
  3. Creamos una conexión con MongoAtlas
  4. Conectamos nuestro repositorio en Mongo Compass con la base de datos de MongoAtlas
  5. Ejecutamos los seeders $ npm run seeder
  6. Ponemos en funcionamiento el servidor $ npm run dev

Endpoints

Endpoints
  • AUTH

    • REGISTER

          POST https://h8ter.zeabur.app/api/auth/register
      

      body:

          {
              "username": "example",
              "email": "[email protected]",
              "password": "princess"
          }
    • LOGIN

        POST https://h8ter.zeabur.app/api/auth/login
      

      body:

          {
              "email": "[email protected]",
              "password": "princess"
          }
  • USERS

    • GET

          GET https://h8ter.zeabur.app/api/users
      

      El usuario tiene que ser super_admin para ver todos los usuarios {"email":"[email protected]", "password":"123456789"}

    • GET BY EMAIL

          GET https://h8ter.zeabur.app/api/[email protected]
      

      El usuario tiene que ser super_admin para ver todos los usuarios y la búsqueda le devolverá el usuario por email

      	 {
             "success": true,
             "message": "User by email",
             "data": {
                 "_id": "65f31eefc610f2eeb5d2f151",
                 "username": "superadmin",
                 "email": "[email protected]",
                 "role": "super_admin",
                 "createdAt": "2024-03-14T15:59:43.223Z",
                 "updatedAt": "2024-03-15T11:37:10.701Z"
             }
       	  }
    • GET PROFILE

      GET https://h8ter.zeabur.app/api/users/:username
      

      Se puede ver los perfiles de usuarios excluyendo datos sensibles como el email o el rol

    • UPDATE PROFILE

      PUT https://h8ter.zeabur.app/api/users/profile
      

      El usuario podrá modificar su propio perfil, cambiando su nombre de usuario

         {
         "username":"example2",
         }
  • POSTS

    • GET

          GET https://h8ter.zeabur.app/api/posts
      

      Se muestran todos los posts de los usuarios públicos

    • CREAR POST

          POST https://h8ter.zeabur.app/api/posts
      

      El usuario tiene que estar logado para crear posts

      body:

      { "content": "un post asqueroso"  }
    • GET MY POSTS

          GET https://h8ter.zeabur.app/api/posts/own
      

      El usuario puede ver todos sus posts

    • GET SINGLE POST

        GET https://h8ter.zeabur.app/api/posts/id
      

      El usuario puede ver un post en concreto

    • UPDATE POST

        PUT https://h8ter.zeabur.app/api/posts/id
      

      El usuario puede modificar uno de sus posts

      body:

          
        { "content": "un post precioso" }
          
    • DELETE POST

        PUT https://h8ter.zeabur.app/api/posts/id
      

      El usuario puede borrar uno de sus posts

    • GET USER POST

        GET https://h8ter.zeabur.app/api/users/posts/user_id
      

      Trae todos los posts de un usuario

    • LIKE/DISLIKE POST

        PUT https://h8ter.zeabur.app/api/posts/like/post_id
      

      Un usuario puede darle like o quitárselo a un post

Stack

Tecnologías utilizadas:

Creación del proyecto

Pasos para la Instalación y Configuración

Para configurar un proyecto de Express con TypeScript, sigue estos pasos:

  • Crea una carpeta para tu proyecto.

  • Inicializa el archivo package.json con

npm init

  • Instala Express con

npm install express --save

  • Instala TypeScript como dependencia de desarrollo con

npm install typescript -D

  • Instala los tipos de Express y Node con

npm install @types/express @types/node -D

  • Configura el archivo tsconfig.json con

npx tsc --init

  • Instalar librería de nodemon

npm install --save-dev nodemon

Script de compilación

En el apartado de scripts de package.json:

"dev": "nodemon ./src/server.ts"

Contacto

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published