Giter VIP home page Giter VIP logo

post-it-api-java's Introduction

Post-It API

Post-It API est une API de gestion de notes personnelles. Elle est vouée à être utilisée par une web-app s'inspirant fortement de Google Keep. L'API a été réalisée dans le but d'être montrée dans le cadre d'une recherche d'emploi.

L'API permet de :

  • Se connecter
  • Ajouter / Supprimer / Modifier une note, sécurisé par un token d'authentification
  • Récupérer toutes les notes d'un utilisateur grâce à l'utilisation d'un token d'authentification
  • Créer un compte

Status

L'API est dans un état fonctionnel même si certains points sont à améliorer parmi lesquels :

  • Externalisation de la clé secrété utilisée pour la génération et validation des JWTs.
  • Ecriture de tests end to end
  • Mise en place de OAuth 2 avec les providers courants (Google, Facebook, etc..)
  • Modification du mot de passe d'un utilisateur

Technologies

Le projet est une application Spring Boot (2.4.5).

L'API a été défini via Spring MVC. La validation des données entrantes se fait grâce à Hibernate validator L'authentification se fait via JWT grâce au package jjwt et la mise en place d'un filtre Spring security validant les tokens.

Les intéractions avec la base de données se font grâce à Spring Data JPA. Les données sont persistées dans une base de données PostgreSQL.

Installation

Pour lancer l'application en local, Java 11 est au minimum nécessaire.

Grâce à Spring Boot, il suffit d'exécuter la méthode main (se trouvant dans PostItApiApplication) pour lancer l'application dans un Tomcat embarqué.

Un Datasource valide est attendu au lancement. Il peut être précisé via les propriétés prédéfinies spring.datasource.url, spring.datasource.username et spring.datasource.password.

Pour le moment, la clé secréte de génération et vérification des JWTs est généré automatiquement au lancement de l'application.

DB schéma

DB Schéma

Le schéma de la base de données est minimaliste. Hibernate n'a pas été configuré pour récréer le schéma au lancement de l'application. La base de données indiquée en datasource doit donc être opérationnelle.

post-it-api-java's People

Contributors

lsinquin 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.