chacin04 / hack-backend-python-2

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SOCIAL OPLESK

🏴‍☠️ HACKS - BACKEND - 2


📚 tutorial de flask - 1 tutorial
📚 tutorial de flask - 2 tutorial
📚 tutorial de flask - 3 tutorial

- NOTA HACER LAS PRÁCTICAS MEDIANTE VISUAL STUDIO CODE  
* Instalar el framework:
  npm install flask

* Crear el archivo app.py en modo debug

* ejecutar el servidor en terminal: flask run --debug

Hacks Details
H-1 CLOUD - CRUD basic with QUERY and BODY
H-2 CLOUD ( UX/UI ) - CUD basic with BODY more upload image in (Module)
H-3 LOCAL - CR basic JSONWEBTOKEN
H-4 CLOUD / TEAM - CRUD upload image more jsonwebtoken with (Module)

🏆 H-1

CREAR UN CRUD QUE RESPONDA A LAS SIGUIENTES ACCIONES & EMPLEO DE TECNOLOGÍAS SOLICITADAS
ABAJO TIENES EL MOCK DE DATOS & DEBE ESTAR DENTRO DE UN ARCHIVO mock.json:


users = [
    {"email": "foo@example.com", "name": "foo", "age": 30, "role": "admin"},
    {"email": "bar@example.com", "name": "bar", "age": 25, "role": "editor"},
    {"email": "baz@example.com", "name": "baz", "age": 28, "role": "viewer"},
    {"email": "echo@example.com", "name": "echo", "age": 35, "role": "admin"},
    {"email": "qux@example.com", "name": "qux", "age": 29, "role": "viewer"},
    {"email": "delta@example.com", "name": "delta", "age": 47, "role": "viewer"},
    {"email": "zi@example.com", "name": "zi", "age": 20, "role": "viewer"},
    {"email": "charlie@example.com", "name": "charlie", "age": 31, "role": "viewer"}
]


---------------------------------------------------

✔ POST / BODY    -  Permitir crear usuario
✔ PUT / BODY     -  Actualizar los datos filtrado por email
✔ GET / QUERY    -  Buscar usuario por el derivado del email
✔ GET            -  Listar todos los usuarios ordenados por edad de menor a mayor
✔ GET / QUERY    -  Listar los usuarios en paginas de 2 usuarios por response si es mobile
✔ GET / QUERY    -  Listar los usuarios en paginas de 4 usuarios por response si es desktop
✔ DELETE / QUERY -  Eliminar usuario por email

---------------------------------------------------

🏹 Emplear el uso del rate-limit en los endpoints
🧪 utilizar el uso del checking de datos si es de tipo email, name, age
🧩 Aplicar una nomenclatura de endpoints bajo un estandar de versiones & tipo de dispositivo
   - ejemplo: /v1/mobile/user || /v1/desktop/user || /v1/general/user
   - ejemplo: /v1/m/user      || /v1/d/user       || /v1/g/user

---------------------------------------------------

📊 No requiere el desarrollo de interfaz gráfica, es 100% backend
📦 Almacenar el archivo mock de la lista de usuarios, en el store de S3 en AWS
💻 Hospedar el backend en una VM del servicio EC2

---------------------------------------------------

📜 Ejemplo de estrucutra para el response

 => {
      "payload":data,
      "status":200,
       "error":{
                "active":None,
                "msg":None           
               }
   }

---------------------------------------------------

🏆 H-2

CREAR UN CUD QUE RESPONDA A LAS SIGUIENTES ACCIONES & EMPLEO DE TECNOLOGÍAS SOLICITADAS
ADICIONAL EL CÓDIGO DEBE SER MODULAR & PERMITIR ALMACENAR IMÁGENES
ABAJO TIENES EL MOCK DE DATOS & DEBE ESTAR DENTRO DE UN ARCHIVO mock.json:


users = [
    {"email": "foo@example.com", "name": "foo", "age": 30, "role": "admin", "image": ""},
    {"email": "bar@example.com", "name": "bar", "age": 25, "role": "editor", "image": ""},
    {"email": "baz@example.com", "name": "baz", "age": 28, "role": "viewer", "image": ""},
    {"email": "echo@example.com", "name": "echo", "age": 35, "role": "admin", "image": ""},
    {"email": "qux@example.com", "name": "qux", "age": 29, "role": "viewer", "image": ""},
    {"email": "delta@example.com", "name": "delta", "age": 47, "role": "viewer", "image": ""},
    {"email": "zi@example.com", "name": "zi", "age": 20, "role": "viewer", "image": ""},
    {"email": "charlie@example.com", "name": "charlie", "age": 31, "role": "viewer", "image": ""}
]

---------------------------------------------------

✔ POST / BODY    -  Permitir crear usuario con su imagen 
✔ PUT / BODY     -  Actualizar los datos filtrado por email
✔ DELETE / BODY -   Eliminar usuario por email

---------------------------------------------------

