Giter Site home page Giter Site logo

ridiculus's Introduction

Lien vers le site hosté: https://polytech-paris-sud-web.github.io/Ridiculus/

Ridiculus

Participants : CASSIER Régis, DETCHEBERRY Valentin, VICENS Maxime, VUILLEMIN Anthony

Nom de l'équipe : Ridiculus

Technologies

Front : Angular.js 9.0.7, Angular materials et Dexie3

Back : API Express, Mongoose, Body-parser et Mongodb

Pourquoi Express/mongoose/body-parser: Créer une API nous a semblé logique suite au cours de micro-services que nous avons eu plus tôt cette année. Cela permet de faciliter la communication et de créer un service facilement améliorable. Mongoose permet de faciliter les requêtes vers Mongodb, et body-parser permet de transformer en json tous les objets envoyés par le front.

Pourquoi Mongodb: Cette BD facilite la communication avec le front car elle stoque directement des fichiers JSON.

Pourquoi Dexie: Dexie gère le stockage des données locales, il permet d'automatiser la transition entre différentes versions des bases de ces données. Il offre une interface simple pour interagir avec cette dernière.

Pourquoi Angular Material: Angular material permet d'avoir accès à une librairie de composants tout fait que nous pouvons intégrer facilement à notre application.

Lancement du projet en local

Run npm install puis npm start dans le dossier server. Si vous voulez utiliser une BD locale : si environnement de prod, aller dans /src/environments/environment.prod.ts et indiquer data_href: 'https://localhost:3000'. Si environnement de test, faire la manip dans /src/environments/environment.ts.

Si vous utilisez l'API que l'on a créé, elle est disponible sur https://https://86.70.78.200:3001/. Vous devez accepter le certificat sur cette page avant d'accéder au site (pour chrome, pas pour firefox). Pour plus d'explications, cf paragraphe "soucis de certificats".

Run npm install puis npm start à la racine. Vous devez d'abord aller sur https://localhost:3000/ pour accepter le certificat. Aller ensuite sur https://localhost:4200/ pour accéder au site web.

API dédiée

L'API est lancée sur le pc de Valentin, pour cela j'ai configuré mon IP comme statique. Toutefois, je couperai le serveur à partir de dimanche. Si vous voulez faire des tests alors que le serveur est éteint, n'hésitez pas à me contacter sur slack/discord/mail pour que je le relance.

Build

Run npm run build --prefix $source_path -- --prod --aot --output-hashing="all" --base-href="/$(echo $GITHUB_REPOSITORY | cut -d '/' -f 2)/" --output-path="$build_path"

Soucis de certificats

Mise en place du CORS (Cross origin ressource sharing)

Notre application angular est hébergé par github. Notre API (serveur Node.js) est hébergé par nos soin sur une de nos machines. Afin de faire communiquer les 2 parties prenantes de l'application, il à fallut mettre autorisé le CORS (Cross Origin Ressource Sharing) sur notre serveur back-end.

En effet, sans autoriser le CORS nous avions l'erreur suivante :

Blocage d’une requête multiorigines (Cross-Origin Request) : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur http://86.70.78.200:3001/postes/. Raison : échec de la requête CORS.

Notre API tout comme notre application n'étant pas hebergées au même endroit, la communication est donc par defaut bloquée. La solution suivante a été mise en place :

app.use(function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); next(); })

De cette manière, tout les points d'entrées de l'API autorise le cross-domain.

Passage d'Angular en https

Afin de passer l'application en https, nous avons généré un certificat auto-signé. Nous avons ensuite placer les certificat et la clef comme suit :

  • appfolder
    • ssl
      • server.crt
      • server.key

Puis dans le package.json ajouter la ligne suivante : "start": "ng serve --ssl true". De cette manière, le démarage du serveur via la commande npm start va spécifié à angular d'utiliser le ssl. Notre application est à ce moment disponible uniquement en https

Problème sous chrome

Sous chrome, le certificat chargé par Angular n'est pas automatiquement accepté pour utiliser notre API, nous devons avant ça accepté le certificat pour l'API via l'URL : https://86.70.78.200:3001. C'est un problème que nous devrons corriger par la suite de manière prioritaire.

ridiculus's People

Contributors

rcasssie avatar app5-rc-upscalay avatar sireconflexe avatar zer4k91 avatar

Watchers

James Cloos avatar

ridiculus's Issues

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.