Giter Club home page Giter Club logo

webapp_fullstack's Introduction

WebMovie FullStack

Application d'avis sur des films permettant de communiquer avec une API via une interface Vue.js. Cet API permet de scraper des films directement sur IMDb et de les enregistrer dans une base de donnée. Les utilisateurs peuvent ensuite noter les films ou ajouter des commentaires.

Pour lancer

Pour faciliter l'installation il est possible d'utiliser une base par défaut avec des utilisateurs et des commentaires déjà présents (cf. "Base de donnée").

  1. docker-compose build (docker-compose build --no-cache si besoin)
  2. docker-compose up

Utilisez soit le front-end (certains appels api ne sont pas encore disponibles) ou la documentation fast api pour avoir accès à toutes les requetes (nottament pour les utilisateurs).

Réalisé avec Vue.js (https://vuejs.org/)

Communication avec l'API : axios

Pages disponibles :

  • Accueil
  • Liste de films sur la base
  • Informations sur un film (avec évalution et commentaires)
  • Scraping d'un film à partir d'un lien IMDb
  • Profil utilisateur (avec ses évaluations et commentaires)

Le front-end ne fonctionne pour le moment qu'avec l'utilisateur admin. En effet, l'authentification d'un utilisateur ne peut peut pas encore se faire à partir du front-end mais est disponible via l'API : Tester via la requete /users/token/test après que vous vous soyez identifié avec un utilisateur existant dans la base. (Authorize sur la documentation fast api). Cependant, les autres api sont utilisables sans authentification.

Le mot de passe de l'utilisateur "admin" est "azerty".

API

Réalisé avec FastAPI (https://fastapi.tiangolo.com/) et SQLAlchemy (https://www.sqlalchemy.org/).

La documentation est accessible ici : http://localhost:8000/docs

API : http://localhost:8000/

Une partie scraping est disponible au sein de l'API que l'on peut utiliser grace aux requetes :

  • /movies/scrape/ permettant de scraper un film avec son url IMDb. ex : https://www.imdb.com/title/tt0068646/
  • /movies/most_rated/ qui permet de scraper automatiquement jusqu'à 250 films qui sont les mieux notés sur IMDb.

Documentation scraping

Base de donnée

Fonctionne avec PostgreSQL

Une base de donnée par défaut a été ajouté au git dans db_data.zip qu'il suffit d'extraire. Il est tout à fait possible de supprimer le dossier db_data ainsi créé afin d'en recréer une vide automatiquement à la construction des conteneurs Docker. Cela necessite de recréer un utilisateur "admin" à la main avant de pouvoir utiliser le front-end.


Bonne découverte !

webapp_fullstack's People

Contributors

baptistebtx avatar nijimbej avatar clementb94 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.