GithubHelp home page GithubHelp logo

nathom78 / developpez_une_architecture_back-end_securisee_en_utilisant_django_orm Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 88 KB

Projet 12 du parcours OpenClassrooms Développeur d'application - Python

Python 85.45% HTML 1.58% CSS 12.97%

developpez_une_architecture_back-end_securisee_en_utilisant_django_orm's Introduction

Developpez_une_architecture_back-end_securisee_en_utilisant_Django_ORM

Projet 12 du parcours OpenClassrooms Développeur d'application - Python

forthebadge

Flake8 Status

Une application de gestion de la relation client (CRM), qui effectue le suivi de tous les clients et événements :

  • L'application permettra essentiellement à l'equipe de suivre des clients, de leur ajouter des contracts, associés à des événements.
  • L'applications exploitera les points de terminaison d'API qui serviront les données, ou le site d'admin de django.
  • Principales fonctionnalités de l'application (autre que celle :
    • Authentification JWT des utilisateurs.
    • Permissions;Il est interdit à tout utilisateur autorisé autre que les membres de l'équipe associé au contrat et événements, d'émettre des requêtes d'actualisation.
    • L'équipe des gestionnaires sont les seuls capable à pouvoir supprimer, via le site d'admin de django.
    • respecte les normes OWASP et RGPD.

Prérequis

INSTALLATION ( pour windows )

Créer un dossier vide. Il contiendra le code complet du projet

1. Installation du site

Ouvrez un terminal:

Depuis le dossier précédemment créé, clonez le repository du programme avec la commande :

git clone https://github.com/Nathom78/Developpez_une_architecture_back-end_securisee_en_utilisant_Django_ORM.git

Ou utiliser ce repository en téléchargeant le zip.

2. Installer un environnement python

D'abord créer à partir de la racine du projet un environnement, ici appellé ".env"

PS D:\..\> python -m venv .env

Ensuite activer l'environnement python:

PS D:\..\> .env\Scripts\activate.ps1

3. Installer les paquets nécessaires aux projets.


Taper la commande suivante :

pip install -r requirements.txt

Pour vérifier, taper cette commande :

pip list

Et vous devriez avoir (version minimum testé):

Package                       Version
----------------------------- --------
asgiref                       3.7.2
attrs                         23.1.0
certifi                       2023.5.7
charset-normalizer            3.2.0
click                         8.1.6
colorama                      0.4.6
Django                        4.2.3
djangorestframework           3.14.0
djangorestframework-simplejwt 5.2.2
drf-spectacular               0.26.4
idna                          3.4
inflection                    0.5.1
Jinja2                        3.1.2
jsonschema                    4.18.4
jsonschema-specifications     2023.7.1
MarkupSafe                    2.1.3
mccabe                        0.7.0
Pillow                        10.0.0
pip                           23.2.1
psycopg                       3.1.9
psycopg-binary                3.1.9
pycodestyle                   2.10.0
pyflakes                      3.0.1
Pygments                      2.15.1
PyJWT                         2.8.0
pyrsistent                    0.19.3
pytz                          2023.3
PyYAML                        6.0
referencing                   0.30.0
requests                      2.31.0
rpds-py                       0.8.10
sentry-sdk                    1.28.1
setuptools                    68.0.0
sqlparse                      0.4.4
typing_extensions             4.7.1
tzdata                        2023.3
uritemplate                   4.1.1
urllib3                       2.0.3
wheel                         0.38.4

4. configuration PostGreSql

Utiliser les variables environments afin d'indiquer le chemin : (sinon utiliser les chemins par default)

[My_db]
host=localhost
user=ThomasEpic
dbname=Epic
port=5432
localhost:5432:Epic:ThomasEpic:ThomasAdmin

En Ayant par exemple pgAdmin 4 d'installé par ce lien, si la version installé par EDB ne fonctionne pas :

Avec une base de donné crée comme Epic, en plus de celle de base postgres.

Avec un user avec les priviléges minimum ici ThomasEpic et son mot de passe ThomasAdmin.

5. Execution du logiciel

Dans une fenêtre de terminal, se placer à la racine de l'application ici Epic, ensuite taper les commandes suivantes :

Tout d'abord, nous devons appliquer les migrations à la base de donnée, afin de pouvoir utiliser dans ce nouvel environnement, la base PostGreSql crée.


(.env) PS ~...\Epic> py manage.py migrate

Ensuite, nous pouvons lancer l'application à travers le serveur Django.


(.env) PS ~...\Epic py manage.py runserver 

6. Urls avec drf-spectacular package

documentations de l'API

This exposes 3 endpoints:

  • A YAML view of your API specification at /crm/schema/
  • A swagger-ui view of your API specification at /crm/schema/swagger-ui/
  • A ReDoc view of your API specification at /crm/schema/redoc/

7. Documentation Postman publique

https://documenter.getpostman.com/view/21242674/2s9XxsVc52

8. Journalisation avec Sentry

Dans le fichier settings.py situé dans le répertoire Epic, se trouve la configuration pour sentry, vous devez vous créer un compte sur https://sentry.io/signup/, et remplacer la ligne : dsn="https://exemple.ingest.sentry.io/bidulechouette", par la vôtre, afin que toute la journalisation du logiciel, soit dans votre compte.


Technologies

logo


Conventions de nommage et de codes :

PEP 8 – Style Guide for Python Code ici.

Un rapport flake8 au format HTML est disponible dans le repertoire \reports\flake8, à la racine du projet.

developpez_une_architecture_back-end_securisee_en_utilisant_django_orm's People

Contributors

nathom78 avatar dependabot[bot] avatar

Watchers

 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.