https://github.com/sanogotech/oc_p10
https://github.com/sanogotech/oc_p10
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/sanogotech/oc_p10
- Owner: sanogotech
- Created: 2020-04-18T09:07:09.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2020-04-17T08:13:40.000Z (about 5 years ago)
- Last Synced: 2025-02-09T00:16:54.445Z (3 months ago)
- Size: 1.04 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Fork du projet OC-Bibliothèque
## Présentation
OC-Bibliothèque est un site web dédié aux usagers du réseau de bibliothèques du même nom, cette application web JEE a été réalisée dans le cadre du parcours Développeur d'application Java de la plateforme d'enseignement OpenClassrooms.
Les compétences évaluées sont les suivantes:
* Concevoir une application web avec une approche par composants
* Respecter les bonnes pratiques de développement en vigueur
* Créer une API web avec un microservice REST
* Sélectionner les langages de programmation adaptés pour le développement de l’application
* Interagir avec des composants externesLes fonctions suivantes sont implémentées:
* Rechercher des ouvrages et voir le nombre d’exemplaires disponibles.
* Permettre aux usagers de consulter leurs prêts en cours. Les prêts sont pour une période de 4 semaines.
* Prolonger un prêt en cours. Le prêt d’un ouvrage n’est prolongeable qu’une seule fois. La prolongation ajoute une nouvelle période de prêt (4 semaines) à la période initiale.
* Login via un formulaire## Guide de démarrage
### Prérequis
* _Java-8_ et plus, disponible [ici](https://www.oracle.com/technetwork/pt/java/javase/downloads/jdk8-downloads-2133151.html)
* _SpringBoot-2.2.1_ et plus, disponible [ici](https://start.spring.io/)
* _PostgreSQL-11_ et plus, système de gestion de base de données, disponible [ici](https://www.postgresql.org/download/).
* _pgAdmin-4_ et plus, outil d'administration de PostgreSQL, disponible [ici](https://www.pgadmin.org/download/).
* _Maven-3.6.1_ et plus, outil de gestion et d'automatisation de production des projets logiciels, disponible [ici](https://maven.apache.org/download.cgi)
* Le répertoire du projet, disponible [ici](https://github.com/ccathala/OC-Bibliotheque)
* _FakeSmtp-2.0_ et plus, emulateur de serveur smtp pour tester l'envoi de mails, disponible [ici](http://nilhcem.com/FakeSMTP/download.html)### Paramétrage
Chaque service dispose à l'intérieur de son répertoire, à l'emplacement /src/main/resources d'un fichier application.properties. Celui-ci permet de paramétrer certaines propriétés:
#### Port
```properties
server.port=9001
```#### Nom de l'application
```properties
spring.application.name=oc-bibliotheque-api
```#### Données de connexion à la base de données (API seulement)
```properties
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:postgresql://localhost:5432/OC_bibliotheque
spring.datasource.username=postgres
spring.datasource.password=azerty
```#### Identifiants Basic Auth (API seulement)
```properties
spring.security.user.name=OCBibliotheque-client
spring.security.user.password=OCB2020
```#### Nom et URL de l'API (Webapp et Batch seulement)
```properties
api.name=oc-bibliotheque-api
api.url=localhost:9001
```#### Paramètres SSL (Webapp seulement)
```properties
server.ssl.enabled=true
server.ssl.key-store=classpath:ocbclient.p12
server.ssl.key-store-password=azerty
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=ocbclient
```#### Cron expression | Heure d'envoi des mails de relance (Batch seulement)
```properties
batch.time.event=30 45 10 * * ?
```Seconde=30
Minute=45
Heure=10L'envoie des mails de relance ce fera tous les jours à 10h 45min 30s
#### Configuration du compte SMTP
##### Fake SMTP
```properties
spring.mail.host=localhost
spring.mail.port=25
```##### Compte Gmail
```properties
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=username
spring.mail.password=password
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
```Remplacer les valeurs username et password par les identifiants du compte Gmail.
***Attention un mot de passe d'application est nécessaire, plus d'information [ici](https://support.google.com/mail/answer/185833?hl=fr)***
### Démarrage
#### I. Tests
1. Ouvrez le répertoire du service choisi, ex: /api
2. Ouvrez un terminal à cet emplacement
3. Exécuter la commande suivante:
```terminal
mvn test
```Cette commande va compiler le code et lancer la séquence de test
#### II. Développement
1. Ouvrez le répertoire du service choisi, ex: /api
2. Ouvrez un terminal à cet emplacement
3. Exécuter la commande suivante:
```terminal
mvn spring-boot:run
```Cette commande va compiler le code et lancer la séquence de test, générer le package .jar et lancer l'application sous Tomcat.
#### III. Production
1. Ouvrez le répertoire du service choisi, ex: /api
2. Ouvrez un terminal à cet emplacement
3. Exécuter la commande suivante:
```terminal
java -jar application.jar
```Cette commande va compiler le code et lancer la séquence de test, générer le package .jar et lancer l'application sous Tomcat.
Remplacez application.jar par le nom de l'application à lancer.
### Import des données de démonstration
1. Lancer une première fois le service api pour générer les tables dans la base de données.
2. À l'aide de pgAdmin, éxécuter le script sql _data_demo.sql_.
Ce fichier se trouve dans le répertoire /database
### Utilisateur enregistré
Identifiant : [email protected]
Mot de passe : azerty## Technologies utilisées
* JEE
* Spring
* Spring Boot
* Spring Data JPA
* Spring Security
* Spring MVC
* Rest
* OpenFeign
* Swagger
* Thymleaf
* SSl
* Bootstrap
* Maven## Aperçu du site
URL : https://localhost:9002

## Auteur
* **Charles Cathala** - [ccathala](https://gist.github.com/ccathala)