GithubHelp home page GithubHelp logo

jofaval / gh-btc-django-reto-final Goto Github PK

View Code? Open in Web Editor NEW
0.0 3.0 0.0 40 KB

Django API for LFG-apps with JWT-auth

Home Page: https://jofaval.github.io/gh-btc-django-reto-final/

License: Other

Python 100.00%
python bootcamp geekshubs geekshubsacademy django django-rest-framework api backend lfg

gh-btc-django-reto-final's Introduction

Reto Final - API LFG (Looking For Groups)

Tabla de contenido

0. Documentación técnica

⬆ Volver al índice

Toda la documentación técnica referente a los endpoints se encuentra en /docs.

1. Descripción

⬆ Volver al índice

Dada la situación sanitaria, una empresa tecnológica a estado trabajando en remoto desde marzo de 2020. Esto ha implicado que nuestros compañeros hayan perdido el contacto humano que siempre se ha tenido, y es algo que la empresa desea cambiar.

La empresa quiere dar un impulso a la manera que tienen los trabajadores de relacionarse, permitiendo que contacten entre ellos creando grupos de interés.

Una primera fase de este proyecto es crear una aplicación web LFG, que permita que los empleados puedan contactar con otros compañeros para formar grupos para jugar a un videojuego, con el objetivo de poder compartir un rato de ocio afterwork.

2. Requisitos Funcionales

⬆ Volver al índice

Los requisitos funcionales de la aplicación son los siguientes:

  1. RF - Los usuarios se tienen que poder registrar a la aplicación, estableciendo un usuario/contraseña.
  2. RF - Los usuarios tienen que autenticarse a la aplicación haciendo login.
  3. RF - Los usuarios tienen que poder crear Parties (grupos) por un determinado videojuego.
  4. RF - Los usuarios tienen que poder buscar Parties seleccionando un videojuego.
  5. RF - Los usuarios pueden entrar y salir de una Party.
  6. RF - Los usuarios tienen que poder enviar mensajes a la Party. Estos mensajes tienen que poder ser editados y borrados por su usuario creador.
  7. RF - Los mensajes que existan a una Party se tienen que visualizar como un chat común.
  8. RF - Los usuarios pueden introducir y modificar sus datos de perfil, por ejemplo, su usuario de Steam.
  9. RF - Los usuarios tienen que poder hacer logout de la aplicación web.

3. Objetivos

⬆ Volver al índice

Realizar una API REST completa, con Django, que cumpla con los requisitos anteriormente planteados.

Que además proporcione y asegure:

  • Registro de usuarios.
  • Login de usuarios, auth + token.
  • CRUD de los diferentes modelos.
  • Excelente Readme (IMPORTANTE).

Y como preferidos:

  • Buen naming en las variables.
  • Aplicación de buenas prácticas.

4. Stack Tecnológico

⬆ Volver al índice

Para el desarrollo de la API utilizaremos PostgreSQL con Django:

  • PostgreSQL.
  • Python (3.6 o superior).
  • VirtualEnv propio.
  • Django para la estructura de proyecto.
  • Django Rest Framework encargado de la serialización de objetos JSON.
  • JWT.

Como Sistema Control de Versiones se utilizará Git, hosteado en Github, haciendo uso de Git-Flow.

5. Cómo usar la aplicación

⬆ Volver al índice

Configurar el entorno

Ejecutar los siguientes comandos

python -m pipenv install
python -m django lfg/manager.py makemigrations
python -m django lfg/manager.py migrate

Crear un fichero llamado lfg/conf.py con el siguiente contenido:

username = 'postgres'
password = '1234'
host = 'localhost'
port = '5432'

Ejecutar la aplicación

python -m django lfg/manager.py runserver

Desde la web

El superusuario es:

  • user: admin
  • pass: 1234

Testeado contra fuerza bruta para que no se pueda acceder

Desde la API

Una vez iniciada la aplicación con ... runserver

http://localhost:8000/{entidad}

6. Licencia

⬆ Volver al índice

El proyecto utiliza la licencia MIT, para más información, acceda al fichero LICENSE

7. Registro de cambios

⬆ Volver al índice

Todos los cambios relevantes realizados al proyecto/repositorio quedarán registrados en el fichero CHANGELOG.md.

8. Créditos

⬆ Volver al índice

gh-btc-django-reto-final's People

Contributors

jofaval avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.