🏹 Emplear el uso del rate-limit en los endpoints
🧪 utilizar el uso del checking de datos si es de tipo email, name, age
🧩 Aplicar una nomenclatura de endpoints bajo versiones, colección ó estandares 
   - ejemplo: /v1/user ||  /c1/user  ||  /std1/user

---------------------------------------------------

📊 Requiere el desarrollo de interfaz gráfica, como host Vercel
📦 Almacenar el archivo mock de la lista de usuarios, en el store de S3 en AWS
💻 Hospedar el backend en una VM del servicio EC2

---------------------------------------------------

📜 Ejemplo de estrucutra para el response

 => {
      "payload":data,
      "status":200,
       "error":{
                "active":None,
                "msg":None           
               }
   }

---------------------------------------------------

🏆 H-3

CREAR UN CR QUE RESPONDA A 2 ACCIONES EN LA ELABORACION
DE 1 TOKEN BAJO EL ESTANDAR JSONWEBTOKEN

ESTRUCTURA DEL TOKEN
{"sub": "foo@example.com", "name": "foo", "role": "admin", "exp":time}


---------------------------------------------------

✔ POST / BODY    -  Crear jsonwebtoken
✔ GET / BODY    -   Verificar jsonwebtoken 

---------------------------------------------------

⏳ Establecer un tiempo de caducidad de 1 minuto 

---------------------------------------------------

📊 No requiere el desarrollo de interfaz gráfica
💻 No requiere, hospedar el backend en una VM del servicio EC2, sino en local

---------------------------------------------------

🏆 H-4

CREAR UN CUD QUE RESPONDA A LAS SIGUIENTES ACCIONES & EMPLEO DE TECNOLOGÍAS SOLICITADAS
ADICIONAL EL CÓDIGO DEBE SER MODULAR & PERMITIR ALMACENAR IMÁGENES
ABAJO TIENES EL MOCK DE DATOS & DEBE ESTAR DENTRO DE UN ARCHIVO mock.json:


ESTRUCTURA DEL TOKEN
{"sub": "foo@example.com", "name": "foo", "role": "admin", "exp":time}


users = [
    {"email": "foo@example.com", "name": "foo", "age": 30, "role": "admin", "image": ""},
    {"email": "bar@example.com", "name": "bar", "age": 25, "role": "editor", "image": ""},
    {"email": "baz@example.com", "name": "baz", "age": 28, "role": "viewer", "image": ""},
    {"email": "echo@example.com", "name": "echo", "age": 35, "role": "admin", "image": ""},
    {"email": "qux@example.com", "name": "qux", "age": 29, "role": "viewer", "image": ""},
    {"email": "delta@example.com", "name": "delta", "age": 47, "role": "viewer", "image": ""},
    {"email": "zi@example.com", "name": "zi", "age": 20, "role": "viewer", "image": ""},
    {"email": "charlie@example.com", "name": "charlie", "age": 31, "role": "viewer", "image": ""}
]


---------------------------------------------------

✔ POST / BODY    -  Permitir crear usuario
✔ PUT / BODY     -  Actualizar los datos filtrado por email
✔ GET / QUERY    -  Buscar usuario por el derivado del email
✔ GET            -  Listar todos los usuarios ordenados por la inicial del nombre de A a la Z
✔ GET / QUERY    -  Listar los usuarios en paginas de 3 usuarios por response si es mobile
✔ GET / QUERY    -  Listar los usuarios en paginas de 5 usuarios por response si es desktop
✔ DELETE / QUERY -  Eliminar usuario por email
✔ POST / BODY    -  Crear jsonwebtoken
✔ GET / BODY    -   Verificar jsonwebtoken 

---------------------------------------------------

🏹 Emplear el uso del rate-limit en los endpoints
🧪 utilizar el uso del checking de datos si es de tipo email, name, age
🧩 Aplicar alguna de estas nomenclaturas en los endpoints bajo un estandar de versiones & tipo de dispositivo
   - ejemplo: /v1/mobile/user || /v1/desktop/user || /v1/general/user
   - ejemplo: /v1/m/user      || /v1/d/user       || /v1/g/user
   - ejemplo: /c1/m/user      || /c1/d/user       || /c1/g/user
   - ejemplo: /std1/m/user    || /std1/d/user     || /std1/g/user

---------------------------------------------------

⏳ Establecer un tiempo de caducidad de 1 minuto 
🔐 Los endpoints responden si existe un token(excepto el endpoint crear usuario)
    usar middleware para validar la existencia del token
---------------------------------------------------
📊 No requiere el desarrollo de interfaz gráfica, es 100% backend
📦 Almacenar el archivo mock de la lista de usuarios, en el store de S3 en AWS
💻 Hospedar el backend en una VM del servicio EC2

---------------------------------------------------

📜 Ejemplo de estrucutra para el response

 => {
      "payload":data,
      "status":200,
       "error":{
                "active":None,
                "msg":None           
               }
   }

---------------------------------------------------

About