PrINTech c'est un site web pour les imprimantes 3D de l'assotiation Intech
Le back et le front ne sont pas encore reliés ensemble mais c'est en cours
- Git
- Docker Engine https://docs.docker.com/engine/install/
- uv https://docs.astral.sh/uv/guides/tools/
- Node.js + npm
À la racine de PrINTech-Back, crée un fichier .env :
uv syncuv lit le pyproject.toml et installe tout ce qu'il faut.
sudo systemctl start docker
# ou
sudo service docker start # sur WSLcréer le container selon le fichier docker-compose
sudo docker compose up -d
sudo docker ps # pour vérifier(À refaire à chaque fois que tu modifies un model)
uv run ./manage.py makemigrations
uv run ./manage.py migrateuv run ./manage.py runserverUne série de tests est définie dans PrINTech-Back/back/apps/api/tests.py
Pour les éxécuter:
uv manage.py test back.apps.apinpm install -g @angular/cli
ng version # pour vérifierDepuis PrINTech-Front :
npm installng serveLes routes sont définis dans le fichier PrINTech-Back/back/urls.py.
POST /api/v1/token/- Obtenir un access et refresh token JWT avecusernameetpasswordPOST /api/v1/token/refresh/- Renouveler l'access token
POST /api/v1/user/- Enregistrer un nouvel utilisateur. Renvoie les données du user + tokens JWTGET /api/v1/user/me/- Récupérer le profil de l'utilisateur authentifiéPATCH /api/v1/user/me/change-password/- Changer le mot de passe de l'utilisateur authentifié
GET /api/v1/requests/- Lister les demandes appartenant à l'utilisateur connectéPOST /api/v1/requests/- Créer une nouvelle demande avec upload de fichierGET /api/v1/requests/{id}/- Récupérer une demande utilisateurPOST /api/v1/requests/{id}/pay/- Payer une demande en attente de paiementPOST /api/v1/requests/{id}/cancel/- Annuler une demande enSUBMITTED,AWAITING_PAYMENTouPENDING
GET /api/v1/admin/requests/- Lister toutes les requêtes (admin uniquement)GET /api/v1/admin/requests/{id}/- Récupérer n'importe quelle requête (admin uniquement)PATCH /api/v1/admin/requests/{id}/change_status/- Changer/avancer le statut d'une requête (admin uniquement)
GET /api/v1/operations/- Lister les opérations du user authentifiéGET /api/v1/operations/{id}/- Récupérer une opération appartenant à l'utilisateurGET /api/v1/admin/operations/- Lister toutes les opérations (admin uniquement)POST /api/v1/admin/operations/- Créer une opération en tant qu'agent adminGET /api/v1/admin/operations/{id}/- Récupérer une opération quelconque (admin uniquement)
GET /api/v1/filaments/- Lister les filaments disponiblesGET /api/v1/filaments/{id}/- Récupérer un filamentGET /api/v1/admin/filaments/- Gérer les filaments en admin (liste/création/mise à jour/suppression)GET /api/v1/admin/filaments/{id}/- Récupérer, modifier ou supprimer un filament (admin uniquement)
GET /api/v1/printers/- Lister les imprimantes et leur statutGET /api/v1/printers/{name}/- Récupérer une imprimante par son nomGET /api/v1/admin/printers/- Lister les imprimantes en adminPATCH /api/v1/admin/printers/{name}/- Mettre à jour le statut/details d'une imprimante (admin uniquement)
GET /api/schema/- Schéma OpenAPIGET /api/docs/- Swagger UIGET /api/redoc/- Documentation Redoc